Commit Graph

218 Commits

Author SHA1 Message Date
Matthew Gordon bdd05f3527 Refactor main rendering loop to use TileIterator
This removes the old multithreading code, but will be using rayon
soon.
2020-02-20 16:47:15 -05:00
Matthew Gordon d21d288013 Add TileIterator struct 2020-02-19 08:04:41 -05:00
Matthew Gordon e52c0772b4 Remove unused import 2020-02-19 08:03:16 -05:00
Matthew Gordon 87b2f2835a Rename morton_order_value() to morton_order_value_3d() 2020-02-19 08:02:36 -05:00
Matthew Gordon 3c813c4526 More work on BoundingVolumeHierarchy 2020-02-13 20:24:35 -05:00
Matthew Gordon 7bd45c8ad2 First pass at bounding volume hierarchy 2020-02-10 22:23:38 -05:00
Matthew Gordon e411f4abb4 Start working on morton (z-order sorting) 2020-02-10 17:45:12 -05:00
Matthew Gordon 8508ac1072 Add trait for converting real type tu u32 2020-02-10 17:15:02 -05:00
Matthew Gordon 079e02e059 Remove some dbg!s 2020-02-10 16:54:42 -05:00
Matthew Gordon d6b5c87759 Create Real trait to replace nalgebra::RealField
Real inherits RealField, but I want to add more to it.
2020-02-10 16:52:09 -05:00
Matthew Gordon a15eeccdfb Fix code formatting. No change of functionality. 2020-02-07 17:05:07 -05:00
Matthew Gordon 23e8a878c5 Move algebra_utils.rs into util module 2020-02-07 17:04:42 -05:00
Matthew Gordon 49bef6f0f4 Add Point3Normalizer 2020-02-07 17:00:46 -05:00
Matthew Gordon 259505e93f Add RealFieldNormalizer 2020-02-06 17:36:36 -05:00
Matthew Gordon c3f3fffc0e Move axis_aligned_bounding_box to util module 2020-02-06 17:06:46 -05:00
Matthew Gordon 65b5e3c45d Create util module and move Interval struct to it 2020-02-06 16:49:11 -05:00
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