Skip to content

GalleryΒΆ

A curated collection of renders from RayON's built-in scenes, showcasing the range of materials, lighting effects, and geometric complexity the renderer supports.


Cornell box β€” colour bleeding between red and green walls onto the ceiling and white floor spheres
Cornell Box β€” classic test scene. Coloured diffuse walls create colour bleeding on nearby surfaces. Soft shadow from an area light overhead.
Indoor scene with multiple reflective and diffuse spheres
Indoor Spheres β€” assorted dielectric, metallic, and diffuse spheres in an enclosed room with area lighting.
Scene with spheres arranged on a reflective floor
ISC Spheres β€” multi-material arrangement with strong inter-reflections between specular surfaces.
Many spheres rendered
Multiple spheres β€” scene, using for performance assessment in realtime.
Golf ball displacement mapping β€” dimpled surface under directional light
Golf Ball β€” procedural displacement mapping creates the characteristic dimple pattern on a sphere. The BRDF captures specular highlights across the surface microstructure.

Anisotropic metals scene at 512 SPP β€” directional highlight streaks fully resolved
Anisotropic Metals β€” 512 SPP β€” directional highlight streaks fully resolved across all roughness and anisotropy levels. Rendered with the CUDA path tracer.

Tinted rough mirrors β€” gold, copper, and steel preset tints
Tinted Rough Mirrors β€” gold, copper, and steel preset tints. Roughness controls how blurry the reflections appear (0 = perfect mirror, 1 β‰ˆ diffuse).
Glass dielectric spheres with refractive caustics next to metallic surfaces
Dielectrics & Metals β€” glass spheres use Snell's law for refraction and Schlick's approximation for the reflection/transmission ratio at grazing angles.

UV texture mapped cube, sphere and ground plane with a grid texture
UV Texture Mapping β€” a grid texture applied to UV-mapped OBJ models via MTL. UVs are interpolated per-triangle using barycentric coordinates.
Blender-exported OBJ scene with multi-material MTL textures
MTL-driven Textures β€” per-group materials from a Blender-exported scene. Each mesh group picks its diffuse texture from the .mtl file automatically.
Soap-bubble like thin film shading
Thin-film rendering β€” mimics oil stains or soap bubbles.
Plastic shading β€” diffuse base with specular highlight layer
Plastic Shading β€” two-layer model: a Lambertian base coat with a specular clearcoat layer on top. The highlight is view-dependent.

Normal visualisation mode β€” surfaces coloured by surface normal direction
Normal Visualisation β€” the ShowNormals material maps surface normals directly to RGB: R=X, G=Y, B=Z. Useful for debugging geometry orientation and smooth normals on mesh imports.
Interactive SDL2 window showing real-time accumulative path tracing at 100 Hz
Interactive Mode β€” SDL2 window at ~100 Hz with Dear ImGui overlaid. The sample counter and convergence indicator are visible in the top-right panel.
OBJ mesh loading test β€” low-poly model with triangulated faces
OBJ Mesh Loading β€” imported triangle mesh, rendered with smooth interpolated normals from the .obj file's vertex normal list.
Depth of field with bokeh blur
Depth of Field β€” aperture and focus distance are adjustable at runtime via ImGui sliders in interactive mode. The lens model is a thin lens approximation.

Anisotropic metals scene rendered at increasing sample counts. Every doubling halves Monte Carlo noise β€” error decays as \(\mathcal{O}(1/\sqrt{N})\). The anisotropic specular lobes are particularly sensitive to sample count.

4 samples per pixel β€” heavy noise across specular lobes
4 SPP β€” specular highlights are buried in noise; anisotropic streaks invisible.
16 samples per pixel β€” rough shapes visible
16 SPP β€” sphere shapes emerge; directional highlights faintly visible.
32 samples per pixel
32 SPP β€” anisotropic streaks begin to form; still noticeably noisy.
64 samples per pixel
64 SPP β€” usable quality; highlight directionality clear on low-roughness spheres.
128 samples per pixel β€” clean highlights
128 SPP β€” clean for most materials; high-anisotropy spheres still show slight graininess.
512 samples per pixel β€” near-converged
512 SPP β€” near-converged; anisotropic lobes fully resolved across all roughness levels.

Scene renders using equirectangular HDR environment maps from Poly Haven (CC0 licence) as the sky dome. Six environments are bundled β€” download them with bash resources/hdri/download_hdri.sh 8k.

HDR sky render β€” default gradient sky HDR sky render β€” environment 1 HDR sky render β€” environment 3 HDR sky render β€” environment 4 HDR sky render β€” environment 5 HDR sky render β€” environment 6 HDR sky render β€” environment 7 HDR sky render β€” environment 8 HDR sky render β€” environment 9