CPU Ray Tracer
Author: planet620
- Cornell box scene finalized
- Static mesh rendering
- Backface detection for transparency
- No acceleration structude ofr triangles yet
- No static mesh assets yet
- ISPC integrated with the project and used for basic
- Better compile times
- CppCheck and BuildInsights pass
- Huge code refactor
- Better logging with spdlog
- Full scene editor
- Flying camera
- Object selection and movement
- Material editor
- The same set of materials and primitives
- Renderer interface, with example and reference CPU renderer, easy to hot-swap with another version
- Simpler algorithm, no PDF in use
- Refraction with smoothness
- Coloured refraction
- Gloss with smoothness
Based on books: Ray Tracing in One Weekend by Peter Shirley
- Editor UI
- Scene setup: spawn/delete/move/edit object properties
- Render parameters
- Settings
- Real time output update
- Save output to BMP file
- Renderer
- Monte Carlo based method, mix of light and surface cosine based probability density functions (PDF)
- Multithreading: thread poll, PLL, none
- Support for SIMD
- DirectX 11 based display
- Anti aliasing
- No denoising
- Starting code for the review: frame_renderer::render() and frame_renderer::ray_color()
- Renderer variables
- Resolution
- Work distribution: stripes, chunks
- Rays per pixel, ray bounces
- Camera setup
- Projections: Perspective/orthografic/blend
- Focus distance
- Aperture
- Aspect ratio
- Specular, diffuse, emissive materials:
- Metal: copper, gold, silver, steel
- Dialectric: glass, sapphire, moissanite, diamond, water
- Texture: solid, checker
- Lambertian: basic colors
- Diffuse light: a few strength types
- Primitives:
- Sphere
- XY rectangle
- XZ rectangle
- ZY rectangle
Project file: Visual Studio 2022
Windows SDK: 10.0
Toolset: v143
Language standard: ISO C++20
DirectX 11
ocornut/imgui v1.87
nlohmann/json v3.10.5
PIX for Windows v1.0.220124001
STB Image v2.27
Tiny obj v1.0.6
spdlog v1.x
ispc v1.19.0