Commit graph

27 commits

Author SHA1 Message Date
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
34ea80c030 Bunch of logic errors in port of math and sampling functions 2026-09-02 17:21:16 +01:00
0fcfcbd467 Added gpu config flag, completed light sampling methods 2026-09-02 09:41:14 +01:00
1b8ca71b0e Continuing migration to new pointer API and finishing light implementation 2026-09-01 15:02:53 +01:00
8e8a3845f8 Moving to index based access of resources and instances 2026-08-31 13:10:53 +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
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
5ff8044158 Cleaning unused imports, refactoring wavefront integration 2026-05-28 14:40:45 +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
1a7ac9cb22 Fixing typos 2026-05-21 15:05:36 +01:00
72acb8ccdf Continuing cleanup 2026-05-20 20:14:58 +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
a4c751bbcd Just changing var names 2026-05-18 22:59:31 +01:00
fa4692bfe6 Trying out allocate API, and just have a unified Vec and Ptr representation instead of duplicating everything and having DeviceRepr 2026-05-18 22:44:22 +01:00
731a37abae More fixes to allow for spirv compilation. Namely,
issues with array initialization with functions ([object::default()]),
initializing arrays from a function (implemented a simple gpu version
using manual MaybeUninit pointers),
changing enums with distinct types to structs or changing the selection
logic, changing pointer subtraction in light samplers to a scan (this
will come back to bite me in the ass), and ignoring the data module,
since SPIR-V cant use pointers in statics.
2026-02-20 21:11:17 +00:00
7ebed27d4a Cleanup of shared codebase to no_std and spirv compatibility 2026-02-20 16:39:27 +00:00
14418472d5 Some more refactoring, more error correction. When will this end? 2026-01-22 16:20:28 +00:00
93bcd465eb Fixing errors in CPU code 2026-01-22 14:18:57 +00:00
9a8ec13728 Finally fixed import errors due to refactoring, gotta get a better IDE 2026-01-19 23:52:12 +00:00
86c9a90f2e Fixes 2026-01-18 16:29:27 +00:00
f7c47be077 Some more refactoring 2026-01-01 09:45:00 +00:00
75655ed774 Continuing GPU migration, implemented new parallelization strategies, correcting some logic bugs in maths functions 2025-12-30 18:09:30 +00:00
8bcc2fb0c8 Very big change, preparing for gpu integration 2025-12-20 00:11:31 +00:00