├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── renderings ├── chapter02.png ├── chapter04.png ├── chapter05.png ├── chapter06.png ├── chapter07.png ├── chapter07_animation.mp4 ├── chapter08.png ├── chapter08_acne.png ├── chapter08_animation.mp4 ├── chapter09.png ├── chapter09_animation.png ├── chapter09_yaml_main_camera.png ├── chapter09_yaml_second_camera.png ├── chapter10_checkerboard_and_ring_pattern_main_camera.png ├── chapter10_checkerboard_and_ring_pattern_second_camera.png ├── chapter10_gradient_pattern_main_camera.png ├── chapter10_gradient_pattern_second_camera.png ├── chapter10_pattern_coordinate_striped_main_camera.png ├── chapter10_pattern_coordinate_striped_second_camera.png ├── chapter10_world_coordinate_striped_main_camera.png ├── chapter10_world_coordinate_striped_second_camera.png ├── chapter11_three_spheres_reflective_main_camera.png └── chapter11_three_spheres_reflective_second_camera.png ├── rustfmt.toml ├── share └── youtube_link.jpg ├── src ├── animator.rs ├── bin │ ├── chapter01.rs │ ├── chapter02.rs │ ├── chapter04.rs │ ├── chapter05.rs │ ├── chapter06.rs │ ├── chapter07.rs │ ├── chapter07_animation.rs │ ├── chapter08_animation.rs │ ├── chapter09.rs │ ├── chapter09_animation.rs │ └── chapter09_render_yaml.rs ├── body.rs ├── camera.rs ├── canvas.rs ├── canvas │ ├── to_png.rs │ ├── to_ppm.rs │ └── to_rgba32.rs ├── computed_intersection.rs ├── fuzzy_eq.rs ├── intersections.rs ├── lib.rs ├── light.rs ├── material.rs ├── matrix.rs ├── pattern.rs ├── plane.rs ├── ray.rs ├── sphere.rs ├── tuple.rs ├── world.rs ├── world_loader.rs └── world_loader │ └── yaml.rs └── worlds ├── amiga_boing_balleske.yaml ├── three_spheres_and_a_floor.yaml ├── three_spheres_and_a_floor_with_checkerboard_patterns.yaml ├── three_spheres_and_a_floor_with_patterns.yaml ├── three_spheres_and_a_floor_with_striped_pattern.yaml └── three_spheres_reflective.yaml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/Cargo.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/README.md -------------------------------------------------------------------------------- /renderings/chapter02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter02.png -------------------------------------------------------------------------------- /renderings/chapter04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter04.png -------------------------------------------------------------------------------- /renderings/chapter05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter05.png -------------------------------------------------------------------------------- /renderings/chapter06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter06.png -------------------------------------------------------------------------------- /renderings/chapter07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter07.png -------------------------------------------------------------------------------- /renderings/chapter07_animation.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter07_animation.mp4 -------------------------------------------------------------------------------- /renderings/chapter08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter08.png -------------------------------------------------------------------------------- /renderings/chapter08_acne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter08_acne.png -------------------------------------------------------------------------------- /renderings/chapter08_animation.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter08_animation.mp4 -------------------------------------------------------------------------------- /renderings/chapter09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter09.png -------------------------------------------------------------------------------- /renderings/chapter09_animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter09_animation.png -------------------------------------------------------------------------------- /renderings/chapter09_yaml_main_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter09_yaml_main_camera.png -------------------------------------------------------------------------------- /renderings/chapter09_yaml_second_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter09_yaml_second_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_checkerboard_and_ring_pattern_main_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_checkerboard_and_ring_pattern_main_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_checkerboard_and_ring_pattern_second_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_checkerboard_and_ring_pattern_second_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_gradient_pattern_main_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_gradient_pattern_main_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_gradient_pattern_second_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_gradient_pattern_second_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_pattern_coordinate_striped_main_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_pattern_coordinate_striped_main_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_pattern_coordinate_striped_second_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_pattern_coordinate_striped_second_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_world_coordinate_striped_main_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_world_coordinate_striped_main_camera.png -------------------------------------------------------------------------------- /renderings/chapter10_world_coordinate_striped_second_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter10_world_coordinate_striped_second_camera.png -------------------------------------------------------------------------------- /renderings/chapter11_three_spheres_reflective_main_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter11_three_spheres_reflective_main_camera.png -------------------------------------------------------------------------------- /renderings/chapter11_three_spheres_reflective_second_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/renderings/chapter11_three_spheres_reflective_second_camera.png -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /share/youtube_link.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/share/youtube_link.jpg -------------------------------------------------------------------------------- /src/animator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/animator.rs -------------------------------------------------------------------------------- /src/bin/chapter01.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter01.rs -------------------------------------------------------------------------------- /src/bin/chapter02.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter02.rs -------------------------------------------------------------------------------- /src/bin/chapter04.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter04.rs -------------------------------------------------------------------------------- /src/bin/chapter05.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter05.rs -------------------------------------------------------------------------------- /src/bin/chapter06.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter06.rs -------------------------------------------------------------------------------- /src/bin/chapter07.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter07.rs -------------------------------------------------------------------------------- /src/bin/chapter07_animation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter07_animation.rs -------------------------------------------------------------------------------- /src/bin/chapter08_animation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter08_animation.rs -------------------------------------------------------------------------------- /src/bin/chapter09.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter09.rs -------------------------------------------------------------------------------- /src/bin/chapter09_animation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter09_animation.rs -------------------------------------------------------------------------------- /src/bin/chapter09_render_yaml.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/bin/chapter09_render_yaml.rs -------------------------------------------------------------------------------- /src/body.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/body.rs -------------------------------------------------------------------------------- /src/camera.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/camera.rs -------------------------------------------------------------------------------- /src/canvas.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/canvas.rs -------------------------------------------------------------------------------- /src/canvas/to_png.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/canvas/to_png.rs -------------------------------------------------------------------------------- /src/canvas/to_ppm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/canvas/to_ppm.rs -------------------------------------------------------------------------------- /src/canvas/to_rgba32.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/canvas/to_rgba32.rs -------------------------------------------------------------------------------- /src/computed_intersection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/computed_intersection.rs -------------------------------------------------------------------------------- /src/fuzzy_eq.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/fuzzy_eq.rs -------------------------------------------------------------------------------- /src/intersections.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/intersections.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/light.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/light.rs -------------------------------------------------------------------------------- /src/material.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/material.rs -------------------------------------------------------------------------------- /src/matrix.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/matrix.rs -------------------------------------------------------------------------------- /src/pattern.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/pattern.rs -------------------------------------------------------------------------------- /src/plane.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/plane.rs -------------------------------------------------------------------------------- /src/ray.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/ray.rs -------------------------------------------------------------------------------- /src/sphere.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/sphere.rs -------------------------------------------------------------------------------- /src/tuple.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/tuple.rs -------------------------------------------------------------------------------- /src/world.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/world.rs -------------------------------------------------------------------------------- /src/world_loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/world_loader.rs -------------------------------------------------------------------------------- /src/world_loader/yaml.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/src/world_loader/yaml.rs -------------------------------------------------------------------------------- /worlds/amiga_boing_balleske.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/worlds/amiga_boing_balleske.yaml -------------------------------------------------------------------------------- /worlds/three_spheres_and_a_floor.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/worlds/three_spheres_and_a_floor.yaml -------------------------------------------------------------------------------- /worlds/three_spheres_and_a_floor_with_checkerboard_patterns.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/worlds/three_spheres_and_a_floor_with_checkerboard_patterns.yaml -------------------------------------------------------------------------------- /worlds/three_spheres_and_a_floor_with_patterns.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/worlds/three_spheres_and_a_floor_with_patterns.yaml -------------------------------------------------------------------------------- /worlds/three_spheres_and_a_floor_with_striped_pattern.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/worlds/three_spheres_and_a_floor_with_striped_pattern.yaml -------------------------------------------------------------------------------- /worlds/three_spheres_reflective.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakobwesthoff/the_ray_tracer_challenge_in_rust/HEAD/worlds/three_spheres_reflective.yaml --------------------------------------------------------------------------------