diff options
| author | Dave Parks <davep@lindenlab.com> | 2022-10-28 11:19:43 -0500 |
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2022-10-28 11:19:43 -0500 |
| commit | 81553613551ffc7c8253d67a3fb3a24137d19d51 (patch) | |
| tree | d143b41a68fe94757d6b0dd3cef63f599d383253 /indra/newview/llfetchedgltfmaterial.cpp | |
| parent | 0451d51f4da9780e2f650b67672a29b3d07cb386 (diff) | |
SL-18453 WIP -- Use GLTF draw pool to render shadows. Still need a GLTF specific shadow shader to multiply alpha.
Diffstat (limited to 'indra/newview/llfetchedgltfmaterial.cpp')
| -rw-r--r-- | indra/newview/llfetchedgltfmaterial.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/indra/newview/llfetchedgltfmaterial.cpp b/indra/newview/llfetchedgltfmaterial.cpp index 2d3015635c..22be8a03dd 100644 --- a/indra/newview/llfetchedgltfmaterial.cpp +++ b/indra/newview/llfetchedgltfmaterial.cpp @@ -30,6 +30,7 @@ #include "llviewertexturelist.h" #include "llavatarappearancedefines.h" #include "llshadermgr.h" +#include "pipeline.h" LLFetchedGLTFMaterial::LLFetchedGLTFMaterial() : LLGLTFMaterial() @@ -66,38 +67,40 @@ void LLFetchedGLTFMaterial::bind(LLGLSLShader* shader) gGL.getTexUnit(0)->bindFast(LLViewerFetchedTexture::sWhiteImagep); } - - if (mNormalTexture.notNull()) - { - shader->bindTexture(LLShaderMgr::BUMP_MAP, mNormalTexture); - } - else + if (!LLPipeline::sShadowRender) { - shader->bindTexture(LLShaderMgr::BUMP_MAP, LLViewerFetchedTexture::sFlatNormalImagep); - } + if (mNormalTexture.notNull()) + { + shader->bindTexture(LLShaderMgr::BUMP_MAP, mNormalTexture); + } + else + { + shader->bindTexture(LLShaderMgr::BUMP_MAP, LLViewerFetchedTexture::sFlatNormalImagep); + } - if (mMetallicRoughnessTexture.notNull()) - { - shader->bindTexture(LLShaderMgr::SPECULAR_MAP, mMetallicRoughnessTexture); // PBR linear packed Occlusion, Roughness, Metal. - } - else - { - shader->bindTexture(LLShaderMgr::SPECULAR_MAP, LLViewerFetchedTexture::sWhiteImagep); - } + if (mMetallicRoughnessTexture.notNull()) + { + shader->bindTexture(LLShaderMgr::SPECULAR_MAP, mMetallicRoughnessTexture); // PBR linear packed Occlusion, Roughness, Metal. + } + else + { + shader->bindTexture(LLShaderMgr::SPECULAR_MAP, LLViewerFetchedTexture::sWhiteImagep); + } - if (mEmissiveTexture.notNull()) - { - shader->bindTexture(LLShaderMgr::EMISSIVE_MAP, mEmissiveTexture); // PBR sRGB Emissive - } - else - { - shader->bindTexture(LLShaderMgr::EMISSIVE_MAP, LLViewerFetchedTexture::sWhiteImagep); - } + if (mEmissiveTexture.notNull()) + { + shader->bindTexture(LLShaderMgr::EMISSIVE_MAP, mEmissiveTexture); // PBR sRGB Emissive + } + else + { + shader->bindTexture(LLShaderMgr::EMISSIVE_MAP, LLViewerFetchedTexture::sWhiteImagep); + } - // NOTE: base color factor is baked into vertex stream + // NOTE: base color factor is baked into vertex stream - shader->uniform1f(LLShaderMgr::ROUGHNESS_FACTOR, mRoughnessFactor); - shader->uniform1f(LLShaderMgr::METALLIC_FACTOR, mMetallicFactor); - shader->uniform3fv(LLShaderMgr::EMISSIVE_COLOR, 1, mEmissiveColor.mV); + shader->uniform1f(LLShaderMgr::ROUGHNESS_FACTOR, mRoughnessFactor); + shader->uniform1f(LLShaderMgr::METALLIC_FACTOR, mMetallicFactor); + shader->uniform3fv(LLShaderMgr::EMISSIVE_COLOR, 1, mEmissiveColor.mV); + } } |
