diff --git a/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl index 229f332b36ef081c66829064129656d9f1569211..0b154e82ad04dc1d8a606df3e620ec0077beeba0 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl @@ -78,13 +78,12 @@ void main() do_atmospherics = true; } - vec3 irradiance = vec3(0); vec3 radiance = vec3(0); if (depth >= 1.0) { - //should only be true of WL sky, just port over base color value + //should only be true of sky, clouds, sun/moon, and stars discard; } diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h index 4300670445e63e7a87700bcca1deeb906b884bc4..0925a01439a63c1573f01cfcb4987fe728c17e8b 100644 --- a/indra/newview/lldrawpool.h +++ b/indra/newview/lldrawpool.h @@ -53,7 +53,9 @@ class LLDrawPool // before grass, so grass should be the first alpha masked pool. Other ordering should be done // based on fill rate and likelihood to occlude future passes (faster, large occluders first). // - POOL_SIMPLE = 1, + POOL_SKY = 1, + POOL_WL_SKY, + POOL_SIMPLE, POOL_FULLBRIGHT, POOL_BUMP, POOL_TERRAIN, @@ -64,8 +66,6 @@ class LLDrawPool POOL_TREE, POOL_ALPHA_MASK, POOL_FULLBRIGHT_ALPHA_MASK, - POOL_SKY, - POOL_WL_SKY, POOL_AVATAR, POOL_CONTROL_AV, // Animesh POOL_GLOW, diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp index e8f70cd576d469555be7a2674013748d42fd298a..575faf9a57abc325084fb836760c4611fdc60b68 100644 --- a/indra/newview/lldrawpoolwlsky.cpp +++ b/indra/newview/lldrawpoolwlsky.cpp @@ -86,6 +86,9 @@ void LLDrawPoolWLSky::endDeferredPass(S32 pass) cloud_shader = nullptr; sun_shader = nullptr; moon_shader = nullptr; + + // clear the depth buffer so haze shaders can use unwritten depth as a mask + glClear(GL_DEPTH_BUFFER_BIT); } void LLDrawPoolWLSky::renderDome(const LLVector3& camPosLocal, F32 camHeightLocal, LLGLSLShader * shader) const diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 22702ed63f38a91add1f39217cea5bdaf0cdeacc..13520c4bdee29fc266833a152cb866fc799f9e7a 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -849,6 +849,10 @@ U32 render_type_from_string(std::string render_type) { return LLPipeline::RENDER_TYPE_BUMP; } + else if ("pbr" == render_type) + { + return LLPipeline::RENDER_TYPE_GLTF_PBR; + } else { return 0; diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 9d087919ef111bc534da2bfd58f94e723b1baa93..c72ec869a3eb2b26720a8c4fbf6214efe2be88fd 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2582,6 +2582,16 @@ function="World.EnvPreset" function="Advanced.ToggleRenderType" parameter="bump" /> </menu_item_check> + <menu_item_check + label="PBR" + name="Rendering Type PBR"> + <menu_item_check.on_check + function="Advanced.CheckRenderType" + parameter="pbr" /> + <menu_item_check.on_click + function="Advanced.ToggleRenderType" + parameter="pbr" /> + </menu_item_check> </menu> <menu create_jump_keys="true"