AdamYuan / Sparsevoxeloctree
A GPU SVO Builder using rasterization pipeline, a efficient SVO ray marcher and a simple SVO path tracer.
Stars: ✭ 110
Labels
Projects that are alternatives of or similar to Sparsevoxeloctree
Soul Engine
Physically based renderer and simulation engine for real-time applications.
Stars: ✭ 37 (-66.36%)
Mutual labels: vulkan, path-tracer
Rife Ncnn Vulkan
RIFE, Real-Time Intermediate Flow Estimation for Video Frame Interpolation implemented with ncnn library
Stars: ✭ 108 (-1.82%)
Mutual labels: vulkan
Substrate
A cross-platform render-graph based rendering system written in Swift
Stars: ✭ 94 (-14.55%)
Mutual labels: vulkan
Laravel Tracer
Shows the path of each blade file loaded in a template
Stars: ✭ 96 (-12.73%)
Mutual labels: path-tracer
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+9220%)
Mutual labels: vulkan
Raytracedshadows
This demo implements BVH construction and GPU traversal for rendering hard shadows.
Stars: ✭ 107 (-2.73%)
Mutual labels: vulkan
Practicalvulkan
Repository with code samples for "API without Secrets: The Practical Approach to Vulkan" series of articles.
Stars: ✭ 100 (-9.09%)
Mutual labels: vulkan
Premulalpha
Pre-Multiplied blend mode is a 3 in 1 blend mode that has a lot of uses. It has been around for a long time but it seems to be re-discovered every few years. This project includes descriptions/examples and tools for using pre-multiplied alpha.
Stars: ✭ 97 (-11.82%)
Mutual labels: vulkan
Ray
Small pathtracing library with GPU and CPU backends
Stars: ✭ 95 (-13.64%)
Mutual labels: path-tracer
Yocto Gl
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
Stars: ✭ 1,391 (+1164.55%)
Mutual labels: path-tracer
Sparse Voxel Octree (Vulkan Version)
A GPU SVO Builder using rasterization pipeline, a efficient SVO ray marcher and a simple SVO path tracer.
If you want an OpenGL version, check OpenGL branch.
Compilation
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
Built With
- volk - Vulkan meta-loader
- VulkanMemoryAllocator - Vulkan memory allocation
- GLFW - Window creation and management
- GLM - Maths calculations
- stb_image - Image loading
- TinyOBJLoader - Obj loading
- TinyEXR - EXR file saving
- meshoptimizer - Optimize mesh
- ImGui - UI rendering
- tinyfiledialogs - Call native file dialog (require Zenity on linux)
- spdlog - Logging system
- FontAwesome - Icon font
Improvements
The new Vulkan version is much faster than the old OpenGL version, given the comparison below:
GTX 1660 Ti
SVO build time | Crytek Sponza (2^10) | San Miguel (2^11) | Living Room (2^12) |
---|---|---|---|
Vulkan (new) | 19 ms | 203 ms | 108 ms |
OpenGL (old) | 470 ms | -- | -- |
Quadro M1200
SVO build time | Crytek Sponza (2^10) | San Miguel (2^11) | Living Room (2^12) |
---|---|---|---|
Vulkan (new) | 80 ms | 356 ms | 658 ms |
OpenGL (old) | 421 ms | 1799 ms | 3861 ms |
In addition, the new Vulkan version has some advanced features such as asynchronous model loading and asynchronous path tracing.
TODOs
v1.0
- [x] Allow window resizing
- [ ] Test queue ownership transfer
v2.0
- [ ] Gradient-domain path tracing ?
- [ ] Build SVO contours ?
Reference
- https://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-SparseVoxelization.pdf - Voxelization and SVO building
- https://research.nvidia.com/publication/efficient-sparse-voxel-octrees - SVO ray march
Screenshots
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].