df6aaeb527
Added parser for signed integers.
...
Not used at the moment, but was simple to add while I was in the
headspace for it, and it will likely be useful in the future.
2019-11-23 10:41:19 +09:00
e23fe4bb36
Fix deprecation warnings from rustc.
2019-11-23 10:21:16 +09:00
6e555456ba
Updated Nom to 5.x
...
This makes the code a lot simpler and cleaner, among other things.
2019-11-23 10:13:29 +09:00
e586442a0a
Cleaned up floating point ulp code.
...
The logic is much clearer now, and the code is more compact.
2019-10-30 21:05:01 +09:00
1aeb3ed7ff
Updated example scenes to work again.
...
I had forgotten to update them when I changed how color input
worked.
2019-10-30 15:09:21 +09:00
c753890bb0
Fix/silence various clippy warnings.
2019-08-01 14:18:26 +09:00
ecbdf5d609
Make bilinear patch splitting a little smarter.
...
This way it doesn't just keep splitting on the same axis
repeatedly, creating narrow, long patches..
2019-08-01 13:49:44 +09:00
95e7d6bdea
Silence some silly clippy warnings on generated code.
2019-08-01 13:43:32 +09:00
0c99ce8227
Playing around with surface patch implementation. Trying out ideas.
2019-07-31 22:46:06 +09:00
4999b31bf5
Bare beginnings of adding bilinear patches.
...
Mainly as a simple test-case for split-and-dice.
2019-07-31 06:45:45 +09:00
f021def789
Do better chromatic adaptation for input RGB colors.
2019-07-26 16:01:56 +09:00
f42eedfd08
Make better use of the types in the glam crate.
...
Appears to give a tiny performance boost.
2019-07-25 11:36:52 +09:00
e3179d5b2e
Fix stupid bug with sphere lights introduced in the traversal rewrite.
2019-07-23 08:52:53 +09:00
88e7365bc4
Switched from in-tree float4 lib to glam.
2019-07-22 22:30:37 +09:00
5c5a01ecee
Implemented basic SurfaceClosure compression for storing per-vertex.
...
This is really simple, and doesn't account for things like constant
parameters yet. It's just to get things rolling.
2019-07-13 11:15:04 +09:00
41c2174d59
Updated MicropolyBatch for new traversal code etc.
2019-07-09 17:05:42 +09:00
4adc81b66b
Minor code pretty-ing in the Jakob spectral upsampler.
2019-07-09 16:24:02 +09:00
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