Commit Graph

9 Commits

Author SHA1 Message Date
4db96bc758 Use simple if-statement-based min/max functions in hot code.
Again, for whatever reason this is notably faster than the stdlib
min/max functions.
2016-07-16 17:55:18 -07:00
2e3851837d Implemented SAH splitting for the BVH. Also fixed crash bug.
The bug was in the previous commit, where I thought I was
preventing out-of-bounds access during traversal by limiting
the tree depth.  While the idea was correct, I forgot that the
traversal stack needs _2_ extra slots on top of the tree depth,
not just 1.  Fixed.
2016-07-16 03:21:57 -07:00
18245b725c All final intersections are now done in world space.
BVH traversal still happens in local space, but final actual
surface intersection calculations are done in world space by
transforming the triangle into world space.  This is to improve
numerical consistency between intersections.
2016-06-09 01:04:12 -07:00
61e3d47f56 Changed BBox/Ray intersection code to use more simd ops.
This, of course, depends on the simd ops being there, which
currently they are not.  But in the future, hopefully this will
make things speedy.  Will need to test, of course.
2016-06-08 22:57:22 -07:00
039943e0cb Auto-formatting code with new version of rustfmt. 2016-06-02 22:43:35 -07:00
901fc88f63 Assemblies now use BVH accel and actually utilize instances. 2016-04-23 13:37:38 -07:00
f87a8b4934 Forgot robustness adjustment in BBox/ray intersection code. 2015-12-29 17:01:05 -08:00
7f7870534c Implemented a very basic BVH for lists of triangles.
This isn't a good implementation by any means.  It's just to get
things started.
2015-12-29 16:56:33 -08:00
b20910a252 Created BBox, an axis-aligned 3d bounding box type. 2015-12-27 00:44:59 -08:00