Commit Graph

139 Commits

Author SHA1 Message Date
Matthew Gordon f13b585bfe Shapes can now be colours other than gray 2019-11-19 07:43:00 -05:00
Matthew Gordon f193fbf84b Added some named colours, mostly to make testing easier. 2019-11-17 20:26:57 -05:00
Matthew Gordon ad7d0b5f17 Started materials module. 2019-11-17 20:26:39 -05:00
Matthew Gordon 86e0b04a46 Add some code for dealing with colours. 2019-11-15 09:02:00 -05:00
Matthew Gordon f4bbe75cf8 Sort modules in lib.rs. No change in functionality. 2019-11-14 07:16:11 -05:00
Matthew Gordon 98373a1935 Add missing file that should have been in earlier commit 2019-11-13 17:48:34 -05:00
Matthew Gordon d2fb84191e Add retro (towards camera) direction to IntersectionInfo
Not tested or used yet.
2019-11-13 17:47:40 -05:00
Matthew Gordon c144780fce Fix failed intersection when ray origin is insode sphere
Added unit test which detected a false miss when the sphere centre
is behind the ray origin but the ray origin is inside the sphere.
2019-11-13 17:45:33 -05:00
Matthew Gordon 3c24a084b9 Add another ray-sphere intersection unit test 2019-11-13 17:28:43 -05:00
Matthew Gordon 700de75337 Reworked ray-sphere intersection which was failing tests 2019-11-13 17:25:57 -05:00
Matthew Gordon d9af6dad94 Added Phong integrator (actually only computing lambertion yet) 2019-11-12 22:11:06 -05:00
Matthew Gordon 4f60719523 Correctly render multiple objects instead of just rendeing one 2019-11-12 17:25:10 -05:00
Matthew Gordon 99c79ea31b Remove some busywork needlessly redrawing window. 2019-11-12 16:51:08 -05:00
Matthew Gordon 9d47821062 Change memory layout of Image, so it's not drawn upside-down by SDL 2019-11-12 16:47:56 -05:00
Matthew Gordon 2ec0c133a8 Fixed an unused variable warning 2019-11-12 16:47:29 -05:00
Matthew Gordon 95631d3708 Fixed some unused imports warnings 2019-11-12 16:46:58 -05:00
Matthew Gordon 1eb3741b7d Render a basic scene 2019-11-12 08:03:29 -05:00
Matthew Gordon e9900af986 Some cleanup and added unit test for pixel ray generation 2019-11-12 07:31:02 -05:00
Matthew Gordon 041c940931 Add Plane struct 2019-11-11 22:18:49 -05:00
Matthew Gordon 10c8992cf4 Fix bug where camera would iterate past bottom of image. 2019-11-11 16:48:40 -05:00
Matthew Gordon 326caf151a Start camera module 2019-11-11 12:11:10 -05:00
Matthew Gordon c059aebe11 Move OutputImage into it's own module 2019-11-08 07:52:38 -05:00
Matthew Gordon eaf9ba7b2f Create raycasting module 2019-11-08 07:38:24 -05:00
Matthew Gordon 192857eead Add Sphere struct, Intersect trait, and sphere-ray intersection 2019-11-08 07:25:15 -05:00
Matthew Gordon 78ea2b2e64 Add another unit test for Ray struct 2019-11-08 07:24:50 -05:00
Matthew Gordon 3244181a08 Add some missing "pub" qualifiers 2019-11-08 07:23:01 -05:00
Matthew Gordon 76a7299fb9 Add more unit tests for Ray 2019-11-06 17:32:47 -05:00
Matthew Gordon 9ebfae5898 Add Ray constructor that ensures direction vector is normalized 2019-11-06 17:32:02 -05:00
Matthew Gordon ff046808da Throw out my own vector functions and add Ray type with nalgebra 2019-11-06 12:56:43 -05:00
Matthew Gordon 5a44984779 Add Point2D and Point3D 2019-10-24 21:08:58 -04:00
Matthew Gordon 7bc7b3520a Implement Mul for f64 * Vector3D 2019-10-24 21:00:34 -04:00
Matthew Gordon 423be7700d Implement Mul for Vector3D * scalar 2019-10-24 20:56:52 -04:00
Matthew Gordon 14bae21b80 Implement Mul for f64 * Vector2D 2019-10-24 20:51:51 -04:00
Matthew Gordon 0cb1157df0 Implement Mul for Vector2D * scalar 2019-10-24 20:42:58 -04:00
Matthew Gordon 7e5c9d5231 Add Sub trait for Vector2D; add Vector3D with Add and Sub traits. 2019-10-24 20:32:46 -04:00
Matthew Gordon daee8af0ea Start adding vector types 2019-10-23 22:21:32 -04:00
Matthew Gordon c81eec9174 Did some refactoring and improved error handling 2019-10-23 21:05:17 -04:00
Matthew Gordon bc4759dfaa Set up SDL so I can draw the image being rendered in a window 2019-10-21 01:40:58 -04:00
Matthew Gordon f7139444f5
Initial commit 2019-10-20 22:34:32 -04:00