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
c753890bb0
Fix/silence various clippy warnings.
2019-08-01 14:18:26 +09:00
68fba19fc6
Removed a timer from a hot loop, and fixed node-test stat.
...
Gives I small performance boost, and now ray/node tests are
actually reported correctly. Yay!
2019-06-29 09:46:39 +09:00
5a53d7f6f6
Added some additional ray tracing stats.
2019-06-29 09:20:04 +09:00
14b16896ac
Fix some compiler warnings.
2019-06-29 08:41:11 +09:00
aed0f2ede1
Implemented a SIMD version of the BVH4.
...
It does indeed appear to be faster with this style of traversal!
2019-06-28 21:57:29 +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
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
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
589a67caa4
Run latest rustfmt on code. No functional changes.
2018-12-08 13:23:44 -08:00
498c1ea8d9
Running latest rustfmt. No functional change.
2018-10-30 22:31:25 -07:00
6d21a30840
Formatting with newer cargo fmt
.
...
No meaningful code change, only formatting.
2018-06-24 21:18:10 -07:00
b2576c20e7
Upgraded to Nom 2.x
2018-03-04 22:06:20 -08:00
97d3304149
Run new rustfmt on codebase.
2018-03-04 13:00:55 -08:00
5a03a46ac7
Multiple importance sampling is now basically working.
...
Intersecting rectangular lights still isn't implemented, and there
are likely bugs in the MIS implementation, but it's more-or-less
working!
2017-08-16 20:04:06 -07: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
f371e0643a
Instrument code to count ray/node tests during BVH traversal.
2017-07-06 22:17:36 -07:00
09daf617ef
Implemented a non-SIMD BVH4. Perf appears to be identical to BVH.
2017-07-01 15:08:05 -07:00
011405e131
Implemented robust ray origin calculation for bounced rays.
...
We take a small performance hit for this, but given that it's
making things meaningfully more correct I feel like it's more
than worth it.
2017-06-19 22:28:44 -07:00
f649bec585
Reformat code with rustfmt 0.9
2017-06-15 22:00:31 -07:00
Guillaume Gomez
ae11be1397
Improve messages for imge creation
2017-06-14 10:46:28 +02: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
2a66485595
Supress information output when doing serialized ouput for PsychoBlend.
2017-06-10 22:34:14 -07:00
71c320d87c
Added command-line argument to render an image cropped.
2017-06-06 21:11:35 -07:00
59555f67f9
PsychoBlend: use stdin/out to transfer scene data by default.
...
This eliminates writing temp files to disk for any part of the
Blender/Psychopath integration.
The option to export to a file still exists, however, by
specifying an export output path.
2017-06-04 23:24:45 -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
922e33ec3f
Reformat code with latest rustfmt and custom config.
2017-05-14 13:43:51 -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
172e2f19ef
Removed BVH4 and the related bitstack from AccelRay.
...
I couldn't make the BVH4 faster than the BVH, and the bitstack
was bloating the AccelRay struct. Removing the bitstack gives
a small but noticable speedup in rendering.
2017-05-12 21:07:40 -07:00
88578b9eae
Moved Float4 and Matrix and Vector math into their own sub-crates.
2017-05-12 21:01:54 -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
a3a19e53ef
Some misc small optimizations.
2017-05-11 01:22:37 -07:00
0cbf851451
Fixed a commandline argument that was broken.
...
Also removed a redundant statistics printout.
2017-04-22 12:50:28 -07:00
fdf2b4babf
Print stats for BVH and BVH4 traversal, and working on speeding up BVH4 traversal.
2017-04-22 11:18:29 -07:00
8b14e46bc1
Added more detailed render stats.
2017-04-22 10:31:27 -07:00
7d5bda2a3b
Print newline before exit.
...
Makes it easier to scan commandline history for multiple renders.
2017-04-14 23:22:38 -07:00
8b1e3a3cdb
Added some dev printing info.
2017-04-13 22:50:47 -07:00
a2d7f9e149
Added BBox4 and BVH4 types.
...
BVH4 is just a skeleton (duplicated BVH) right now. But BBox4
is complete (pending testing).
2017-04-11 14:22:11 -07:00
c05bae2636
Created a BitStack128 type and added it to Ray.
...
This will be used for BVH4 traversal.
2017-04-11 11:13:23 -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
db3e4ad129
MemArena now slowly increases the size of each subsequent block.
...
This seems to work more nicely than a fixed block size, because
it adapts to how much memory is being requested over-all. For
example, a small scene won't allocate large amounts of RAM,
but a large scene with large data won't be penalized with a
lot of tiny allocations.
2017-04-10 20:49:55 -07:00
70f715ec2d
MemArena now collects statistics about its usage.
...
You can print out statistics about the main arena used in
Psychopath by passing the new --stats flag.
2017-04-10 18:34:08 -07:00
6623443e2e
Improved .psy file parsing error messages.
...
Biggest improvement: it gives you line numbers. But also progress
on better descriptions.
2017-04-10 14:03:01 -07:00