Sitelet https://github.com/slongle/GPU-Renderer
Skip to content

About

Offline renderer using CUDA

Resources

Stars

13 stars

Watchers

1 watching

Forks

Latest commit

 

History

72 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPU Renderer

Performance

4-13x speedup compared with CPU unidirectional Path Tracing.

Tips

  • If you haven’t written OOP program using CUDA and now you want to write a renderer using CUDA, I strongly recommend you learning Fermat’s structure before everything starts.

  • CUDA doesn’t support class inheritance, so try to define everything (i.e. material, shape) in some unified method as much as possible.

  • Ray query system roadmap : for loop -> recursive build and simple query BVH -> parallel build and simple query BVH -> parallel build and GPU-optimized query BVH.

  • If you don’t really care GUI, you can learning from CUDA’s SDK volumeRender.

  • Wavefront .obj scene (tiny_obj_loader), partly Mitsuba scene (XML) and custom scene format are easy to parse.

Reference

System

Fermat : CUDA renderer system

Megakernels Considered Harmful: Wavefront Path Tracing on GPU : Wavefront path tracer

BVH

Maximizing Parallelism in the Construction of BVHs, Octrees, and k-d Tree : Parallel ontruct BVH using morton code

Understanding the Efficiency of Ray Traversal on GPUs : Some implementation tricks on CUDA

GPU path tracing tutorial 3 : Some implementation tricks on CUDA

Selected images

About

Offline renderer using CUDA

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages