Commit graph

105 commits

Author SHA1 Message Date
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
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
dad7300a14 Hitting myself, and going for a trait for uploading objs to GPU. Keep forgetting to actually upload them 2026-05-16 02:36:20 +01:00