|
7 | 7 | Peter Shirley
|
8 | 8 | edited by Steve Hollasch and Trevor David Black
|
9 | 9 | <br>
|
10 |
| - Version 3.0.2, 2020-04-11 |
| 10 | + Version 3.0.3-wip, XXXX-XX-XX |
11 | 11 | <br>
|
12 | 12 | Copyright 2018-2020 Peter Shirley. All rights reserved.
|
13 | 13 |
|
|
2810 | 2810 |
|
2811 | 2811 | You now have a cool ray tracer! What next?
|
2812 | 2812 |
|
2813 |
| - 1. Lights. You can do this explicitly, by sending shadow rays to lights. Or it can be done |
2814 |
| - implicitly by making some objects emit light, |
| 2813 | + 1. Lights. You can do this explicitly, by sending shadow rays to lights, or it can be done |
| 2814 | + implicitly by making some objects emit light, biasing scattered rays toward them, and then |
| 2815 | + downweighting those rays to cancel out the bias. Both work. I am in the minority in favoring |
| 2816 | + the latter approach. |
2815 | 2817 |
|
2816 |
| - 2. Biasing scattered rays toward them, and then downweighting those rays to cancel out the bias. |
2817 |
| - Both work. I am in the minority in favoring the latter approach. |
2818 |
| - |
2819 |
| - 3. Triangles. Most cool models are in triangle form. The model I/O is the worst and almost |
| 2818 | + 2. Triangles. Most cool models are in triangle form. The model I/O is the worst and almost |
2820 | 2819 | everybody tries to get somebody else’s code to do this.
|
2821 | 2820 |
|
2822 |
| - 4. Surface textures. This lets you paste images on like wall paper. Pretty easy and a good thing |
| 2821 | + 3. Surface textures. This lets you paste images on like wall paper. Pretty easy and a good thing |
2823 | 2822 | to do.
|
2824 | 2823 |
|
2825 |
| - 5. Solid textures. Ken Perlin has his code online. Andrew Kensler has some very cool info at his |
| 2824 | + 4. Solid textures. Ken Perlin has his code online. Andrew Kensler has some very cool info at his |
2826 | 2825 | blog.
|
2827 | 2826 |
|
2828 |
| - 6. Volumes and media. Cool stuff and will challenge your software architecture. I favor making |
| 2827 | + 5. Volumes and media. Cool stuff and will challenge your software architecture. I favor making |
2829 | 2828 | volumes have the hittable interface and probabilistically have intersections based on density.
|
2830 | 2829 | Your rendering code doesn’t even have to know it has volumes with that method.
|
2831 | 2830 |
|
2832 |
| - 7. Parallelism. Run $N$ copies of your code on $N$ cores with different random seeds. Average the |
| 2831 | + 6. Parallelism. Run $N$ copies of your code on $N$ cores with different random seeds. Average the |
2833 | 2832 | $N$ runs. This averaging can also be done hierarchically where $N/2$ pairs can be averaged to
|
2834 | 2833 | get $N/4$ images, and pairs of those can be averaged. That method of parallelism should extend
|
2835 | 2834 | well into the thousands of cores with very little coding.
|
|
0 commit comments