Skip to content
/ cuRT Public

GPU based ray tracer and path tracer in CUDA and C++

License

Notifications You must be signed in to change notification settings

asterycs/cuRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a computer graphics project I set up. The intent is to learn computer graphics concepts and brush up my C++ and CUDA skills.

Requirements:

Have a look at the CMakeLists.txt but in short:

  • CMake 3.10
  • Ubuntu 16.04 or similar
  • libx11-dev
  • libgtk-3-dev
  • Cuda toolkit
  • Recent Cuda capable GPU.

This program additionally uses:

  • Assimp for model loading
    • With a small patch that can be found under patches/
  • Dear IMGUI for user interface
  • Nativefiledialog
  • cxxopts
  • glm
  • glfw3
  • glew

These dependencies are handled by CMake.

Build

cd $DOWNLOAD_DIR
mkdir build
cd build/
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=TRUE ..

Select an .obj file to open by pressing O-key. Hit Enter to switch between CUDA raytracer and OpenGL renderer. Space places an area light looking in the camera's direction.

The kernels have been optimized for the NVIDIA GTX 1060 3GB that I own.

Current features:

  • Simple BVH based on morton codes [deprecated]
  • SAH based bvh
  • OpenGL preview
    • Shadow maps
    • Ray visualization (ctrl + D)
    • BVH visualization
  • A ray tracer and a path tracer in CUDA
    • Area lights with soft shadows and quasirandom sampling
    • Reflections
    • Refractions

Screenshot1 Ray tracer Screenshot2 Path tracer Screenshot3 BVH Visualization

Screenshot model downloaded from Morgan McGuire's Computer Graphics Archive https://casual-effects.com/data

About

GPU based ray tracer and path tracer in CUDA and C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published