{"repo":"aras-p/ToyPathTracer","free":true,"listed":false,"github":"https://github.com/aras-p/ToyPathTracer","clone":"git clone https://github.com/aras-p/ToyPathTracer.git","description":"Toy path tracer for my own learning purposes (CPU/GPU, C++/C#, Win/Mac/Wasm, DX11/Metal, also Unity)","language":"C++","stars":1117,"topics":["path-tracing","cpp","csharp","unity","gpu","burst","metal"],"license":"Unlicense","category":"game-templates","readme_excerpt":"Toy Path Tracer Toy path tracer I did in 2018 for my own learning purposes. Somewhat based on Peter Shirley's Ray Tracing in One Weekend minibook (highly recommended!), and on Kevin Beason's smallpt. I decided to write blog posts about things I discover as I do this: Part 0: Intro Part 1: Initial C++ and walkthrough Part 2: Fix stupid performance issue Part 3: C#, Unity and Burst Part 4: Correctness fixes and Mitsuba Part 5: simple GPU version via Metal Part 6: simple GPU version via D3D11 Part 7: initial C++ SIMD & SoA Part 8: SSE SIMD for HitSpheres Part 9: ryg optimizes my code Part 10: Update all implementations to match Part 11: Buffer-oriented approach on CPU Part 12: Buffer-oriented approach on GPU D3D11 Part 13: GPU thread group data optimization Part 14: Make it run on iOS Part 15: A bunch of path tracing links Part 16: Unity C# Burst optimization Part 17: WebAssembly Note: it can only do spheres, no bounding volume hierachy of any sorts, a lot of stuff hardcoded. Performance numbers in Mray/s on a scene with 50 spheres and two light sources, running on the CPU: Language Approach Ryzen 5950 AMD TR1950 MBP 2021 MBP 2018 MBA 2020 iPhone 11 iPhone X iPhone SE :--- :--- ---: ---: ---: ---: ---: ---: ---: ---: C++ SIMD Intrinsics 281.0 187.0 105.4 74.0 32.3 26.4 12.9 8.5 Scalar 141.2 100.0 84.8 35.7 15.9 WebAssembly (no threads, no SIMD) 8.4 5.0 8.1 5.6 C# Unity Burst \"manual\" SIMD 227.2 133.0 103.7 60.0 29.7 Unity Burst 82.0 36.0 Unity (Editor) 6.5 3.4 Unity (player Mono","default_branch":null,"files":null,"tree":[],"storefront":"/r/aras-p","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/aras-p/ToyPathTracer/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}