summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2022-09-06 15:07:22 -0500
committerDave Parks <davep@lindenlab.com>2022-09-06 15:07:22 -0500
commitabf788175c451046f82cc9aeaddc894c47863ffa (patch)
tree54138d2f36281e782bfad0f84f460c2a94be4da2 /indra/newview
parentef2eecca2737a3c9d71ef4097c76d2dd0f52df3d (diff)
SL-18096 WIP -- partial support for double sided rendering. Shadow map and picking support TBD.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl2
-rw-r--r--indra/newview/lldrawpoolpbropaque.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl
index 7a13abc7e8..f5b5698305 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl
@@ -153,6 +153,8 @@ void main()
col.rgb = vary_position.xyz;
#endif
+ tnorm *= gl_FrontFacing ? 1.0 : -1.0;
+
// See: C++: addDeferredAttachments(), GLSL: softenLightF
frag_data[0] = vec4(col, 0.0); // Diffuse
frag_data[1] = vec4(emissive, vertex_color.a); // PBR sRGB Emissive
diff --git a/indra/newview/lldrawpoolpbropaque.cpp b/indra/newview/lldrawpoolpbropaque.cpp
index 9fc3d51cad..e1614904b4 100644
--- a/indra/newview/lldrawpoolpbropaque.cpp
+++ b/indra/newview/lldrawpoolpbropaque.cpp
@@ -146,6 +146,8 @@ void LLDrawPoolPBROpaque::renderDeferred(S32 pass)
shader->uniform1f(LLShaderMgr::METALLIC_FACTOR, pparams->mGLTFMaterial->mMetallicFactor);
shader->uniform3fv(LLShaderMgr::EMISSIVE_COLOR, 1, pparams->mGLTFMaterial->mEmissiveColor.mV);
+ LLGLDisable cull_face(mat->mDoubleSided ? GL_CULL_FACE : 0);
+
if (rigged)
{
if (pparams->mAvatar.notNull() && (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash))