diff options
| author | s-ol <s+removethis@s-ol.nu> | 2021-03-27 16:03:49 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2021-03-30 14:48:32 +0000 |
| commit | 90332aae667e6eeb66f27b41e915299b11604b02 (patch) | |
| tree | 9f4b6504e1af3672abd02c42798473c8a353876b /GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp | |
| parent | C API for GLTF_PBR_Renderer (diff) | |
| download | DiligentFX-gltf-multiview.tar.gz DiligentFX-gltf-multiview.zip | |
GLTF: hacky VR rendering supportgltf-multiview
Diffstat (limited to 'GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp')
| -rw-r--r-- | GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp b/GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp index bbfbd4c..01afacf 100644 --- a/GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp +++ b/GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp @@ -299,6 +299,7 @@ void GLTF_PBR_Renderer::CreatePSO(IRenderDevice* pDevice) // clang-format off std::vector<ShaderResourceVariableDesc> Vars = { + {SHADER_TYPE_GEOMETRY, "Views", SHADER_RESOURCE_VARIABLE_TYPE_STATIC}, {SHADER_TYPE_VERTEX, "cbTransforms", SHADER_RESOURCE_VARIABLE_TYPE_STATIC}, {SHADER_TYPE_PIXEL, "cbGLTFAttribs", SHADER_RESOURCE_VARIABLE_TYPE_STATIC}, {SHADER_TYPE_VERTEX, "cbJointTransforms", SHADER_RESOURCE_VARIABLE_TYPE_STATIC} @@ -344,8 +345,10 @@ void GLTF_PBR_Renderer::CreatePSO(IRenderDevice* pDevice) PSOCreateInfo.pVS = pVS; PSOCreateInfo.pPS = pPS; - if (m_Settings.pGS) + if (m_Settings.pGS) { + PSODesc.SeparateGeometrySignature = true; PSOCreateInfo.pGS = m_Settings.pGS; + } { PSOKey Key{GLTF_MAT_ALPHA_MODE_OPAQUE, false}; @@ -862,7 +865,8 @@ void GLTF_PBR_Renderer::Render(IDeviceContext* pCtx, IGLTFModel* _GLTFModel, const GLTF_RenderInfo& RenderParams, GLTF_ModelResourceBindings* pModelBindings, - GLTF_ResourceCacheBindings* pCacheBindings) + GLTF_ResourceCacheBindings* pCacheBindings, + IShaderResourceBinding* pExtraBinding) { auto& GLTFModel = *static_cast<GLTF::Model*>(_GLTFModel); @@ -937,6 +941,9 @@ void GLTF_PBR_Renderer::Render(IDeviceContext* pCtx, VERIFY_EXPR(pCurrPSO == GetPSO(PSOKey{AlphaMode, material.DoubleSided})); } + if (pExtraBinding) + pCtx->CommitShaderResources(pExtraBinding, RESOURCE_STATE_TRANSITION_MODE_TRANSITION); + if (pModelBindings != nullptr) { VERIFY(primitive.MaterialId < pModelBindings->MaterialSRB.size(), |
