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
63d661f8ce
Update sobol_burley dependency.
2021-05-11 20:17:51 -07:00
706902dc8e
Move sobol crate outside of Psychopath into its own repo.
2021-05-11 13:35:17 -07:00
16e5f539ea
Update to latest openexr-rs.
2020-12-31 12:25:22 +09:00
3d85ce8005
Consolidate all of the compact value storage formats into one crate.
2020-12-30 20:41:56 +09:00
6586b38dc9
Use an external crate for fast approximate math functions.
2020-12-26 10:03:35 +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
fdad8f71bb
Renamed spectral upsampling sub-crate.
2019-06-02 07:28:43 +09:00
5fb349cc49
Second step transitioning to Rust 2018.
2018-12-16 12:07:11 -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
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
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
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
f8d47dc24a
Fixed some things for building with SIMD support.
2017-04-13 23:28:26 -07:00
f5ba119562
Switched to clap for command line argument parsing.
2017-04-11 10:15:32 -07:00
d9564bc005
Refactor and rework of BVH.
...
The BVH building code is now largely split out into a separate
type, BVHBase. The intent is that this will also be used by
the BVH4 when I get around to it.
The BVH itself now uses references instead of indexes, allocating
and pointing directly into the MemArena. This allows the nodes
to all be right next to their bounding boxes in memory.
2017-04-10 23:41:38 -07:00
6f043b575a
Implemented a basic memory arena in a sub-crate.
2017-04-09 15:53:06 -07:00
bb4e57795f
Added support for OpenEXR output.
2016-10-09 20:34:58 -07:00
fbeadfce29
Use quick select for balanced BVH building.
...
This gets rid of a crate dependency, and also is faster.
2016-08-14 00:51:21 -07:00
c6f6266a38
Added timer output so you can see how long things take.
2016-07-31 12:05:28 -07:00
2b05f65024
Updated dependencies.
2016-07-30 20:23:20 -07:00
e4c94d0c58
Optional use of SIMD intrinsics, via feature in cargo.
...
This is disabled by default right now, because it only builds on
nightly.
2016-07-16 19:58:39 -07:00
2e3851837d
Implemented SAH splitting for the BVH. Also fixed crash bug.
...
The bug was in the previous commit, where I thought I was
preventing out-of-bounds access during traversal by limiting
the tree depth. While the idea was correct, I forgot that the
traversal stack needs _2_ extra slots on top of the tree depth,
not just 1. Fixed.
2016-07-16 03:21:57 -07:00
35ef58b09c
Special case BVH building when we get too close to max depth.
...
This avoids exceeding max BVH depth even in pathological cases.
Still need improve non-worst case building, but this at least
prevents crashes in worst case.
2016-07-16 00:05:23 -07:00
5b461220a5
PsychoBlend now exports meshes as meshes, and Psychopath renders to PNGs.
2016-07-10 17:42:28 -07:00
5ec1f534cf
Implemented bucketed rendering.
2016-06-05 01:27:55 -07:00
a681ba461e
Implemented basic multi-threaded rendering.
...
It's a bit inefficient because a thread is spawned for each pixel.
Need to implement bucketing.
2016-06-03 21:03:04 -07:00
38d33ed144
More work on scene parsing.
...
Using Nom to help with parsing the contents of leaf nodes.
2016-03-10 23:58:19 -08:00
3f614f3728
Added command line parsing and PPM image writing.
...
Also the beginnings of a Ray struct.
2015-12-27 00:13:35 -08:00
aa6b72493b
First commit.
...
WIP basic 3d math code.
2015-12-26 00:38:29 -08:00