Implementation of Peter Shirley's raytracing tutorials in C#
The code after completing each chapter can be found in it's own commit.
| Chapter | Title | Commit |
|---|---|---|
| 1 | Output an Image | 5af3a98 |
| 2 | The Vec3 Class | 7c1d4f8 |
| 3 | Rays, a Simple Camera, and Background | 0c8f251 |
| 4 | Adding a Sphere | 5f4b4c3 |
| 5 | Surface Normals and Multiple Objects | f03a5ea |
| 6 | Antialiasing | 94dd246 |
| 7 | Diffuse Materials | 6e3fa53 |
| 8 | Metal | 5e33dac |
| 9 | Dielectrics | c615d8b |
| 10 | Positionable Camera | b1e615d |
| 11 | Defocus Blur | cf8b639 |
| 12 | Where Next? | 1eca2ed |
| Chapter | Title | Commit |
|---|---|---|
| 1 | Motion Blur | 1e5ed40 |
| 2 | Bounding Volume Hierarchies | 736ddf4 |
| 3 | Solid Textures | 0e78d91 |
| 4 | Perlin Noise | 2b80f49 |
| 5 | Image Texture Mapping | 6669473 |
| 6 | Rectangles and Lights | a129b05 |
| 7 | Instances | 765c175 |
| 8 | Volumes | PENDING |
| 9 | A Scene Testing All New Features | PENDING |
The example code from the tutorial has been modified as follows:
- The implementation uses doubles instead of floats (to avoid unnecessary casts as the math operations provided by .NET Core mostly use doubles)
- The line-by-line rendering of the output image is parallelized
- The output goes to a JPG file instead of piping standard out to a PPM file
- The rendering progress is shown on the console
The author has made the PDFs of all tutorials available on a "pay what you want" basis (see original tweet) on google drive here: https://drive.google.com/drive/folders/14yayBb9XiL16lmuhbYhhvea8mKUUK77W
The author's original source code in C++ can be found on his github profile here: https://github.com/petershirley
