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
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
cd50e0dd11
Added some useful shuffle ops to Float4.
2019-06-21 22:14:18 +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
508cda6021
Better path usage and "extern crate" removal in sub-crates.
2018-12-16 13:14:06 -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
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
ea75e3ed21
Added benchmarks for both Trifloat and Oct32 encoding/decoding.
2018-11-29 11:09:48 -08:00
a6cae26c34
Added property tests for Oct32 encoding/decoding.
...
Tests random vectors, and makes sure that encoding/decoding
round trip only introduces precision errors below a certain
threshold.
Pretty confident that the implementation is correct now.
2018-11-29 09:50:38 -08:00
8e15dba29d
Implementation of the Oct32 encoding of unit vectors.
...
The code still needs testing, but initial toying around suggests
that it's working correctly.
2018-11-28 23:41:12 -08:00
c0cb071251
Further optimizations to the trifloat implementation.
...
Also improved documentation.
2018-11-28 15:31:21 -08:00
27521f44a6
Cleanup and better docs for trifloat.
2018-11-23 23:12:06 -08:00
ff9a56977a
Use bit fiddling to avoid some expensive operations in trifloat encoding/decoding.
2018-11-23 22:31:28 -08:00
3d1ade21c2
Better naming for the trifloat functions.
2018-11-23 21:38:27 -08:00
3fb22fdefa
Implemented a "tri-float" encoding, similar to RGBE.
...
This implementation trades less range for more precision, giving
9 bits to each mantissa instead of just 8 bits as in RGBE.
2018-11-23 20:01:15 -08:00
498c1ea8d9
Running latest rustfmt. No functional change.
2018-10-30 22:31:25 -07:00
b14b1b13b5
Cleaned up some of the SIMD code in spectra_xyz.
2018-07-01 16:49:41 -07:00
3f55df7225
Some basic SIMD optimizations for XYZ->Spectrum conversion.
2018-07-01 15:50:34 -07:00
ef7084e694
Reorganized xyz_spectra crate a bit.
...
This way the executable code can be worked with directly, instead
of via the python file that generates the rust code.
Also introduced some small optimizations.
2018-07-01 14:29:19 -07:00
6d21a30840
Formatting with newer cargo fmt
.
...
No meaningful code change, only formatting.
2018-06-24 21:18:10 -07:00
df27f7b829
Moved matrix transpose and inverse code into Float4 crate.
...
This allows for more optimized implementations, taking advantage
of SIMD intrinsics.
2018-06-24 21:06:32 -07:00
8e791259b3
Sped up Float4::h_sum for platforms with SSE3.
...
Since this is used heavily during matrix multiplication, gives a
nice little speed boost.
2018-06-24 16:45:21 -07:00
27d1b2286b
Switch to stable SIMD intrinsics.
...
Rust 1.27 stablized a variety of cpu intrinsics, including SIMD
on x86/64 platforms. This commit moves to using those intrinsics
for the optimized Float4 implementation. This means Psychopath
now compiles on stable Rust with all optimizations. Yay!
2018-06-24 15:32:09 -07:00
bbf832a3d8
Fixed compile error in float4 lib, and updated to latest simd crate.
2018-03-04 13:32:31 -08:00
c990672dfe
Fix compiler warnings.
2018-03-04 13:06:22 -08:00
97d3304149
Run new rustfmt on codebase.
2018-03-04 13:00:55 -08:00
f39589ab72
Small refactor of float4 crate to make it easier to read.
2018-03-04 12:27:35 -08:00
09daf617ef
Implemented a non-SIMD BVH4. Perf appears to be identical to BVH.
2017-07-01 15:08:05 -07:00
a4a73713d2
Created crate for BVH node traversal order calculations.
...
Might move this into the main source base at some point, but
I'm not totally sure about the correctness of the table yet, so
would like to generate it for now.
2017-07-01 12:44:19 -07:00
011405e131
Implemented robust ray origin calculation for bounced rays.
...
We take a small performance hit for this, but given that it's
making things meaningfully more correct I feel like it's more
than worth it.
2017-06-19 22:28:44 -07:00
b5f2237676
Reformatted sub-crates with new rustfmt as well.
2017-06-15 22:21:25 -07:00