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
0fc8c32566
Updated crate dependency versions.
2019-05-25 16:22:21 +09:00
5488fde20e
Update Readme to better reflect current developments.
2018-12-30 17:23:55 -08:00
764bdbeb06
MicropolyBatch doesn't need to satisfy Surface trait.
...
Eventually the Surface trait will be changed to actually mean the
ability to be processed _into_ a MicropolyBatch. So it's ultimately
nonsensical for MicropolyBatch to implement it.
2018-12-29 10:18:38 -08:00
112f94c127
Implemented a "Micropolygon Batch" type.
...
This is in prep for a shade-before-hit architecture. The type is
currently unused and untested.
architecture.
2018-12-28 13:40:36 -08: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
53754b956c
Blackbody colors are now parsed, and PsychoBlend has support as well.
2018-12-28 00:23:02 -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
b598ce499c
Updated dependencies.
2018-12-16 13:22:12 -08:00
508cda6021
Better path usage and "extern crate" removal in sub-crates.
2018-12-16 13:14:06 -08:00
28a07de456
Improve module path usage and remove extern crate declarations where possible.
2018-12-16 13:02:49 -08:00
178c0bd6cb
Third step transitioning to Rust 2018.
2018-12-16 12:17:21 -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
e3a9cbef84
Silenced/fixed the last of the clippy warnings.
2018-12-16 11:48:01 -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
ab637e3bd5
Fixed bug in GTR and GGX BRDFs.
2018-08-09 14:43:32 -07:00
c002514ddf
Run latest rustfmt. No functional changes.
2018-08-09 00:43:21 -07:00
caeb1d9c67
Added GGX glossy material, and simplified surface closure API.
2018-08-09 00:42:17 -07:00