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
5c20fa3ea4
Moved more work out of the triangle mesh intersection inner loop.
...
This makes the code a bit spaghetti-like, but it provides noticable
speed-ups in the all the scenes I tested.
2018-07-01 17:30:58 -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
989914b878
Use Float4::splat() in AccelRay methods.
2018-06-29 17:28:39 -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
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