ed2caf094d
Changes to PathIntegrator maxdepth and light sampling
2026-09-04 13:10:04 +01:00
5038ed8270
basic_intersect for DiskShape computed the plane hit with interval arithmetic where
...
pbrt uses a scalar (shapes.h: Float tShapeHit = (height - Float(oi.z)) /
Float(di.z)). It produced NaN, and since every NaN comparison is false neither
the t range test nor the subsequent dist2 > radius^2 test could reject it. The
disk reported a hit on every ray tested against it, and the NaN reached dpdu/
dpdv, the shading normal, and the area-light MIS pdf.
NaN is absorbing in the film, so one bad sample poisoned pixel RgbSum permantenly. Wavefront now works
2026-09-03 12:39:56 +01:00
1b1344c393
Disk and Cylinder stored the phimax parameter raw. It arrives in degrees, while PBRT does radians. This one is embarassing, was causing 50x exposure
2026-09-02 21:59:38 +01:00
4faa3cdc95
Fix colorspace illuminant, LayeredBxDF transmittance, and film pixel bounds
...
- from_interleaved ignored its arg, so D65 came from a separate
hand-normalized table that was scaled to luminance 1 instead of
CIE_Y_integral and mapped to 300nm when it starts at 360nm. sRGB
rgb_from_xyz came out ~120x too large with the wrong white point, making
every render ~120x too bright with a colour cast. Now built as pbrt does:
from_interleaved(&CIE_ILLUM_D6500, true).
- LayeredBxDF::Tr: puts the minus on the result,
not the exponent, so transmittance was negative and grew exponentially.
killeroo-coated-gold went from 15 Infs / min -4168 / stddev 638 to clean.
- layered.rs used Float::MIN where C++ has numeric_limits<Float>::min(). Those
differ: the latter is f32::MIN_POSITIVE. Both guards were dead, leaving a
zero thickness to divide by.
- FilmBase::create expanded pixel_bounds by the filter radius. pbrt never does;
the radius widens SampleBounds() only. Output was 1372x1030, not 1368x1026.
- Gate the ENQUEUE/DEQUEUE wavefront prints behind cpu_debug; their queues
reset every depth/batch/sample so they fired constantly (100h renders).
2026-09-02 21:20:38 +01:00
34ea80c030
Bunch of logic errors in port of math and sampling functions
2026-09-02 17:21:16 +01:00
28bb963268
Finishing material creators
2026-09-02 15:31:12 +01:00
6e23698e2d
Added scene creator for SubSurface Material
2026-09-02 12:42:49 +01:00
f496c6721e
Updated Hair bsdf getter, added enum for clearer variant construction on absorption
2026-09-02 10:45:36 +01:00
0fcfcbd467
Added gpu config flag, completed light sampling methods
2026-09-02 09:41:14 +01:00
2448ab890e
Done with textures
2026-09-01 23:04:46 +01:00
aba574219c
Added creators to all textures but mix, need to decide now on a bloody architecture, this repo was in an insane state
2026-09-01 22:45:42 +01:00
7c35f9b180
Continuing the slog
2026-09-01 22:25:52 +01:00
2e9526ce18
Continuing work on Texture creation
2026-09-01 20:12:39 +01:00
87afe4168d
Might have just made a huge mistake
2026-09-01 19:37:59 +01:00
86151918e2
Correcting some mistakes I had regarding error handling, enabling optimization on builds, added option handling to BasicSceneBuilder
2026-09-01 18:00:33 +01:00
661fe73867
Applying fixes to Sobol samplers
2026-09-01 15:50:34 +01:00
1b8ca71b0e
Continuing migration to new pointer API and finishing light implementation
2026-09-01 15:02:53 +01:00
46a4edaee5
Continuing migration to index and GVec based usage of objects
2026-08-31 15:35:55 +01:00
8e8a3845f8
Moving to index based access of resources and instances
2026-08-31 13:10:53 +01:00
7db434535b
Very, utterly broken
2026-06-08 16:32:59 +01:00
dac5d2c28f
Very broken
2026-06-07 18:53:23 +01:00
4e1b3619f4
Major overhaul to Texture handling
2026-06-06 18:34:29 +01:00
853e980e83
Fixing logic bugs in Sampling, texture loading. Moving on to issues with ImageTexture, the long dreaded dive
2026-06-06 17:13:52 +01:00
63c10c6573
Continguing fixes. Some issues with memory leaks
2026-06-05 19:18:13 +01:00
79c87a6c15
Continuing cleanup. Added constructors for FloatImageTexture
2026-06-05 17:39:22 +01:00
aefd204577
Eliminated duplicate and incorrect definitions of transform applications to geometric primitives
2026-06-05 16:28:04 +01:00
ac7fdd7486
Fixing precision issues on vector operations, disk intersection
2026-06-05 16:04:19 +01:00
4188adbc33
Spring cleaning
2026-06-05 15:51:06 +01:00
3fda37fcd1
Still broken
2026-06-04 16:35:28 +01:00
66032abf76
Still broken
2026-06-02 21:46:11 +01:00
f18aed2c91
Broken state
2026-05-29 22:41:27 +01:00
8b93ce3d4b
Fixing issue with work item definitions and light sampling on wavefront
2026-05-29 13:00:20 +01:00
5ff8044158
Cleaning unused imports, refactoring wavefront integration
2026-05-28 14:40:45 +01:00
a6ee0a1b52
Moving on to GPU rendering
2026-05-28 06:39:26 +01:00
e6d1850785
Continuing cleanup
2026-05-28 06:39:05 +01:00
0c62fbc3b5
Fixed logic issues in BSDF sampling and pdf calculations, moving on to GPU integrators
2026-05-26 19:07:45 +01:00
3cb2086f6d
Added missing geometry. Implementing missing material methods
2026-05-25 22:14:56 +01:00
3d95ff4c92
A lot of fixes, rendering is somewhat working. CAREFUL: REMOVED as_ref, need to sub by get but got lazy
2026-05-25 15:30:14 +01:00
3226e9c965
Refactoring
2026-05-22 14:34:53 +01:00
226ff88874
Fixing rendering issues, unifying rendering pipeline
2026-05-21 23:47:37 +01:00
1a7ac9cb22
Fixing typos
2026-05-21 15:05:36 +01:00
1ea327cb6c
Changing behaviour of Ray
2026-05-21 02:15:08 +01:00
82255e5046
ALmost done with changes
2026-05-20 20:52:34 +01:00
72acb8ccdf
Continuing cleanup
2026-05-20 20:14:58 +01:00
384a0019d8
Fixing some import errors
2026-05-20 16:56:58 +01:00
a14960562c
This commit is way too large. So, added Upload trait back again, but only for Textures, which are the most complex types. Fixing Medium and PixelSensor creation on host side. Can´t really find a satisfying way of keeping construction and creation separate, so for now, regrettably, putting them in the same place. Added some types to parameter parsing. Continuing fixup caused by creation of GVec and GBox
2026-05-20 16:16:57 +01:00
44099dffa9
Plowing straight ahead
2026-05-19 22:54:27 +01:00
050698c1d0
Finished work on the shared side. Now moving to host code. May god have mercy on my soul
2026-05-19 19:58:21 +01:00
5b4928e1aa
Continuing refactoring, deleted camera construction on host side
2026-05-19 01:44:38 +01:00
31106696bd
Continuing refactoring
2026-05-19 00:54:29 +01:00