Skip to content

A simple ray tracer from scratch in C++ & OpenMP.

Notifications You must be signed in to change notification settings

Rainzor/Renderer-CPU

Repository files navigation

README

A Renderer is based on ray tracing.

How to use

cmake -B build -DCMAKE_PREFIX_PATH="Path_TO_QT5"
cmake --build build

Qt5

The UI is based on Qt5, so you must specific the the QT path.

Example

If you don't want to use Qt5 as the framework, just go to example and run run.sh on Linux OS.

cd example
sh .\run.sh

OpenMP

The Render is accelerated by OpenMP. Make sure your compiler support it.

Result

Cornell Box

Figure : Cornell Box

Bunny and Spot Cow

Figure : Bunny and Spot

Supported Features

  • Object: sphere, rectangle, triangle and triangle-mesh
  • Operation: translation and rotation.
  • Material: diffuse reflection, specular reflection, refraction, participating media and light source
  • Texture: solid color, noise texture and image texture mapping
  • Advanced Sampling: BRDF sampling, light sampling, NEE, multiple importance sampling
  • Acceleration:
    • BVH
    • CPU Parallel: OpenMP
    • GPU Parallel: CUDA
  • Cook-Torrance BRDF
  • Ray-Marching in volume rendering

Reference

About

A simple ray tracer from scratch in C++ & OpenMP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages