|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
6863b4ecd6
|
materials: small correction to specular computation.
|
2021-07-17 10:09:46 -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 |
|
|
|
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 |
|
|
|
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.
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 |
|
|
|
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 |
|
|
|
324a26212a
|
intersections: implement Intersections::hit
|
2021-07-16 21:28:28 -07:00 |
|
|
|
c9b42d94b3
|
intersections: now store object in Intersection.
|
2021-07-16 21:14:23 -07:00 |
|
|
|
0ce1e8f7af
|
intersections: create inters module and initial functionality.
|
2021-07-16 21:06:57 -07:00 |
|
|
|
8b451a2395
|
rays: lint cleanup
|
2021-07-16 21:06:23 -07:00 |
|
|
|
da98744288
|
spheres: implement basic unit sphere and intersect.
|
2021-07-16 20:42:46 -07:00 |
|