Commit Graph

68 Commits

Author SHA1 Message Date
bc2bd89f97 Merge branch 'master' into micropoly 2021-05-14 14:02:14 -07:00
e6f9af9336 Update to latest glam. 2021-05-14 12:22:46 -07:00
89fc80b99b Update to the latest version of sobol_burley. 2021-05-14 11:30:48 -07:00
bf05b79a62 Merge branch 'master' into micropoly 2021-05-11 20:18:23 -07:00
63d661f8ce Update sobol_burley dependency. 2021-05-11 20:17:51 -07:00
927ac87e75 Merge branch 'master' into micropoly 2021-05-11 13:38:34 -07:00
706902dc8e Move sobol crate outside of Psychopath into its own repo. 2021-05-11 13:35:17 -07:00
dffa0fb124 Merge branch 'master' into micropoly 2021-05-08 12:23:51 -07:00
b337e2cb20 Update dependencies. No functional change. 2021-05-08 12:21:04 -07:00
7c74c81804 Merge branch 'master' into micropoly 2021-01-10 00:20:50 +09:00
105d6e52b5 Add basic benchmark to Sobol sampler. 2021-01-10 00:20:22 +09:00
ad72b77a6d Merge branch 'master' into micropoly 2020-12-31 12:26:00 +09:00
16e5f539ea Update to latest openexr-rs. 2020-12-31 12:25:22 +09:00
72d9eccf99 Merge branch 'master' into micropoly 2020-12-30 20:44:18 +09:00
3d85ce8005 Consolidate all of the compact value storage formats into one crate. 2020-12-30 20:41:56 +09:00
1cf8737139 Merge branch 'master' into micropoly 2020-12-26 10:06:55 +09:00
6586b38dc9 Use an external crate for fast approximate math functions. 2020-12-26 10:03:35 +09:00
ccd7e141fb First implementation of a streaming parser for the data tree format. 2020-05-01 16:08:37 +09:00
022c913757 Split out memory arena into an external crate. 2019-12-27 10:43:03 +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
88e7365bc4 Switched from in-tree float4 lib to glam. 2019-07-22 22:30:37 +09:00
2a0ca001e2 Optimized ray stack task duplication with memcopy. 2019-06-29 12:39:28 +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
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
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
b598ce499c Updated dependencies. 2018-12-16 13:22:12 -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
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
3f55df7225 Some basic SIMD optimizations for XYZ->Spectrum conversion. 2018-07-01 15:50:34 -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
d92ae4b2d7 Updated to latest openexr-rs release. 2018-06-15 14:52:51 -07:00
b2576c20e7 Upgraded to Nom 2.x 2018-03-04 22:06:20 -08:00
b5bcf8965b Updated to latest crates.
Except for Nom, which has jumped several major versions.
2018-03-04 13:49:41 -08:00
bbf832a3d8 Fixed compile error in float4 lib, and updated to latest simd crate. 2018-03-04 13:32:31 -08:00
97d3304149 Run new rustfmt on codebase. 2018-03-04 13:00:55 -08: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
b8321beaad Split colorspace transform functions out into their own crate.
They are now generated by a build.rs script from nothing but the
colorspace's primaries, which makes it super easy to add more
colorspaces.  So easy that I added three more: ACES AP0, ACES AP1
and Rec.2020.

This lays the foundation for supporting output to different
colorspaces.
2017-06-11 03:03:23 -07:00
f84d093f66 PsychoBlend now updates render in realtime within Blender.
Also, cancelling renders is much more responsive now, especially
during long exports.
2017-06-03 00:00:19 -07:00
3beffab507 Update to latest openexr-rs, and switch to pure Rust PNG output crate. 2017-05-28 17:51:01 -07:00
f0604a69ae Updated to latest openexr crate, and switched to 16-bit float EXR's. 2017-05-20 23:48:01 -07:00
4e2d3e64c0 Switched to using the openexr crate on crates.io. 2017-05-17 00:36:35 -07:00
567b658b6c Removed blue noise dithered sampling. 2017-05-14 12:37:01 -07:00
d71fd3b5c8 Implemented blue noise dithered sampling. Temporary.
After implementation, it does appear to make rendering slower
by a noticable bit compared to what I was doing before.  At very
low sampling rates it does provide a bit of visual improvement,
but by the time you get to even just 16 samples per pixel its
benefits seem to disappear.

Due to the slow down and the minimal gains, I'll be removing
this in the next commit.  But I want to commit it so I don't
lose the code, since it was an interesting experiment with
some promising results.
2017-05-14 12:25:01 -07:00
d8a33c7bfa Added a blue noise mask generator as a sub-crate. 2017-05-13 03:23:55 -07:00
88578b9eae Moved Float4 and Matrix and Vector math into their own sub-crates. 2017-05-12 21:01:54 -07:00
04e8a6ca73 Added a Rust port of Leonhard Grünschloß's Sobol sampler.
The Halton sampler appears to be better, but it was fun to add
this anyway!
2017-05-11 23:56:12 -07:00
b698a52f6c Split some more things out into sub-crates.
Also translated the Halton generator to rust and made it a crate
where the code is generated by a build.rs file.
2017-05-11 22:57:59 -07:00