Commit Graph

152 Commits

Author SHA1 Message Date
Matthew Gordon 8c527d34fc Add Primitive trait 2020-01-30 17:22:53 -05:00
Matthew Gordon a0de9c18ba Implement HasBoundingBox trait for Plane 2020-01-30 16:43:48 -05:00
Matthew Gordon 89aed89b85 Add derive(Debug) for BoundingBox 2020-01-30 16:43:21 -05:00
Matthew Gordon 1044fc3986 Implement HasBoundingBox for Tirangle 2020-01-29 16:50:26 -05:00
Matthew Gordon e67204b96e Make BoundingBox::from_points accept any IntoIterator<Point3<T>>
...instead of only Vec<Point3<T>>
2020-01-29 16:49:30 -05:00
Matthew Gordon e5d7a1098d Add more methods for constructing BoundingBoxes 2020-01-29 08:09:58 -05:00
Matthew Gordon 30a5a9dd0f Add Interval::expand_to_value(); other minor changes 2020-01-12 12:13:31 -05:00
Matthew Gordon 25ac0bad7f Fixed bug with empty intervals 2020-01-12 10:45:39 -05:00
Matthew Gordon 75611d47d3 Add HasBoundingBox trait with implementation for Sphere 2020-01-10 17:15:35 -05:00
Matthew Gordon abf71658b6 Add axis_aligned_bounding_box::BoundingBox::union() 2020-01-10 17:00:09 -05:00
Matthew Gordon da2208f3f8 Add Interval::union() 2020-01-10 16:46:17 -05:00
Matthew Gordon 5f6733fdb0 Move some declarations around within struct, no change in functionality 2020-01-10 16:21:38 -05:00
Matthew Gordon ffcfa0009c Move import that was only used in tests into test module 2020-01-10 16:21:28 -05:00
Matthew Gordon 5e0e2bad06 Make build and test work with stable rust (nightly needed for benchmarks) 2020-01-10 16:16:27 -05:00
Matthew Gordon 4ee7338711 Add axis_aligned_bounding_box module 2019-12-31 22:17:15 -05:00
Matthew Gordon 5c8903107a Add IntersectP trait
Like Intersect, but the intersect() function only returns a bool,
not a Optional<IntersectionInfo>.
2019-12-31 22:16:06 -05:00
Matthew Gordon 6639ed813b Remove some old code that was already commented out 2019-12-31 22:15:13 -05:00
Matthew Gordon a785eb796f Only enable benchmark when benchmarking, not as regular test 2019-12-31 22:14:24 -05:00
Matthew Gordon 1653174ef6 Make triangle a submodule of raycasting. 2019-12-21 15:29:52 -05:00
Matthew Gordon c35735f117 Move Plane into it's own submodule 2019-12-21 15:19:16 -05:00
Matthew Gordon 91579745cb Move Sphere to a submodule 2019-12-21 15:06:48 -05:00
Matthew Gordon 4e7565638a Move raycsating module into subdirectory 2019-12-21 10:50:59 -05:00
Matthew Gordon 2c4e951767 Add Linux perf output to .gitignore 2019-12-21 10:45:48 -05:00
Matthew Gordon 08484306fd Move load_obj() into submudule 2019-12-21 10:43:39 -05:00
Matthew Gordon 12e26887c1 Make output image smaller. 2019-12-21 10:43:39 -05:00
Matthew Gordon 1b9cf2cbca Add benchmark 2019-12-21 10:43:33 -05:00
Matthew Gordon 7cdcdb145a Remove unused function. 2019-12-21 10:08:00 -05:00
Matthew Gordon e1de889d3a Quick-and-dirty multithreading
Not the best multithreading scheme and needs error handling, but
it works.
2019-12-21 10:07:53 -05:00
Matthew Gordon 3618636c42 First quick pass at loading OBJ files. 2019-12-21 09:11:30 -05:00
Matthew Gordon 199b33f944 Remove unused function 2019-12-12 13:01:02 -05:00
Matthew Gordon 777580be17 Fix triangle intersection passing when triangle is behind ray 2019-12-12 08:57:46 -05:00
Matthew Gordon 9096ff67b6 Remove some debug prints that I committed by accident 2019-12-12 08:56:31 -05:00
Matthew Gordon 365b6063e0 Tweak test scene 2019-12-12 08:45:15 -05:00
Matthew Gordon c05eba391b Add more tests for triangle intersection and fix a couple of bugs
Still not working properly.
2019-12-12 07:51:26 -05:00
Matthew Gordon 9eca3a4cfe Replace Vector3 with Point3 where appropriate 2019-12-07 11:09:07 -05:00
Matthew Gordon a7e1f1c134 Add type alias for the return type of Material::bsdf() 2019-12-07 10:58:04 -05:00
Matthew Gordon 52da1bc952 Clean up a long if-else sequence. No change in functionality. 2019-12-07 10:58:04 -05:00
Matthew Gordon c0d0f81335 Replace ClampingToneMapper::new() with derive(Default) 2019-12-07 10:58:04 -05:00
Matthew Gordon d98144ab74 Minor cleanup and tidying; no change in functionality. 2019-12-07 10:58:04 -05:00
Matthew Gordon 2b3d350fbb Add intersection test for triangle; not quite working yet though 2019-12-07 09:28:11 -05:00
Matthew Gordon b61a089869 Add test output image to README.md 2019-12-02 21:37:15 -05:00
Matthew Gordon 434a285625 Enable optimization in debug builds; it's basically unusable without 2019-11-30 11:29:30 -05:00
Matthew Gordon 1a3d41e6d4 Enable LTO for release builds 2019-11-30 11:29:07 -05:00
Matthew Gordon 6f1663f616 Fix issue with noise in refrections
The BSDF for Reflective material had rounding issues that would
sometimes make the reflection strength NaN.
2019-11-30 11:26:18 -05:00
Matthew Gordon d19d5200b0 Add another light to test scene, to fill shadows in a little 2019-11-29 22:30:31 -05:00
Matthew Gordon 8b0b8c59ba Add ReflectiveMaterial material type
Although there's still some issues with rendering the reflections.
2019-11-29 22:30:08 -05:00
Matthew Gordon 5cd80ae05c Add sample funtion to Material trait, with default implementation 2019-11-29 22:27:43 -05:00
Matthew Gordon dcee4fb716 Add missing normalization of tangent vectors
This was required to get reflection working but also fixes
issues with the PhongMaterial parameters.
2019-11-29 22:25:50 -05:00
Matthew Gordon ad6e1c1b4a
Add guthub build badge to README 2019-11-28 11:29:11 -05:00
Matthew Gordon b2b3c7c978
GitHub build action (#1)
Add Github action to build and test
2019-11-28 11:01:14 -05:00