A physically based offline renderer with supports for path tracing, volume rendering, and multiple material types.
🎯 Core Rendering Features
Path Tracing Integrator
Volume Rendering
Multiple Importance Sampling
BVH Accelerator
Multi-Threaded Rendering
🎨 Material System
Diffuse
Conductor
Plastic
Emission
FrostedGlass
🔺 Geometry Support
Base Geometries: Sphere, Quad, Cube
Transformations
Normal Maps
💡 Lighting System
Area Light: Quad area light
Spherical Light: Spherical area light
Ambient Light: Supports HDR environment maps
🌫️ Volume Rendering
Homogeneous Media
Heterogeneous Media
Phase Functions
Multiple Scattering
🎲 Sampling System
Sobol Sequence
Importance Sampling
Filters: Uniform, Gaussian, and Tent filters
🖼️ Texture System
Solid Color Textures
Image Textures
HDR Textures
📷 Camera System
Perspective Camera
Depth of Field
📝 TODO List
Spectrum Sampling ❎
Language: C++23
Project Builder: Xmake
Mathematical Library: GLM
Window Manager: GLFW
Graphics API: OpenGL (GLAD)
Parallel Computing: OpenMP
JSON Parser: nlohmann_json (optional)
Ray Tracing Accelerator: Embree (optional)
Make sure that you have installed Xmake before running the project.
# Clone the repository
git clone https://github.com/yourusername/HoRenderer-CPU.git
cd HoRenderer-CPU
# Configure Project
xmake f -m release
# Compile
xmake
# Run the default Cornell Box scene
xmake run HoRenderer

