Add Global SDF quality setting and support for variable cascades count and resolution

This commit is contained in:
Wojciech Figat
2022-06-10 14:30:40 +02:00
parent 3b27ae5fa9
commit f685c67275
13 changed files with 128 additions and 77 deletions

View File

@@ -488,8 +488,7 @@ void MaterialParameter::Bind(BindMeta& meta) const
GlobalSignDistanceFieldPass::BindingData bindingData;
if (GlobalSignDistanceFieldPass::Instance()->Get(meta.Buffers, bindingData))
Platform::MemoryClear(&bindingData, sizeof(bindingData));
for (int32 i = 0; i < 4; i++)
meta.Context->BindSR(_registerIndex + i, bindingData.Cascades[i] ? bindingData.Cascades[i]->ViewVolume() : nullptr);
bindingData.BindCascades(meta.Context, _registerIndex);
*((GlobalSignDistanceFieldPass::ConstantsData*)(meta.Constants.Get() + _offset)) = bindingData.Constants;
break;
}