Disable culling of transparent objects in shadows/reflections, to fix trees
This was SVN commit r9818.
This commit is contained in:
parent
f02e67d012
commit
7f74693052
@ -943,20 +943,11 @@ void CRenderer::RenderShadowMap()
|
||||
}
|
||||
|
||||
|
||||
// Render all closed models (i.e. models where rendering back faces will produce
|
||||
// the correct result)
|
||||
glCullFace(GL_FRONT);
|
||||
|
||||
{
|
||||
PROFILE("render patches");
|
||||
m->terrainRenderer->RenderPatches();
|
||||
}
|
||||
|
||||
glCullFace(GL_BACK);
|
||||
|
||||
// Render models that aren't closed
|
||||
glDisable(GL_CULL_FACE);
|
||||
|
||||
{
|
||||
PROFILE("render models");
|
||||
m->CallModelRenderers(m->Model.ModSolid, m->Model.ModSolidInstancing,
|
||||
@ -965,11 +956,12 @@ void CRenderer::RenderShadowMap()
|
||||
|
||||
{
|
||||
PROFILE("render transparent models");
|
||||
// disable face-culling for two-sided models
|
||||
glDisable(GL_CULL_FACE);
|
||||
m->Model.Transp->Render(transparentShadows, MODELFLAG_CASTSHADOWS);
|
||||
glEnable(GL_CULL_FACE);
|
||||
}
|
||||
|
||||
glEnable(GL_CULL_FACE);
|
||||
|
||||
glColor3f(1.0, 1.0, 1.0);
|
||||
|
||||
m->shadow->EndRender();
|
||||
@ -1102,6 +1094,10 @@ void CRenderer::RenderTransparentModels(ETransparentMode transparentMode, const
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
}
|
||||
|
||||
// disable face culling for two-sided models in sub-renders
|
||||
if (flags)
|
||||
glDisable(GL_CULL_FACE);
|
||||
|
||||
if (transparentMode == TRANSPARENT_OPAQUE)
|
||||
m->Model.Transp->Render(m->Model.ModTransparentOpaque, flags);
|
||||
else if (transparentMode == TRANSPARENT_BLEND)
|
||||
@ -1109,6 +1105,9 @@ void CRenderer::RenderTransparentModels(ETransparentMode transparentMode, const
|
||||
else
|
||||
m->Model.Transp->Render(m->Model.ModTransparent, flags);
|
||||
|
||||
if (flags)
|
||||
glEnable(GL_CULL_FACE);
|
||||
|
||||
if (m_ModelRenderMode == WIREFRAME)
|
||||
{
|
||||
// switch wireframe off again
|
||||
|
Loading…
Reference in New Issue
Block a user