Commit Graph

29 Commits

Author SHA1 Message Date
608fe8bda1 Switch to colorbox and jakob upsampling for color handling. 2022-08-02 00:18:12 -07:00
8bc6b24004 Switch to CIE XYZ lookup tables. 2022-08-01 22:04:14 -07:00
08e2e6eb06 Convert Psychopath over to use new RMath library. 2022-07-15 21:42:35 -07:00
e6f9af9336 Update to latest glam. 2021-05-14 12:22:46 -07:00
3d85ce8005 Consolidate all of the compact value storage formats into one crate. 2020-12-30 20:41:56 +09:00
8c738b2f39 Use FloatLuv32 in Psychopath for encoding XYZ colors. 2020-09-20 11:04:37 +09:00
c753890bb0 Fix/silence various clippy warnings. 2019-08-01 14:18:26 +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
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
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
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
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
28a07de456 Improve module path usage and remove extern crate declarations where possible. 2018-12-16 13:02:49 -08:00
8deb1e87bb First step transitioning to Rust 2018. 2018-12-16 12:02:20 -08:00
3f55df7225 Some basic SIMD optimizations for XYZ->Spectrum conversion. 2018-07-01 15:50:34 -07:00
97d3304149 Run new rustfmt on codebase. 2018-03-04 13:00:55 -08:00
c0a26819c6 Bunch of code quality improvements based on running clippy.
None of them change behavior, just make the code cleaner.
2017-07-22 17:21:11 -07:00
2c0e57341c XYZ color curve functions need more accurate exp function. 2017-06-15 22:50:27 -07:00
f649bec585 Reformat code with rustfmt 0.9 2017-06-15 22:00:31 -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
922e33ec3f Reformat code with latest rustfmt and custom config. 2017-05-14 13:43:51 -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