A CPU rendering engine pairing a real-time scene editor with a multi-threaded offline ray-tracer.
| Result |
|---|
![]() |
| Editor |
|---|
![]() |
-
Ray-Tracer:
- Sun and multiple point-lights
- Smooth shading
- Shadows
- Reflections
- Refractions
- Alpha blending
- BVH
- Multi-threading
- Metallic-roughness materials
- Textures
- Vignette (post-processing)
- Produces result in
.ppmformat
-
Editor:
- Rasterized (solid or wireframe)
- Runs in live window
- Move and rotate camera
- Move, rotate or scale models with gizmo
A custom math library that includes:
vec2,vec3,vec4,ivec2,uvec2mat4quaternionclamp,lerp
| Action | Input |
|---|---|
| Move camera | W A S D |
| Rotate camera | Arrow keys |
| Render to .ppm | R |
| View solid triangles | Hold E |
| Select model | Left mouse button |
| Use gizmo | Select model, drag arrows |
| Change gizmo mode | G |
| Delete model | Select model, then Delete |
Requirements: Windows, MSVC with C++20 support

