diff --git a/Source/Engine/Graphics/Materials/DeferredMaterialShader.cpp b/Source/Engine/Graphics/Materials/DeferredMaterialShader.cpp index 17dee07c2..c71cea7ee 100644 --- a/Source/Engine/Graphics/Materials/DeferredMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/DeferredMaterialShader.cpp @@ -196,14 +196,17 @@ bool DeferredMaterialShader::Load() _cache.DefaultSkinned.Init(psDesc); #if USE_EDITOR - // Quad Overdraw - psDesc.VS = _shader->GetVS("VS"); - psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); - _cache.QuadOverdraw.Init(psDesc); - psDesc.VS = _shader->GetVS("VS", 1); - _cacheInstanced.Depth.Init(psDesc); - psDesc.VS = _shader->GetVS("VS_Skinned"); - _cache.QuadOverdrawSkinned.Init(psDesc); + if (_shader->HasShader("PS_QuadOverdraw")) + { + // Quad Overdraw + psDesc.VS = _shader->GetVS("VS"); + psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); + _cache.QuadOverdraw.Init(psDesc); + psDesc.VS = _shader->GetVS("VS", 1); + _cacheInstanced.Depth.Init(psDesc); + psDesc.VS = _shader->GetVS("VS_Skinned"); + _cache.QuadOverdrawSkinned.Init(psDesc); + } #endif // Motion Vectors pass diff --git a/Source/Engine/Graphics/Materials/DeformableMaterialShader.cpp b/Source/Engine/Graphics/Materials/DeformableMaterialShader.cpp index d881627d9..76e3aeea5 100644 --- a/Source/Engine/Graphics/Materials/DeformableMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/DeformableMaterialShader.cpp @@ -140,12 +140,15 @@ bool DeformableMaterialShader::Load() psDesc.HS = _shader->GetHS("HS"); psDesc.DS = _shader->GetDS("DS"); } - + #if USE_EDITOR - // Quad Overdraw - psDesc.VS = _shader->GetVS("VS_SplineModel"); - psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); - _cache.QuadOverdraw.Init(psDesc); + if (_shader->HasShader("PS_QuadOverdraw")) + { + // Quad Overdraw + psDesc.VS = _shader->GetVS("VS_SplineModel"); + psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); + _cache.QuadOverdraw.Init(psDesc); + } #endif if (_info.BlendMode == MaterialBlendMode::Opaque) diff --git a/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp b/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp index 563c6cb00..29c7b0eed 100644 --- a/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp @@ -169,14 +169,17 @@ bool ForwardMaterialShader::Load() } #if USE_EDITOR - // Quad Overdraw - psDesc.VS = _shader->GetVS("VS"); - psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); - _cache.QuadOverdraw.Init(psDesc); - psDesc.VS = _shader->GetVS("VS", 1); - _cacheInstanced.Depth.Init(psDesc); - psDesc.VS = _shader->GetVS("VS_Skinned"); - _cache.QuadOverdrawSkinned.Init(psDesc); + if (_shader->HasShader("PS_QuadOverdraw")) + { + // Quad Overdraw + psDesc.VS = _shader->GetVS("VS"); + psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); + _cache.QuadOverdraw.Init(psDesc); + psDesc.VS = _shader->GetVS("VS", 1); + _cacheInstanced.Depth.Init(psDesc); + psDesc.VS = _shader->GetVS("VS_Skinned"); + _cache.QuadOverdrawSkinned.Init(psDesc); + } #endif // Check if use transparent distortion pass diff --git a/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp b/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp index bc5748f56..033d87a62 100644 --- a/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp @@ -211,14 +211,17 @@ bool ParticleMaterialShader::Load() auto vsRibbon = _shader->GetVS("VS_Ribbon"); #if USE_EDITOR - // Quad Overdraw - psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); - psDesc.VS = vsSprite; - _cacheSprite.QuadOverdraw.Init(psDesc); - psDesc.VS = vsMesh; - _cacheModel.QuadOverdraw.Init(psDesc); - psDesc.VS = vsRibbon; - _cacheRibbon.QuadOverdraw.Init(psDesc); + if (_shader->HasShader("PS_QuadOverdraw")) + { + // Quad Overdraw + psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); + psDesc.VS = vsSprite; + _cacheSprite.QuadOverdraw.Init(psDesc); + psDesc.VS = vsMesh; + _cacheModel.QuadOverdraw.Init(psDesc); + psDesc.VS = vsRibbon; + _cacheRibbon.QuadOverdraw.Init(psDesc); + } #endif // Check if use transparent distortion pass diff --git a/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp b/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp index cecf081bd..0dd7cd86c 100644 --- a/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp @@ -183,11 +183,14 @@ bool TerrainMaterialShader::Load() // GBuffer Pass with lightmap (use pixel shader permutation for USE_LIGHTMAP=1) psDesc.PS = _shader->GetPS("PS_GBuffer", 1); _cache.DefaultLightmap.Init(psDesc); - + #if USE_EDITOR - // Quad Overdraw - psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); - _cache.QuadOverdraw.Init(psDesc); + if (_shader->HasShader("PS_QuadOverdraw")) + { + // Quad Overdraw + psDesc.PS = _shader->GetPS("PS_QuadOverdraw"); + _cache.QuadOverdraw.Init(psDesc); + } #endif // Depth Pass