DOGERAY2 is an unbiased interactive GPU path tracer written in CUDA C++ that opens GLTF 2.0 files.
Find the full size gallery in the wiki
Capable of 4k rendering a few samples per second. Here is a scene with over 15 million triangles:
Some of the current features:
- Responsive GUI with many controls and live render window
- Fully path traced fast GPU accelerated rendering
- Multiple JPG image saving
- Window resizing and image scaling
- Interactve and BVH preview
- BVH acceleration structure stackless BVH traversal
- Depth of field
- PBR and emissive materials with textures
- Smooth shading
- Background images
- Opens GLTF files with cameras and transformations
- Multithreaded UI
Bounding volume hierarchy view:
Glossy and emissive materials, Depth of field:
Quick video demo
- To open a file, just right click on a GLTF or GLB file and open with DOGERAY2.
- To add a background just put an image file named "background" in the same directory where you are opening the file from.
- If your model is not rendering correctly, make sure the scale of the model is not overly huge (>1000 units wide). Check out the Wiki for more info on file formats, common issues, usage, and decisions.
- CUDA
- SDL2 (Included in release)
(Also requires a fairly recent Nvidia GPU to run)
- Polymorphism and serialization
- Power of compiler optimization
- Using specifications to figure out how to utilize industry standard files
- Casting types and working with raw image data
- Organizing Object oriented c++
- Using GUI toolkits
- Managing program lifecycle and memory
- Matrix and Vector transformations
- Common code writing practices
- Markdown and Licencing on Github
- Extreme debugging
Full licenses can also be found in libraries folder.
- Tinygltf: Copyright (c) 2017 Syoyo Fujita, Aurélien Chatelain and many contributors
- json.hpp : Copyright (c) 2013-2017 Niels Lohmann. MIT license.
- base64 : Copyright (C) 2004-2008 René Nyffenegger
- Imgui: Copyright (c) 2014-2022 Omar Cornut
- CUDA
- STB_image and STB_image_write
- SDL2
- Linalg
Links to the libraries can be found in the wiki page.
The rendering algorithm is based on Ray Tracing in One Weekend which is amazing for learning about computer graphics. The stackless BVH traversal algorithm at the heart of the engine is based on Hachisuka's amazing work.
- Ray Tracing in One Weekend Series by Peter Shirley
- Implementing a practical rendering system using GLSL by Toshiya Hachisuka
DOGERAY2 is a completely new piece of software from the original Dogeray that I wrote a very long time ago. It only keeps the name since I could not come up with a better one.