Commit Graph

503 Commits

Author SHA1 Message Date
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
c73db2edbe Fix/silence a bunch of clippy warnings in the main crate. 2018-12-15 23:26:12 -08:00
d57c896151 Silence/fix clippy warnings in mem_arena sub-crate. 2018-12-15 22:34:51 -08:00
53424b393d Silence clippy warnings in spectra_xyz sub-crate. 2018-12-15 22:22:29 -08:00
f9d75f490c Silenced warnings in color sub-crate. 2018-12-15 22:06:32 -08:00
f2e591a91f Fixed clippy warnings in math3d. 2018-12-15 21:56:48 -08:00
8b6181d262 Fixed Clippy warnings in float4. 2018-12-15 21:41:16 -08:00
589a67caa4 Run latest rustfmt on code. No functional changes. 2018-12-08 13:23:44 -08:00
e9b495e729 Silence some clippy warnings on generated code and large preformatted data. 2018-12-08 13:21:41 -08:00