summaryrefslogtreecommitdiffstats
path: root/GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2021-03-27 16:03:49 +0000
committers-ol <s+removethis@s-ol.nu>2021-03-30 14:48:32 +0000
commit90332aae667e6eeb66f27b41e915299b11604b02 (patch)
tree9f4b6504e1af3672abd02c42798473c8a353876b /GLTF_PBR_Renderer/src/GLTF_PBR_Renderer.cpp
parentC API for GLTF_PBR_Renderer (diff)
downloadDiligentFX-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.cpp11
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(),