GitHub - AlpineIce/PaperRenderer: Ray Tracing and Raster Vulkan Abstraction (original) (raw)

Paper Renderer

Paper Renderer is a (mostly complete) renderer abstraction which aims to integrate traditonal raster and raytracing together nicely, while deferring much of the work (mainly draw instance call counts and TLAS instances) to compute shaders. Multithreading is also supported for command buffer recording, descriptor set allocation, and queue submission.

Some of the features include, but aren't limited to

--- Image from the example ---

Paper Renderer Example Image

Dependencies

Build Instructions

  1. git clone this repo, making sure to --recurse-submodules to gather dependencies (or fill them out manually)
  2. Set the CMake option PAPER_RENDERER_BUILD_EXAMPLE to be off if you don't want to build the example
  3. Run CMake, which will compile the C++ code and shaders, the latter of which gets output into "${PROJECT_BINARY_DIR}/resources/shaders/". If the example is built, it will be put into the example directory within the build directory.

Documentation

Incomplete documentation is available in the /docs folder as HTML. Refer to that and the example for for setting up your own project integrating Paper Renderer