285 Commits

Author SHA1 Message Date
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
b4428f924c lights & materials: implement the default light and material types. 2021-07-17 08:59:02 -07:00
bcf847660a tuples: implement reflect. 2021-07-17 08:50:26 -07:00
e529710d5d spheres: fix normal_at for transformed spheres. 2021-07-17 08:44:26 -07:00
ac4f5eb9a6 git-hooks: remove debug printing.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-17 08:14:51 -07:00
f846da18ad envmap: cargo fmt. 2021-07-17 08:14:35 -07:00
e59029a94a git-hooks: add pre-commit hook for fmt and testing checks. 2021-07-17 08:14:08 -07:00
339ce84903 tuples: whitespace cleanup for consistency. 2021-07-17 07:58:15 -07:00
6e7bd1c136 spheres: implement normal_at. 2021-07-17 07:57:59 -07:00
e430e3769e canvas: add parameter to constructor to set background color.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-16 22:33:22 -07:00
7609201c16 canvas: use ugly pink for default color to ease in debugging. 2021-07-16 22:28:05 -07:00
4bb6a72e4b eoc5: implement suggestiong at end of chapter 5.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-16 22:25:48 -07:00
cb1b3ec801 sphere: use Intersections as the return type from intersect. 2021-07-16 22:25:26 -07:00
ad7b10322f spheres: enable intersect w/ transformed spheres. 2021-07-16 22:06:37 -07:00
6e73bab37f s/translate/translation/g to match book. 2021-07-16 21:49:49 -07:00
87bf924094 spheres: add transform member to Sphere 2021-07-16 21:48:12 -07:00
9f22d820e7 rays: implement Ray::transform 2021-07-16 21:38:04 -07:00