Commit Graph

517 Commits

Author SHA1 Message Date
bc2bd89f97 Merge branch 'master' into micropoly 2021-05-14 14:02:14 -07:00
e0ee0d6dff Change to using a dedicated affine transform type.
This lets certain operations, especially matrix inversion, be
quite a bit faster.  And we don't need anything beyond affine
transformations anyway.
2021-05-14 13:30:28 -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
7063c406dd Fix minor syntax warning. 2021-05-11 13:38:11 -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
70fba19361 Update Owen scramble hash to the latest.
From https://psychopath.io/post/2021_01_30_building_a_better_lk_hash
2021-05-08 12:22:56 -07:00
b337e2cb20 Update dependencies. No functional change. 2021-05-08 12:21:04 -07:00
582118c52f Merge branch 'master' into micropoly 2021-03-30 16:01:04 +09:00
87859f5258 Fixed an issue with the Owen scramble hash.
Thanks to a tip from Matt Pharr.
2021-03-30 15:59:55 +09:00
034c99a2b0 Merge branch 'master' into micropoly 2021-03-30 14:55:50 +09:00
f9deb9afb6 Fix really bad bug with SIMD usage in the Sobol sampler.
Wasn't using the bit shifting instructions the correct way.  SSE
instructions are very non-obvious...
2021-03-30 14:53:41 +09:00
21e894d052 Merge branch 'master' into micropoly 2021-01-25 21:51:03 +09:00
42eda24514 Sobol sampler: get rid of unused alternative direction numbers. 2021-01-25 21:50:31 +09:00
1e4a69f2dc Merge branch 'master' into micropoly 2021-01-23 00:56:27 +09:00
c48839d5f3 An even better Owen scrambling hash. 2021-01-23 00:55:54 +09:00
11de294af0 Merge branch 'master' into micropoly 2021-01-13 22:26:50 +09:00
c32281b04a Significantly better Owen scrambling hash. 2021-01-13 22:25:16 +09: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
e1fa1a9c02 Merge branch 'master' into micropoly 2021-01-04 15:20:12 +09:00
285f714d02 Switch to a significantly better LK hash.
With just one round, this hash is better than the previous one with
two rounds.  And at 2-3 rounds it seems to be just as good quality
as a slow, per-bit hashing approach, which I've been using as
ground-truth for testing.
2021-01-04 15:16:04 +09:00
eacb6044cd Merge branch 'master' into micropoly 2020-12-31 13:02:29 +09:00
776a2c1456 Add PR template explaining that contributions aren't currently accepted.
Ideally I would just disable PRs on the repo, but github doesn't
currently allow that.
2020-12-31 13:00:46 +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
e192467773 Merge branch 'master' into micropoly 2020-12-30 21:46:22 +09:00
d19305d23b Update sobol sampler to properly credit Brent Burley.
I was just waiting for his paper to get published, which happened today!
2020-12-30 21:44:25 +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
ead2dd34d7 Merge branch 'master' into micropoly 2020-12-26 09:22:14 +09:00
4cfc051260 Change overall project license to GPLv3. 2020-12-26 09:20:55 +09:00
06a5e35dd7 Merge branch 'master' into micropoly 2020-12-21 18:55:40 +09:00
646e6a4e18 More readme updates. 2020-12-21 18:55:00 +09:00
4b986c234f Merge branch 'master' into micropoly 2020-12-21 18:42:49 +09:00
73cf201bf6 Update readme. 2020-12-21 18:42:23 +09:00
e7ddc6f0c5 Merge branch 'master' into micropoly 2020-12-20 16:32:52 +09:00
6d6904a615 FLuv32: increase dynamic range, and decrease precision.
This still exceeds the precision of LogLuv, but lets us match its
dynamic range.
2020-09-22 11:06:40 +09:00
9cf5ebdf91 Cleaning up the code in fluv32 a bit. 2020-09-21 11:54:14 +09:00
066105b20a Fluv32: slightly tweak the u/v scaling constants.
This allows perfect representation of E (equal energy spectrum).
It's not important from a perceptual standpoint, but it provides
a simple way for Psychopath to represent E when needed for other
purposes.
2020-09-21 09:45:47 +09:00
05f9621ac5 Added a FloatLuv decode function to decode to Yuv instead of XYZ.
This is useful because it's super fast, and chromaticity lookups
are typical for spectral upsampling anyway, so this will likely
enable cutting out a bunch of unecessary intermediate calculations.
2020-09-20 15:16:20 +09:00
0ba1acc42d Add oct32 encode_precise() function.
This is significantly slower than `encode()`, but a little more precise.
2020-09-20 14:36:50 +09:00
8c738b2f39 Use FloatLuv32 in Psychopath for encoding XYZ colors. 2020-09-20 11:04:37 +09:00
161e47fc44 Clean up oct32norm code a bit. 2020-09-20 10:37:26 +09:00