Commit Graph

26 Commits

Author SHA1 Message Date
Matthew Gordon bbeb39ba5d Replace unnecessary Arcs with Boxes. 2020-03-27 20:34:19 -04:00
Matthew Gordon 2b8794c884 Add recursion limit to ray tracing 2020-02-28 23:25:51 -05:00
Matthew Gordon 0574dff685 Threads pass back small images instead of sharing large image 2020-02-28 21:42:19 -05:00
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 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 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 9eca3a4cfe Replace Vector3 with Point3 where appropriate 2019-12-07 11:09:07 -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 0a7963097c Add (co)tangent to IntersectionInfo and redid sphere intersection 2019-11-27 17:02:23 -05:00
Matthew Gordon e7bcc9cc62 Add diffuse strength term to LambertianMaterial 2019-11-26 07:17:27 -05:00
Matthew Gordon 86ef364ed2 Render image a tile at a time, so user can see progress 2019-11-25 09:04:20 -05:00
Matthew Gordon 5a0646aaa2 Bias shadow rays to fix noise in image 2019-11-23 22:08:50 -05:00
Matthew Gordon 77cf877210 Factor out Sampler struct and add shadow casting
There are now bad rendering artifacts which I believe are caused
by precision issues.
2019-11-23 21:36:59 -05:00
Matthew Gordon cefbc2873b Refactor, adding Material trait that returns a BSDF 2019-11-23 20:53:45 -05:00
Matthew Gordon f58afb2ded Apply tone mapping to image, not colours
Apply tone mapping and conversion from floats to bytes only on
final image. This will allow better tone mapping operators later
and for now removes NormalizedAsFloat trait constraints that were
creeping through everything.
2019-11-19 21:32:47 -05:00
Matthew Gordon f13b585bfe Shapes can now be colours other than gray 2019-11-19 07:43:00 -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 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 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 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