File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
include/nbl/builtin/hlsl/rwmc Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,21 @@ struct SPackedSplattingParameters
3737 // pack as Half2x16
3838 int32_t PackedLog2BaseRootAndBrightSampleLumaBias;
3939
40+ static SPackedSplattingParameters create (float32_t base, float32_t start, uint32_t cascadeCount)
41+ {
42+ const float32_t rcpLog2Base = 1.0f / hlsl::log2 (base);
43+ const float32_t baseRootOfStart = hlsl::exp2 (hlsl::log2 (start) * rcpLog2Base);
44+ const float32_t log2BaseRootOfStart = hlsl::log2 (baseRootOfStart);
45+ const float32_t brightSampleLumaBias = (log2BaseRootOfStart + float32_t (cascadeCount - 1u)) / rcpLog2Base;
46+ float32_t2 packLogs = float32_t2 (baseRootOfStart, rcpLog2Base);
47+ float32_t2 packPrecomputed = float32_t2 (log2BaseRootOfStart, brightSampleLumaBias);
48+
49+ SPackedSplattingParameters retval;
50+ retval.PackedBaseRootAndRcpLog2Base = hlsl::packHalf2x16 (packLogs);
51+ retval.PackedLog2BaseRootAndBrightSampleLumaBias = hlsl::packHalf2x16 (packPrecomputed);
52+ return retval;
53+ }
54+
4055 SSplattingParameters unpack ()
4156 {
4257 SSplattingParameters retval;
You can’t perform that action at this time.
0 commit comments