diff options
author | RunitaiLinden <davep@lindenlab.com> | 2023-06-15 14:51:57 -0500 |
---|---|---|
committer | RunitaiLinden <davep@lindenlab.com> | 2023-06-15 14:51:57 -0500 |
commit | 47be24e467a9fe5a2c0466a49f58769f6b81fdc4 (patch) | |
tree | 3d0627f8a0547f374f47481c04f3dfc286657265 /indra | |
parent | 3305fbe1cf5fe3faa6dc5479aa29e6c891ee943f (diff) |
SL-19835 Followup -- fix for emissive alpha objects blocking water rendering
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/app_settings/shaders/class3/deferred/materialF.glsl | 19 | ||||
-rw-r--r-- | indra/newview/lldrawpoolalpha.cpp | 4 |
2 files changed, 1 insertions, 22 deletions
diff --git a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl index ab40298f44..615a25d2de 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl @@ -353,24 +353,6 @@ void main() float glare = 0.0; -#if 0 //wrong implementation - if (glossiness > 0.0) // specular reflection - { - float sa = dot(normalize(refnormpersp), light_dir.xyz); - vec3 dumbshiny = sunlit_linear * shadow * (texture(lightFunc, vec2(sa, glossiness)).r); - - // add the two types of shiny together - vec3 spec_contrib = dumbshiny * spec.rgb; - bloom = dot(spec_contrib, spec_contrib) / 6; - - glare = max(spec_contrib.r, spec_contrib.g); - glare = max(glare, spec_contrib.b); - - color += spec_contrib; - - applyGlossEnv(color, glossenv, spec, pos.xyz, norm.xyz); - } -#else //right implementation ported from pointLightF.glsl if (glossiness > 0.0) { vec3 lv = light_dir.xyz; @@ -395,7 +377,6 @@ void main() // add radiance map applyGlossEnv(color, glossenv, spec, pos.xyz, norm.xyz); } -#endif color = mix(color.rgb, legacy_adjust_fullbright(diffcol.rgb), emissive); diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 060129d275..07b7be0fc8 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -649,8 +649,6 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) bool is_particle_or_hud_particle = group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_PARTICLE || group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_HUD_PARTICLE; - bool draw_glow_for_this_partition = mShaderLevel > 0; // no shaders = no glow. - bool disable_cull = is_particle_or_hud_particle; LLGLDisable cull(disable_cull ? GL_CULL_FACE : 0); @@ -818,7 +816,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) } // If this alpha mesh has glow, then draw it a second time to add the destination-alpha (=glow). Interleaving these state-changing calls is expensive, but glow must be drawn Z-sorted with alpha. - if (draw_glow_for_this_partition && + if (getType() != LLDrawPool::POOL_ALPHA_PRE_WATER && params.mVertexBuffer->hasDataType(LLVertexBuffer::TYPE_EMISSIVE)) { if (params.mAvatar != nullptr) |