Skip to content

3D renderer with modern features written in C++ with a C API

License

Notifications You must be signed in to change notification settings

PaoloMazzon/modern-renderer

Repository files navigation

Modern Renderer

This project aims to be an attempt at a modern renderer written in C++ with a C interface utilizing Vulkan 1.3 for the bulk of the rendering work.

CMake Build & Test coverage

Hardware Requirements

Modern Renderer uses Vulkan 1.3 to take advantage of features like dynamic rendering, timeline semaphores, and bindless rendering. It can also take advantage of other features like Debug Utilities if they are available on the host machine.

Project Overview

As it stands, all tests are in tests/, the main application used for testing the renderer is test-app/, and the renderer itself is in renderer/. To use the renderer in your own project, add this repository as a Git submodule and add the following to your CMakeLists.txt file.

add_subdirectory(modern-renderer)
# add your executable
target_link_libraries(my-game PRIVATE modern_renderer)

Don't forget to recursively clone your submodules, as this project depends on several submodules in 3rd/. To build tests, use -DBUILD_TESTS=ON, to build the sample app use -DBUILD_SAMPLE_APP=ON. The option -DBUILD_WITH_COVERAGE=ON can also be used to enable the --coverage flag for the compiler and linker on Unix systems. This mainly exists for the Github Actions to be able to automatically grab a coverage number for this readme.

3rd Party

See LICENSE-3RD-PARTY for information on 3rd-party tools and their associated licenses.

About

3D renderer with modern features written in C++ with a C API

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published