fc7b8da17d
Remove unused imports.
2022-08-07 13:29:40 -07:00
b5bf580b96
Make Camera own its own memory.
2022-08-07 13:28:00 -07:00
6decc48648
PsychoBlend: fix broken material ui panel.
2022-08-07 11:17:25 -07:00
e244664b32
Move shader bindings to objects rather than instances.
2022-08-07 11:05:34 -07:00
1c801ee605
PsychoBlend: implement object and material export.
...
Material bindings don't work, since they're now on the objects
themselves rather than the instances, and I haven't updated
Psychopath itself for that yet.
2022-08-07 10:23:54 -07:00
d132e6a015
Some minor cleanup in the Blender/Psychopath communication code.
2022-08-07 08:25:10 -07:00
69ace90689
Continue WIP update PsychoBlend for Blender 3.x.
...
It exports and renders successfully... except there are no objects.
Just a blank background.
2022-08-06 21:40:13 -07:00
6d7b8b280f
WIP update PsychoBlend for Blender 3.x.
...
This just makes the UI not break. Exporting/rendering still
doesn't work.
2022-08-06 13:50:40 -07:00
1d05063190
Poking at what the new file/streaming format might be.
2022-08-04 15:40:09 -07:00
2bb45a9876
Add streaming data tree parser sub-crate.
...
Not used yet.
2022-08-04 13:50:13 -07:00
e1c983a7e6
Added benchmarks to rrand sub-crate.
...
Also misc naming cleanup.
2022-08-04 11:52:49 -07:00
a12de4c3d7
Wrap sampling logic/tracking in a struct.
2022-08-04 11:11:25 -07:00
1f7c412e25
Benchmarks and precision tests for RMath sub-crate.
2022-08-03 17:10:27 -07:00
167d70b8df
Made the hilbert spiral order a little more pleasant.
2022-08-03 10:55:51 -07:00
15cd261026
Fix bug resulting in cracks between triangles in some cases.
2022-08-03 10:23:26 -07:00
9569f772f0
Fix incorrect background color handling in glossy reflections.
...
Bug introduced in the previous refector removing the LightPath struct.
2022-08-03 00:07:03 -07:00
77ac8ef9f2
Implement "hilbert spiral" bucket rendering order.
2022-08-02 23:58:56 -07:00
7c750dcded
Directly specify bucket size instead of inferring from sample count.
...
Since we aren't doing breadth-first ray tracing anymore, this makes
a lot more sense.
2022-08-02 19:41:23 -07:00
72b8397e9d
Finished getting rid of the LightPath struct.
...
Also misc cleanup of related code.
2022-08-02 18:55:25 -07:00
6ccd4e306d
WIP getting rid of LightPath struct.
...
Committing at this point because:
1. It compiles.
2. Rendering is totally wrong, but in a cool way.
2022-08-02 17:29:05 -07:00
181f7a6b85
Add convenience script for building with target native cpu.
2022-08-02 15:13:52 -07:00
608fe8bda1
Switch to colorbox and jakob upsampling for color handling.
2022-08-02 00:18:12 -07:00
5d246e66fa
Remove stats that we can't reasonably collect anymore.
2022-08-01 22:57:13 -07:00
8bc6b24004
Switch to CIE XYZ lookup tables.
2022-08-01 22:04:14 -07:00
caed4c67de
Do depth-first instead of breadth-first ray tracing.
...
This simplifies a lot of code, and will make experimenting with
other things a lot more straightforward.
2022-08-01 15:26:38 -07:00
98a9aeb374
Minor tweaks to Owen scrambling functions.
2022-07-25 15:43:07 -07:00
ef489c1ca2
Minor cleanup of the Owen scramble code.
2022-07-23 14:17:38 -07:00
f95e869848
Give Owen scramble functions their own hash.
...
This lets us move the seeding overhead outside the main loop,
which in turn lets us avoid taking it every round.
2022-07-23 13:24:24 -07:00
40d643b334
Put hilbert and morton code into one module.
2022-07-23 12:57:57 -07:00
0df18ce908
New hash seeding approach.
...
There didn't seem to be any issues in practice with the last
approach, but I thought of some other ways things could in theory
interact badly. This fixes that.
2022-07-21 14:18:55 -07:00
570878d052
Eliminate branch in per-bit Owen scrambling functions.
2022-07-21 12:28:47 -07:00
f5a0210cdf
More principled seeding approach in the hash functions.
2022-07-21 12:15:36 -07:00
7082f2d7f4
Update hash functions to known good ones instead of bespoke ones.
2022-07-21 05:22:22 -07:00
0d71ae86db
Noticed that z-scrambling is actually just base-4 Owen scrambling.
...
Updated function name and comments to reflect that.
2022-07-21 04:44:05 -07:00
6b7538e25f
Make the z-scrambling table smaller with bit fiddling.
...
This gets it down to 24 bytes.
2022-07-21 04:20:03 -07:00
ec9a121e72
Implement screen-space blue-noise sampling properly.
2022-07-21 03:59:47 -07:00
83b48f722d
Simpler way to implement screen-space blue-noise sampling.
...
We now do the index scrambling at the top of the sampling loop,
which is also faster since we only have to run it once per pixel
instead of once per sample.
2022-07-20 18:54:38 -07:00
86814dbf8f
Minor rearrangement of ray generation sampling code.
2022-07-17 21:18:46 -07:00
89429ed9f0
Fix silly bug in light transforms introduced during the switch to RMath.
2022-07-17 17:40:14 -07:00
d55ec9b025
Update psychopath code to work with RMath changes.
2022-07-17 17:24:58 -07:00
6dbdcba91a
Whole bunch of cleanup on RMath.
2022-07-17 16:37:15 -07:00
e2044e6579
Implement simple screen-space blue-noise diffusion sampling.
...
From the paper "Screen-Space Blue-Noise Diffusion of Monte Carlo
Sampling Error via Hierarchical Ordering of Pixels" by Ahmed et al.
2022-07-16 19:35:23 -07:00
ea4ba81110
Use faster routines where precision isn't needed.
2022-07-16 01:09:33 -07:00
8dcf093dbb
RMath: first pass at an SSE implementation.
2022-07-16 00:03:09 -07:00
08e2e6eb06
Convert Psychopath over to use new RMath library.
2022-07-15 21:42:35 -07:00
a84da943d0
RMath: implement transform composition.
2022-07-15 17:51:57 -07:00
5535775006
RMath: implement Bool4 type.
2022-07-15 15:20:44 -07:00
fa7be4e58c
RMath: change fallback Float4 to be a tuple-struct.
2022-07-15 00:49:37 -07:00
a93a3f09da
RMath: implement cross product and bring back some unit tests.
2022-07-15 00:39:14 -07:00
42cd282c47
RMath: implement transforms for Vector, Point, and Normal.
2022-07-14 23:23:22 -07:00