summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-06-10 14:54:47 -0700
committerGraham Linden <graham@lindenlab.com>2019-06-10 14:54:47 -0700
commitc15baecbfbc9baffdeb6ec53b7e4090470514657 (patch)
tree2b78b844174ff68a8228108730b7136df6d68422
parent6d90dd996ed4381726a2c1666c0ea3af0984c7af (diff)
SL-11370
Modify culling logic to exclude objects correctly in < Mid graphics.
-rw-r--r--indra/newview/app_settings/mid_graphics.xml2
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/waterF.glsl2
-rw-r--r--indra/newview/pipeline.cpp25
3 files changed, 20 insertions, 9 deletions
diff --git a/indra/newview/app_settings/mid_graphics.xml b/indra/newview/app_settings/mid_graphics.xml
index a10c02b79f..f989fe7381 100644
--- a/indra/newview/app_settings/mid_graphics.xml
+++ b/indra/newview/app_settings/mid_graphics.xml
@@ -19,7 +19,7 @@
<!--bump okay-->
<RenderObjectBump value="TRUE"/>
<!--NO SHADERS-->
- <RenderReflectionDetail value="0"/>
+ <RenderReflectionDetail value="1"/>
<!--Simple-->
<RenderTerrainDetail value="1"/>
<!--Default for now-->
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
index 2235ab12a4..a9161b2a20 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
@@ -153,7 +153,7 @@ void main()
spec = pow(spec, 128.0);
//figure out distortion vector (ripply)
- vec2 distort2 = distort+wavef.xy*refScale/max(dmod*df1, 1.0);
+ vec2 distort2 = distort+wavef.xy*(refScale * 0.01)/max(dmod*df1, 1.0);
vec4 fb = texture2D(screenTex, distort2);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 7e819c0a52..d4c25a4ebc 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -9360,8 +9360,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
updateCull(camera, mSky);
stateSort(camera, mSky);
- gPipeline.grabReferences(mSky);
-
renderGeom(camera, TRUE);
gPipeline.popRenderTypeMask();
@@ -9395,7 +9393,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
LLGLDisable cull(GL_CULL_FACE);
updateCull(camera, mReflectedObjects, -water_clip, &plane);
stateSort(camera, mReflectedObjects);
- gPipeline.grabReferences(mReflectedObjects);
renderGeom(camera);
}
@@ -9472,11 +9469,25 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
clip_plane.disable();
}
- updateCull(camera, mRefractedObjects, water_clip, &plane);
- stateSort(camera, mRefractedObjects);
- gPipeline.grabReferences(mRefractedObjects);
+ if (detail > 0)
+ {
+ if (detail < 4)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_PARTICLES, END_RENDER_TYPES);
+ if (detail < 3)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_AVATAR, END_RENDER_TYPES);
+ if (detail < 2)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_VOLUME, END_RENDER_TYPES);
+ }
+ }
+ }
- renderGeom(camera);
+ updateCull(camera, mRefractedObjects, water_clip, &plane);
+ stateSort(camera, mRefractedObjects);
+ renderGeom(camera);
+ }
if (LLGLSLShader::sNoFixedFunction)
{