Copyright 2019- Tatsuhiro Aoshima ([email protected]).
RoseGold is an example ray-tracing implementation on macOS and iOS. The several features are implemented:
- SmallPT-based simple ray-tracing (Beason 2010) running on Metal Compute Pipeline (Yi 2018).
- Joystick implementation for moving the camera and sliding to rotating the camera (iOS).
- An well-known cute mascot kixby.
If you are interested in ray-tracing, I will recommend you to refer Pharr+ (2018). I have no plan to maintain RoseGold ...
There are too many problems, for example:
- Support more object primitives other than the simple balls (Pharr+ 2018, chapter 3).
- Ensure the errors of the floating number operations (Pharr+ 2018, section 3.9).
- Implement acceleration structures for testing object intersections faster (Pharr+ 2018, chapter 4).
- Implement upsampling for reducing the noise especially in a specular reflecting balls (Pharr+ 2018, chapter 7).
- Implement volume rendering and more efficient bidirectional methods (Pharr+ 2018, chapter 15 and 16).
- Total 1519 frames (about 20 fps)
- About 1500 frames (about 50 fps)
- Beason, K. (2010) "smallpt: Global Illumination in 99 lines of C++." Retrieved on 2019/2/12, https://www.kevinbeason.com/smallpt/.
- Pharr, M., W. Jakob, and G. Humphreys. (2018) Physically Based Rendering From Theory to Implementation Third Edition. (online version at https://www.pbr-book.org/3ed-2018 retrieved on 2019/2/12)
- Yi, X. (2018) "imxieyi/SmallPT-Metal: SmallPT port to iOS in Metal." Retrieved on 2019/2/12. https://github.com/imxieyi/SmallPT-Metal.