You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+20-12
Original file line number
Diff line number
Diff line change
@@ -6,23 +6,31 @@ A attempt at the [Ray Tracing in One Weekend](https://raytracing.github.io/books
6
6
7
7
```
8
8
$ make
9
-
$ ./main > section14.ppm
9
+
$ ./main > cover.ppm
10
10
```
11
11
12
-
The resulting image is the cover image of the book: 1200x675px, 500 samples/pixel. Running `./main -small` generates a smaller image for testing purposes - 400x225px, 100 samples/pixel.
12
+
The resulting image is the cover image of the book: 1200x675px, 500 samples/pixel.
13
13
14
-
The original, single-threaded implementation ran in 18m 41s with optimization flags enabled. Further optimizations reduced the time to 3m 31s, a 5.3x speedup. A writeup is in the works, so here's a summary:
14
+

15
15
16
-
* Multi-threading (4 threads) - 62% faster
17
-
* Implementation changes - 18% faster
18
-
* Changing from function pointers to enum + union for `scatter()`
19
-
* Change `raycolor()` from recursive to iterative
20
-
* Use custom random function instead of stdlib `rand()`
21
-
* SIMD - 37% faster
22
-
* Add [ARM Neon](https://community.arm.com/arm-community-blogs/b/operating-systems-blog/posts/arm-neon-programming-quick-reference) instructions in `vec3` functions
23
-
* Vectorize `spherelisthit()` further to calculate 4 spheres at once
16
+
The original, single-threaded implementation ran in 18m 41s with optimization flags enabled. Further optimizations reduced the time to 3m 31s, a 5.3x speedup. Here's a summary of optimizations with a smaller test image (`./main -small`) - 400x225px, 100 samples/pixel.
0 commit comments