301 Commits

Author SHA1 Message Date
c4f10126e3 git-hooks: build and test with --no-default-features too.
Stores output in separate target/ subdir, so it shouldn't get clobbered.
2021-07-18 20:16:34 -07:00
7a8ed15017 eoc8: zoom the fov. 2021-07-18 20:01:40 -07:00
5d8024a485 features: rename s/_/-/g and make double sizes Floats default. 2021-07-18 17:29:30 -07:00
ecf7cd7bdc eoc: Updates to work with new Float abstraction. 2021-07-18 17:27:52 -07:00
1c06833658 Fixes for test when using Float == f64. 2021-07-18 17:27:31 -07:00
95de5863cc all: s/f32/Float/g now using customer Float alias. 2021-07-18 17:18:08 -07:00
5d57304d95 eoc8: implement the end of chapter 8 challenge. Note:
This implementation looks like crap and I'm not sure why.
2021-07-18 16:55:29 -07:00
599f484dff camera: protoype supersampling for rayon render pass. 2021-07-18 16:31:36 -07:00
ce998c68eb matrices: rename inverse_old to inverse_rtiow to indicate origin. 2021-07-18 16:30:38 -07:00
37048ddd52 spheres: implement rtiow Sphere::intersect for comparison. 2021-07-18 16:29:45 -07:00
19b2ef6ded intersections: derive Debug for PrecomputedData. 2021-07-18 16:29:21 -07:00
7e450d664e world & intersections: handle shadows. 2021-07-18 13:08:03 -07:00
09047eb713 world: implement World::is_shadowed. 2021-07-18 12:54:18 -07:00
1065702a5d materials: make lighting calculation shadow aware 2021-07-18 12:46:49 -07:00
efdc963a48 camera: update default render strategy to match CLI default 2021-07-18 12:37:29 -07:00
02ef8634c3 camera: update docstring to reflect new findings 2021-07-18 12:36:15 -07:00
7e19d7e61b camera: lint cleanup 2021-07-18 12:14:13 -07:00
dbf5451070 eoc7: make command flag for choosing rendering strategy.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-18 11:49:56 -07:00
4f88d2c101 camera: make rendering strategy configurable, add workerpool version. 2021-07-18 11:48:58 -07:00
94ea724344 lights & world: derive Clone for PointLight and World. 2021-07-18 11:14:44 -07:00
967920e1fa eoc7: show elapsed time out to milliseconds. 2021-07-18 11:12:19 -07:00
2eeeb2013b camera & spheres: add feature tag disable_inverse_cache 2021-07-18 08:51:51 -07:00
538b8ad364 camera: cache inverse tranform for huge speed up on ray_for_pixel.
WIP parallel render function.
2021-07-17 23:16:50 -07:00
2395c96e01 spheres: cache inverse transform to accelerate normal_at. 2021-07-17 23:10:54 -07:00
5f3bfd744e eoc7: implement end of chapter 7 challenge.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-17 22:05:54 -07:00
e752536430 camera: correct x/y calculations in Camera::render. 2021-07-17 21:52:11 -07:00
059f710706 camera: implement Camera::render. 2021-07-17 21:45:15 -07:00
ad02d7e945 canvas: remove unnecessary mut on Canvas::get's self parameter. 2021-07-17 21:44:48 -07:00
5911610064 camera: implement Camera::ray_for_pixel. 2021-07-17 21:34:09 -07:00
39f7f77b74 camera: add basic Camera object. 2021-07-17 21:22:07 -07:00
125c96c25f transformations: implement view_transform. 2021-07-17 17:40:35 -07:00
249a2915d9 matrices: minor tweaks to make debugging easier. 2021-07-17 17:40:14 -07:00
9f00485256 Use WHITE and BLACK constants where appropriate 2021-07-17 16:41:22 -07:00
b37398ac40 world: implement World::color_at 2021-07-17 16:12:30 -07:00
86d052d38b materials: use crate definition for BLACK. 2021-07-17 16:12:04 -07:00
b3737dcd5f lib: add constants for BLACK and WHITE colors. 2021-07-17 16:11:31 -07:00
72c6944ab9 world: implement World::shade_hit. 2021-07-17 15:58:57 -07:00
9924330f98 intersections: add inside/outside to prepare_computations. 2021-07-17 15:46:02 -07:00
2316df896a intersections: implement basic prepare_computations. 2021-07-17 15:37:46 -07:00
2c79132ebc world: cleanup lint 2021-07-17 15:37:25 -07:00
e9f2ef0118 world: implement World::intersect. 2021-07-17 15:26:18 -07:00
eebdc270eb world: add test_world constructor for book tests. 2021-07-17 15:12:56 -07:00
3bc9f6f924 world: add default empty World constructor. 2021-07-17 15:07:14 -07:00
cbecaa70ef eoc6: implement challenge for end of chapter 6. 2021-07-17 10:10:38 -07:00
6863b4ecd6 materials: small correction to specular computation. 2021-07-17 10:09:46 -07:00
bad54bb433 eoc5: remove unnecessary import. 2021-07-17 10:09:10 -07:00
d8e5476806 materials: implement Phong lighting. 2021-07-17 09:31:23 -07:00
385ed70d88 tuples: implement EPSILON aware PartialEq for Color.
Mark Color::new const so it can be used in const expressions (like
predefining colors).
2021-07-17 09:30:28 -07:00
1cbfbc8641 spheres: add material to Sphere. 2021-07-17 09:07:08 -07:00
81540cd484 rustfmt: add config to format code in doc comments. 2021-07-17 09:04:54 -07:00