diff options
| author | Ptolemy <ptolemy@lindenlab.com> | 2022-06-21 16:31:35 -0700 | 
|---|---|---|
| committer | Ptolemy <ptolemy@lindenlab.com> | 2022-06-21 16:50:09 -0700 | 
| commit | 36d9fa90150d30a0a0851cc0da87531014c1d93d (patch) | |
| tree | 1b833c4221a81dc557d0f09c3ada62272130fa49 /indra | |
| parent | 8b4347cb10ab922f5001306912983cdd73a68309 (diff) | |
SL-17274: Add view_dir uniform
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llrender/llshadermgr.cpp | 4 | ||||
| -rw-r--r-- | indra/llrender/llshadermgr.h | 1 | ||||
| -rw-r--r-- | indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl | 4 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 6 | 
4 files changed, 13 insertions, 2 deletions
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index e2e1ff9714..4dd5bb591b 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -1217,6 +1217,7 @@ void LLShaderMgr::initAttribsAndUniforms()  	mReservedUniforms.push_back("minimum_alpha");  	mReservedUniforms.push_back("emissive_brightness"); +    // Deferred  	mReservedUniforms.push_back("shadow_matrix");  	mReservedUniforms.push_back("env_mat");  	mReservedUniforms.push_back("shadow_clip"); @@ -1241,8 +1242,9 @@ void LLShaderMgr::initAttribsAndUniforms()  	mReservedUniforms.push_back("depth_cutoff");  	mReservedUniforms.push_back("norm_cutoff");  	mReservedUniforms.push_back("shadow_target_width"); +    mReservedUniforms.push_back("view_dir"); // DEFERRED_VIEW_DIR -	llassert(mReservedUniforms.size() == LLShaderMgr::DEFERRED_SHADOW_TARGET_WIDTH+1); +	llassert(mReservedUniforms.size() == LLShaderMgr::DEFERRED_VIEW_DIR+1);  	mReservedUniforms.push_back("tc_scale");  	mReservedUniforms.push_back("rcp_screen_res"); diff --git a/indra/llrender/llshadermgr.h b/indra/llrender/llshadermgr.h index d3bb2b9db4..40c285a2ba 100644 --- a/indra/llrender/llshadermgr.h +++ b/indra/llrender/llshadermgr.h @@ -143,6 +143,7 @@ public:          DEFERRED_DEPTH_CUTOFF,              //  "depth_cutoff"          DEFERRED_NORM_CUTOFF,               //  "norm_cutoff"          DEFERRED_SHADOW_TARGET_WIDTH,       //  "shadow_target_width" +        DEFERRED_VIEW_DIR,                  //  "view_dir"          FXAA_TC_SCALE,                      //  "tc_scale"          FXAA_RCP_SCREEN_RES,                //  "rcp_screen_res" diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl index 61757882bb..4dd5c88211 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl @@ -1,5 +1,5 @@  /** - * @file class2/deferred/softenLightF.glsl + * @file class3/deferred/softenLightF.glsl   *   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * Second Life Viewer Source Code @@ -85,6 +85,8 @@ vec3 srgb_to_linear(vec3 c);  vec4 applyWaterFogView(vec3 pos, vec4 color);  #endif +uniform vec3 view_dir; // PBR +  void main()  {      vec2  tc           = vary_fragcoord.xy; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 028a0db95c..1981f48500 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -8596,6 +8596,12 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget *screen_target)              soften_shader.uniform1i(LLShaderMgr::SUN_UP_FACTOR, environment.getIsSunUp() ? 1 : 0);              soften_shader.uniform4fv(LLShaderMgr::LIGHTNORM, 1, environment.getClampedLightNorm().mV); +            if(LLPipeline::sRenderPBR) +            { +                LLVector3 cameraAtAxis = LLViewerCamera::getInstance()->getAtAxis(); +                soften_shader.uniform3fv(LLShaderMgr::DEFERRED_VIEW_DIR, 1, cameraAtAxis.mV); +            } +              {                  LLGLDepthTest depth(GL_FALSE);                  LLGLDisable   blend(GL_BLEND);  | 
