70721be8e0
Moved separate functions in halton sampler inline into the match.
...
Doesn't really have much impact, but makes me feel better for some
reason.
2019-07-07 17:39:34 +09:00
103775f0e9
Some cleanup and improvements to the trifloat sub-crate.
2019-07-07 16:27:44 +09:00
e31ec6eb4e
Added a new trifloat type that uses 48 bits and is signed.
2019-07-07 14:02:09 +09:00
152d265c82
Switched all uninitialized memory to use MaybeUninit.
2019-07-06 13:46:54 +09:00
452a29a95c
Merge pull request #11 from cessen/orst_traversal
...
ORST traversal
2019-07-06 09:55:50 +09:00
646139efda
Factor out ray computations that are shared for all triangles.
2019-07-06 09:19:53 +09:00
4b612e2d1a
Leaf triangle intersection now loops over triangles per ray.
...
This is the inverse of what was being done before, which was to
loop over all of the rays for each triangle. At the moment, this
actually appears to be a tiny bit slower, but it should allow
for future optimizations testing against multiple triangles at once.
2019-07-06 09:01:24 +09:00
4f7335db8c
Misc optimizations that add up to a nice speed boost.
2019-06-29 14:20:32 +09:00
c4b8971805
Clean up compiler warnings.
2019-06-29 12:43:24 +09:00
2a0ca001e2
Optimized ray stack task duplication with memcopy.
2019-06-29 12:39:28 +09:00
68fba19fc6
Removed a timer from a hot loop, and fixed node-test stat.
...
Gives I small performance boost, and now ray/node tests are
actually reported correctly. Yay!
2019-06-29 09:46:39 +09:00
5a53d7f6f6
Added some additional ray tracing stats.
2019-06-29 09:20:04 +09:00
14b16896ac
Fix some compiler warnings.
2019-06-29 08:41:11 +09:00
4ef376dc89
Move multiple-object logic out of BVH4.
...
This allows each part of Psychopath tp handle the logic in the
best way, instead of a one-size-fits-all approach.
2019-06-29 08:28:41 +09:00
874b07df02
Filled in missing methods on the fall-back non-SIMD code.
2019-06-29 07:48:33 +09:00
b09f9684d1
Remove non-SIMD BVH4, and keep more bool calculations in SIMD format.
2019-06-29 07:22:22 +09:00
c5d23592b9
Keep Bool4 in its native format instead of converting to a bitmask.
...
This gives a small performance boost.
2019-06-28 22:56:51 +09:00
2fddcae0fd
Reduced the size of a hot return value.
...
Gives a small performance boost.
2019-06-28 22:22:41 +09:00
aed0f2ede1
Implemented a SIMD version of the BVH4.
...
It does indeed appear to be faster with this style of traversal!
2019-06-28 21:57:29 +09:00
50f9fd851b
Improved ray batch data layout.
...
Gives a small performance boost.
2019-06-25 18:49:10 +09:00
5dd8eb919b
Changed ray batch data access to be through methods.
...
This is (potentially) just temporary. It's to make it a bit easier
to play with data layout to see how that affects performance.
2019-06-25 17:31:51 +09:00
eef29c2b2f
Type alias for the ray index type.
...
Makes things easier to play with.
2019-06-23 19:26:30 +09:00
630a79aca5
Initial implementation of ORST traversal.
...
This is a "just get it working" implementation. Performance
optimizations still need to be done.
2019-06-23 18:40:52 +09:00
1a29b16aa2
Sketching out the structures for ray traversal tracking.
2019-06-22 04:19:55 +09:00
3d4ac7f57b
Created a RayBatch type, which stores multiple rays is SoA layout.
2019-06-21 23:02:44 +09:00
cd50e0dd11
Added some useful shuffle ops to Float4.
2019-06-21 22:14:18 +09:00
c6a8f93097
Run rustfmt. No functional change.
2019-06-21 21:47:53 +09:00
50f09a6134
Removed full Jakob implementation and moved table loading to build time.
...
The "light" version of Jakob still remains, which uses a much smaller
table.
2019-06-21 21:45:13 +09:00
5eeaec0a8b
Use fmadd method in Jakob spectrum eval.
2019-06-19 17:49:52 +09:00
b3cc5c070a
Added fused multiple-add method to Float4.
2019-06-19 17:45:04 +09:00
48e015996f
Initial implementation of Jakob 2019 spectral upsampling.
...
It has a slight color cast to it at the moment, I believe due to
incorrect color space conversions, not because of the upsampling
method itself. So Meng upsampling is still the active method
at the moment.
2019-06-09 19:51:43 +09:00
4aa002bb92
Reorganizing spectral upsampling crate for multiple algorithms.
2019-06-08 18:25:35 +09:00
fdad8f71bb
Renamed spectral upsampling sub-crate.
2019-06-02 07:28:43 +09:00
0fc8c32566
Updated crate dependency versions.
2019-05-25 16:22:21 +09:00
5488fde20e
Update Readme to better reflect current developments.
2018-12-30 17:23:55 -08:00
764bdbeb06
MicropolyBatch doesn't need to satisfy Surface trait.
...
Eventually the Surface trait will be changed to actually mean the
ability to be processed _into_ a MicropolyBatch. So it's ultimately
nonsensical for MicropolyBatch to implement it.
2018-12-29 10:18:38 -08:00
112f94c127
Implemented a "Micropolygon Batch" type.
...
This is in prep for a shade-before-hit architecture. The type is
currently unused and untested.
architecture.
2018-12-28 13:40:36 -08:00
8e109efed5
Fixed compiler warnings.
2018-12-28 11:09:17 -08:00
1cd5d28767
Added another color temperature based way of specifying color.
...
This uses a normalized version of blackbody radiation, so the
colors still vary but the brightness doesn't vary nearly as
wildly as with genuine blackbody radiation.
2018-12-28 01:27:08 -08:00
53754b956c
Blackbody colors are now parsed, and PsychoBlend has support as well.
2018-12-28 00:23:02 -08:00
caa4ea3e44
Replaced SurfaceClosure trait with a SurfaceClosure enum.
...
Also moved surface closures to using Color internally for color
specification.
2018-12-27 22:57:44 -08:00
e5a12cd498
Fixed the Planck's Law implementation to use correct units.
...
Color temperature specified colors now work!
2018-12-27 20:03:56 -08:00
5add4cfdb1
Implementing Color as a simple enum rather than as a trait.
...
There's really no reason for it to be a Trait, and this will simplify
a lot of things down the road.
2018-12-27 16:09:03 -08:00
b598ce499c
Updated dependencies.
2018-12-16 13:22:12 -08:00
508cda6021
Better path usage and "extern crate" removal in sub-crates.
2018-12-16 13:14:06 -08:00
28a07de456
Improve module path usage and remove extern crate declarations where possible.
2018-12-16 13:02:49 -08:00
178c0bd6cb
Third step transitioning to Rust 2018.
2018-12-16 12:17:21 -08:00
5fb349cc49
Second step transitioning to Rust 2018.
2018-12-16 12:07:11 -08:00
8deb1e87bb
First step transitioning to Rust 2018.
2018-12-16 12:02:20 -08:00
e3a9cbef84
Silenced/fixed the last of the clippy warnings.
2018-12-16 11:48:01 -08:00