@@ -158,6 +158,7 @@ LLGLSLShader gDeferredMultiLightProgram[16];
158158LLGLSLShader gDeferredSpotLightProgram ;
159159LLGLSLShader gDeferredMultiSpotLightProgram ;
160160LLGLSLShader gDeferredSunProgram ;
161+ LLGLSLShader gDeferredSunProbeProgram ;
161162LLGLSLShader gHazeProgram ;
162163LLGLSLShader gHazeWaterProgram ;
163164LLGLSLShader gDeferredBlurLightProgram ;
@@ -400,6 +401,7 @@ void LLViewerShaderMgr::finalizeShaderList()
400401 mShaderList .push_back (&gObjectAlphaMaskNoColorProgram );
401402 mShaderList .push_back (&gUnderWaterProgram );
402403 mShaderList .push_back (&gDeferredSunProgram );
404+ mShaderList .push_back (&gDeferredSunProbeProgram );
403405 mShaderList .push_back (&gHazeProgram );
404406 mShaderList .push_back (&gHazeWaterProgram );
405407 mShaderList .push_back (&gDeferredSoftenProgram );
@@ -1600,21 +1602,14 @@ bool LLViewerShaderMgr::loadShadersDeferred()
16001602 if (success)
16011603 {
16021604 std::string fragment;
1603- std::string vertex = " deferred/sunLightV.glsl" ;
1604-
16051605 bool use_ao = gSavedSettings .getBOOL (" RenderDeferredSSAO" );
1606-
16071606 if (use_ao)
16081607 {
16091608 fragment = " deferred/sunLightSSAOF.glsl" ;
16101609 }
16111610 else
16121611 {
16131612 fragment = " deferred/sunLightF.glsl" ;
1614- if (mShaderLevel [SHADER_DEFERRED] == 1 )
1615- { // no shadows, no SSAO, no frag coord
1616- vertex = " deferred/sunLightNoFragCoordV.glsl" ;
1617- }
16181613 }
16191614
16201615 gDeferredSunProgram .mName = " Deferred Sun Shader" ;
@@ -1623,14 +1618,29 @@ bool LLViewerShaderMgr::loadShadersDeferred()
16231618 gDeferredSunProgram .mFeatures .hasAmbientOcclusion = use_ao;
16241619
16251620 gDeferredSunProgram .mShaderFiles .clear ();
1626- gDeferredSunProgram .mShaderFiles .push_back (make_pair (vertex , GL_VERTEX_SHADER));
1621+ gDeferredSunProgram .mShaderFiles .push_back (make_pair (" deferred/sunLightV.glsl " , GL_VERTEX_SHADER));
16271622 gDeferredSunProgram .mShaderFiles .push_back (make_pair (fragment, GL_FRAGMENT_SHADER));
16281623 gDeferredSunProgram .mShaderLevel = mShaderLevel [SHADER_DEFERRED];
16291624
16301625 success = gDeferredSunProgram .createShader ();
16311626 llassert (success);
16321627 }
16331628
1629+ if (success)
1630+ {
1631+ gDeferredSunProbeProgram .mName = " Deferred Sun Probe Shader" ;
1632+ gDeferredSunProbeProgram .mFeatures .isDeferred = true ;
1633+ gDeferredSunProbeProgram .mFeatures .hasShadows = true ;
1634+
1635+ gDeferredSunProbeProgram .mShaderFiles .clear ();
1636+ gDeferredSunProbeProgram .mShaderFiles .push_back (make_pair (" deferred/sunLightV.glsl" , GL_VERTEX_SHADER));
1637+ gDeferredSunProbeProgram .mShaderFiles .push_back (make_pair (" deferred/sunLightF.glsl" , GL_FRAGMENT_SHADER));
1638+ gDeferredSunProbeProgram .mShaderLevel = mShaderLevel [SHADER_DEFERRED];
1639+
1640+ success = gDeferredSunProbeProgram .createShader ();
1641+ llassert (success);
1642+ }
1643+
16341644 if (success)
16351645 {
16361646 gDeferredBlurLightProgram .mName = " Deferred Blur Light Shader" ;
0 commit comments