Skip to content

Commit 62f2c99

Browse files
committed
changes to splatting params precompute for the last time
1 parent 3d36c13 commit 62f2c99

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

include/nbl/builtin/hlsl/rwmc/CascadeAccumulator.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ struct CascadeAccumulator
8282

8383
// handle super bright sample case
8484
if (cascade > CascadeCount - 1)
85-
lowerCascadeWeight = exp2(splattingParameters.log2Start + splattingParameters.log2Base * (CascadeCount - 1) - log2Luma);
85+
lowerCascadeWeight = splattingParameters.lastCascadeLuma / luma;
8686

8787
accumulation.addSampleIntoCascadeEntry(_sample, lowerCascadeIndex, lowerCascadeWeight, higherCascadeWeight, sampleCount);
8888
}

include/nbl/builtin/hlsl/rwmc/SplattingParameters.hlsl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ struct SplattingParameters
1515
{
1616
using scalar_t = float;
1717

18-
static SplattingParameters create(const scalar_t base, const scalar_t start)
18+
static SplattingParameters create(const scalar_t base, const scalar_t start, const uint32_t cascadeCount)
1919
{
2020
SplattingParameters retval;
21-
retval.log2Base = hlsl::log2(base);
22-
retval.log2Start = hlsl::log2(start);
23-
retval.rcpLog2Base = scalar_t(1.0) / retval.log2Base;
24-
retval.baseRootOfStart = retval.log2Start * retval.rcpLog2Base;
21+
const scalar_t log2Base = hlsl::log2(base);
22+
const scalar_t log2Start = hlsl::log2(start);
23+
retval.lastCascadeLuma = hlsl::exp2(log2Start + log2Base * (cascadeCount - 1));
24+
retval.rcpLog2Base = scalar_t(1.0) / log2Base;
25+
retval.baseRootOfStart = log2Start * retval.rcpLog2Base;
2526
return retval;
2627
}
2728

28-
scalar_t log2Base;
29-
scalar_t log2Start;
29+
scalar_t lastCascadeLuma;
3030
scalar_t baseRootOfStart;
3131
scalar_t rcpLog2Base;
3232
};

0 commit comments

Comments
 (0)