Software Ray Tracer / Rasterizer
C++, QT6 Software (CPU) Whitted Ray Tracer & Rasterizer
CPU ray-tracer + rasterizer entirely done in C++ and Qt6 for the interface.
Features
- Qt6 C++ Interface

C++ QT6 Interface
- Ray tracing rendering
- Rasterization rendering
- Hybrid rendering (rasterization of the visibility + ray tracing for the shading)
- Clip-space clipping algorithm
- Hard shadows (shadow rays)

Ray-traced hard shadows
- Octree based BVH + 7 planes bounding volumes
- Rough reflexions (random ray cast around the normal)
- Normal mapping
- Diffuse texture, roughness map, ambient occlusion mapping
- Parallax occlusion mapping
- Skyspheres support

Showcase of implemented normal mapping, parallax occlusion mapping, rough reflexions & skysphere support. The mesh of the sphere is perfectly flat (analytic sphere). The perceived geometry is only due to the parallax mapping algorithm.
- Skyboxes support
- Super Sampling Anti Aliasing (SSAA)
- AVX2 Screen Space Ambient Occlusion (SSAO) implementation

Showcase of the SIMD AVX2 Screen Space Ambient Occlusion (SSAO) implementation
- Hair modeling

Hair modeling (ad-hoc method, following a simulated falling particle)
Github
This project is open-source on Github: Software Ray Tracer & Rasterizer