21 Commits

Author SHA1 Message Date
cd2a4770ca world: move tests from doctest to unit. 2021-07-28 20:23:59 -07:00
42e8ebe3bd Implement transparency, reflections and refraction. 2021-07-26 21:46:04 -07:00
7f36aecf5e world: add reflection to ray tracer. 2021-07-25 16:28:34 -07:00
8b79876aee patterns: implement object and pattern transformation awareness. 2021-07-25 11:22:36 -07:00
bfa3282a37 materials: add StripePattern as a Material color option. 2021-07-24 19:36:32 -07:00
44b46187a0 world: add builder pattern. 2021-07-21 20:45:33 -07:00
ee8ef4e2c5 world: don't normalize light brightness by quantity of lights.
That's not how they work in real life.
2021-07-21 14:47:00 -07:00
c0e422a7eb shapes: create generic Shape object with Sphere implementation.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-20 22:17:50 -07:00
1629b2cbfa Add multiple light support. 2021-07-18 21:10:04 -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
94ea724344 lights & world: derive Clone for PointLight and World. 2021-07-18 11:14:44 -07:00
2395c96e01 spheres: cache inverse transform to accelerate normal_at. 2021-07-17 23:10:54 -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
72c6944ab9 world: implement World::shade_hit. 2021-07-17 15:58:57 -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