|
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