diff options
Diffstat (limited to 'indra')
9 files changed, 18 insertions, 298 deletions
| diff --git a/indra/llrender/llglslshader.h b/indra/llrender/llglslshader.h index b8071248e2..43d095f73a 100644 --- a/indra/llrender/llglslshader.h +++ b/indra/llrender/llglslshader.h @@ -41,7 +41,6 @@ public:      bool hasLighting = false; // implies no transport (it's possible to have neither though)      bool isAlphaLighting = false; // indicates lighting shaders need not be linked in (lighting performed directly in alpha shader to match deferred lighting functions)      bool isSpecular = false; -    bool hasWaterFog = false; // implies no gamma      bool hasTransport = false; // implies no lighting (it's possible to have neither though)      bool hasSkinning = false;      bool hasObjectSkinning = false; diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index f14216f3d8..f78be910d2 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -278,7 +278,7 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)  	}  	// NOTE order of shader object attaching is VERY IMPORTANT!!! -	if (features->hasWaterFog || features->hasAtmospherics) +	if (features->hasAtmospherics)  	{          if (!shader->attachFragmentObject("environment/waterFogF.glsl"))  		{ @@ -288,82 +288,40 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)  	if (features->hasLighting)  	{ -		if (features->hasWaterFog) +		if (features->disableTextureIndex)  		{ -			if (features->disableTextureIndex) +			if (features->hasAlphaMask)  			{ -				if (features->hasAlphaMask) +                if (!shader->attachFragmentObject("lighting/lightAlphaMaskNonIndexedF.glsl"))  				{ -                    if (!shader->attachFragmentObject("lighting/lightWaterAlphaMaskNonIndexedF.glsl")) -					{ -						return FALSE; -					} -				} -				else -				{ -                    if (!shader->attachFragmentObject("lighting/lightWaterNonIndexedF.glsl")) -					{ -						return FALSE; -					} +					return FALSE;  				}  			} -			else  +			else  			{ -				if (features->hasAlphaMask) +                if (!shader->attachFragmentObject("lighting/lightNonIndexedF.glsl"))  				{ -                    if (!shader->attachFragmentObject("lighting/lightWaterAlphaMaskF.glsl")) -					{ -						return FALSE; -					} -				} -				else -				{ -                    if (!shader->attachFragmentObject("lighting/lightWaterF.glsl")) -					{ -						return FALSE; -					} +					return FALSE;  				} -				shader->mFeatures.mIndexedTextureChannels = llmax(LLGLSLShader::sIndexedTextureChannels-1, 1);  			}  		} -		 -		else +		else   		{ -			if (features->disableTextureIndex) +			if (features->hasAlphaMask)  			{ -				if (features->hasAlphaMask) -				{ -                    if (!shader->attachFragmentObject("lighting/lightAlphaMaskNonIndexedF.glsl")) -					{ -						return FALSE; -					} -				} -				else +                if (!shader->attachFragmentObject("lighting/lightAlphaMaskF.glsl"))  				{ -                    if (!shader->attachFragmentObject("lighting/lightNonIndexedF.glsl")) -					{ -						return FALSE; -					} +					return FALSE;  				}  			} -			else  +			else  			{ -				if (features->hasAlphaMask) -				{ -                    if (!shader->attachFragmentObject("lighting/lightAlphaMaskF.glsl")) -					{ -						return FALSE; -					} -				} -				else +                if (!shader->attachFragmentObject("lighting/lightF.glsl"))  				{ -                    if (!shader->attachFragmentObject("lighting/lightF.glsl")) -					{ -						return FALSE; -					} +					return FALSE;  				} -				shader->mFeatures.mIndexedTextureChannels = llmax(LLGLSLShader::sIndexedTextureChannels-1, 1);  			} +			shader->mFeatures.mIndexedTextureChannels = llmax(LLGLSLShader::sIndexedTextureChannels-1, 1);  		}  	} diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl deleted file mode 100644 index 670b3ddaf1..0000000000 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl +++ /dev/null @@ -1,51 +0,0 @@ -/**  - * @file class1\lighting\lightWaterAlphaMaskF.glsl - * - * $LicenseInfo:firstyear=2011&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -out vec4 frag_color; - -uniform float minimum_alpha; - -vec3 atmosLighting(vec3 light); -vec4 applyWaterFog(vec4 color); - -in vec4 vertex_color; -in vec2 vary_texcoord0; - -void default_lighting_water() -{ -	vec4 color = diffuseLookup(vary_texcoord0.xy); - -	if (color.a < minimum_alpha) -	{ -		discard; -	} - -	color.rgb *= vertex_color.rgb; - -	color.rgb = atmosLighting(color.rgb); - -	frag_color = max(applyWaterFog(color), vec4(0)); -} - diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl deleted file mode 100644 index 2e5ed57014..0000000000 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl +++ /dev/null @@ -1,55 +0,0 @@ -/**  - * @file class1\lighting\lightWaterAlphaMaskNonIndexedF.glsl - * - * $LicenseInfo:firstyear=2011&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -out vec4 frag_color; - -uniform float minimum_alpha; - -uniform sampler2D diffuseMap; - -vec3 atmosLighting(vec3 light); -vec4 applyWaterFog(vec4 color); - -in vec4 vertex_color; -in vec2 vary_texcoord0; - -void default_lighting_water() -{ -	vec4 color = texture(diffuseMap,vary_texcoord0.xy); - -	if (color.a < minimum_alpha) -	{ -		discard; -	} - -	color.rgb *= vertex_color.rgb; - -	color.rgb = atmosLighting(color.rgb); - -	color = applyWaterFog(color); -	 -	frag_color = max(color, vec4(0)); -} - diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl deleted file mode 100644 index 09b4a6e317..0000000000 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl +++ /dev/null @@ -1,42 +0,0 @@ -/**  - * @file class1\lighting\lightWaterF.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -out vec4 frag_color; - -in vec4 vertex_color; -in vec2 vary_texcoord0; - -vec3 atmosLighting(vec3 light); -vec4 applyWaterFog(vec4 color); - -void default_lighting_water() -{ -	vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; - -	color.rgb = atmosLighting(color.rgb); - -	frag_color = max(applyWaterFog(color), vec4(0)); -} - diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl deleted file mode 100644 index 4888fa547c..0000000000 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl +++ /dev/null @@ -1,44 +0,0 @@ -/**  - * @file class1\lighting\lightWaterNonIndexedF.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -out vec4 frag_color; - -in vec4 vertex_color; -in vec2 vary_texcoord0; - -uniform sampler2D diffuseMap; - -vec3 atmosLighting(vec3 light); -vec4 applyWaterFog(vec4 color); - -void default_lighting_water() -{ -	vec4 color = texture(diffuseMap,vary_texcoord0.xy) * vertex_color; - -	color.rgb = atmosLighting(color.rgb); - -	frag_color = max(applyWaterFog(color), vec4(0)); -} - diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl deleted file mode 100644 index 2e87ac5bbc..0000000000 --- a/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl +++ /dev/null @@ -1,33 +0,0 @@ -/**  - * @file simpleWaterF.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ -  - - -void default_lighting_water(); - -void main()  -{ -	default_lighting_water(); -} diff --git a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl index af0460fa8b..8bc5f3cc50 100644 --- a/indra/newview/app_settings/shaders/class3/environment/waterF.glsl +++ b/indra/newview/app_settings/shaders/class3/environment/waterF.glsl @@ -224,7 +224,7 @@ void main()      }  #else -    vec4 fb = applyWaterFogViewLinear(viewVec*2048.0, vec4(1.0), sunlit_linear); +    vec4 fb = applyWaterFogViewLinear(viewVec*2048.0, vec4(1.0));  #endif      // fudge sample on other side of water to be a tad darker diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index e6e80e9532..2c2ae022d7 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -664,12 +664,8 @@ std::string LLViewerShaderMgr::loadBasicShaders()      index_channels.push_back(-1);    shaders.push_back( make_pair( "deferred/screenSpaceReflUtil.glsl",             ssr ? 3 : 1) );  	index_channels.push_back(-1);    shaders.push_back( make_pair( "lighting/lightNonIndexedF.glsl",                    mShaderLevel[SHADER_LIGHTING] ) );  	index_channels.push_back(-1);    shaders.push_back( make_pair( "lighting/lightAlphaMaskNonIndexedF.glsl",                   mShaderLevel[SHADER_LIGHTING] ) ); -	index_channels.push_back(-1);    shaders.push_back( make_pair( "lighting/lightWaterNonIndexedF.glsl",               mShaderLevel[SHADER_LIGHTING] ) ); -	index_channels.push_back(-1);    shaders.push_back( make_pair( "lighting/lightWaterAlphaMaskNonIndexedF.glsl",              mShaderLevel[SHADER_LIGHTING] ) );  	index_channels.push_back(ch);    shaders.push_back( make_pair( "lighting/lightF.glsl",                  mShaderLevel[SHADER_LIGHTING] ) );  	index_channels.push_back(ch);    shaders.push_back( make_pair( "lighting/lightAlphaMaskF.glsl",                 mShaderLevel[SHADER_LIGHTING] ) ); -	index_channels.push_back(ch);    shaders.push_back( make_pair( "lighting/lightWaterF.glsl",             mShaderLevel[SHADER_LIGHTING] ) ); -	index_channels.push_back(ch);    shaders.push_back( make_pair( "lighting/lightWaterAlphaMaskF.glsl",    mShaderLevel[SHADER_LIGHTING] ) );  	for (U32 i = 0; i < shaders.size(); i++)  	{ @@ -707,7 +703,6 @@ BOOL LLViewerShaderMgr::loadShadersWater()  		gWaterProgram.mName = "Water Shader";  		gWaterProgram.mFeatures.calculatesAtmospherics = true;          gWaterProgram.mFeatures.hasAtmospherics = true; -        gWaterProgram.mFeatures.hasWaterFog = true;  		gWaterProgram.mFeatures.hasGamma = true;  		gWaterProgram.mFeatures.hasSrgb = true;          gWaterProgram.mFeatures.hasReflectionProbes = true; @@ -738,7 +733,6 @@ BOOL LLViewerShaderMgr::loadShadersWater()  		gWaterEdgeProgram.mName = "Water Edge Shader";  		gWaterEdgeProgram.mFeatures.calculatesAtmospherics = true;          gWaterEdgeProgram.mFeatures.hasAtmospherics = true; -        gWaterEdgeProgram.mFeatures.hasWaterFog = true;  		gWaterEdgeProgram.mFeatures.hasGamma = true;  		gWaterEdgeProgram.mFeatures.hasSrgb = true;          gWaterEdgeProgram.mFeatures.hasReflectionProbes = true; @@ -768,7 +762,7 @@ BOOL LLViewerShaderMgr::loadShadersWater()  		//load under water vertex shader  		gUnderWaterProgram.mName = "Underwater Shader";  		gUnderWaterProgram.mFeatures.calculatesAtmospherics = true; -		gUnderWaterProgram.mFeatures.hasWaterFog = true; +		gUnderWaterProgram.mFeatures.hasAtmospherics = true;  		gUnderWaterProgram.mShaderFiles.clear();  		gUnderWaterProgram.mShaderFiles.push_back(make_pair("environment/waterV.glsl", GL_VERTEX_SHADER));  		gUnderWaterProgram.mShaderFiles.push_back(make_pair("environment/underWaterF.glsl", GL_FRAGMENT_SHADER)); @@ -1457,7 +1451,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()              shader->mFeatures.hasGamma = true;              shader->mFeatures.hasShadows = use_sun_shadow;              shader->mFeatures.hasReflectionProbes = true; -            shader->mFeatures.hasWaterFog = true;              shader->mFeatures.mIndexedTextureChannels = LLGLSLShader::sIndexedTextureChannels;              shader->mShaderFiles.clear(); @@ -1580,7 +1573,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()  		gDeferredFullbrightProgram.mFeatures.hasGamma = true;  		gDeferredFullbrightProgram.mFeatures.hasAtmospherics = true;  		gDeferredFullbrightProgram.mFeatures.hasSrgb = true; -        gDeferredFullbrightProgram.mFeatures.hasWaterFog = true;  		gDeferredFullbrightProgram.mFeatures.mIndexedTextureChannels = LLGLSLShader::sIndexedTextureChannels;  		gDeferredFullbrightProgram.mShaderFiles.clear();  		gDeferredFullbrightProgram.mShaderFiles.push_back(make_pair("deferred/fullbrightV.glsl", GL_VERTEX_SHADER)); @@ -1616,7 +1608,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()  		gDeferredFullbrightAlphaMaskProgram.mFeatures.hasGamma = true;  		gDeferredFullbrightAlphaMaskProgram.mFeatures.hasAtmospherics = true;  		gDeferredFullbrightAlphaMaskProgram.mFeatures.hasSrgb = true;		 -        gDeferredFullbrightAlphaMaskProgram.mFeatures.hasWaterFog = true;  		gDeferredFullbrightAlphaMaskProgram.mFeatures.mIndexedTextureChannels = LLGLSLShader::sIndexedTextureChannels;  		gDeferredFullbrightAlphaMaskProgram.mShaderFiles.clear();  		gDeferredFullbrightAlphaMaskProgram.mShaderFiles.push_back(make_pair("deferred/fullbrightV.glsl", GL_VERTEX_SHADER)); @@ -1804,7 +1795,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()          gHazeWaterProgram.mName = "Water Haze Shader";          gHazeWaterProgram.mShaderFiles.clear();          gHazeWaterProgram.mShaderGroup           = LLGLSLShader::SG_WATER; -        gHazeWaterProgram.mFeatures.hasWaterFog            = true;          gHazeWaterProgram.mFeatures.hasSrgb                = true;          gHazeWaterProgram.mFeatures.calculatesAtmospherics = true;          gHazeWaterProgram.mFeatures.hasAtmospherics        = true; @@ -1969,7 +1959,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()  		gDeferredTerrainProgram.mFeatures.hasLighting = false;  		gDeferredTerrainProgram.mFeatures.isAlphaLighting = true;  		gDeferredTerrainProgram.mFeatures.disableTextureIndex = true; //hack to disable auto-setup of texture channels -		gDeferredTerrainProgram.mFeatures.hasWaterFog = true;  		gDeferredTerrainProgram.mFeatures.calculatesAtmospherics = true;  		gDeferredTerrainProgram.mFeatures.hasAtmospherics = true;  		gDeferredTerrainProgram.mFeatures.hasGamma = true; @@ -2011,7 +2000,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()          gDeferredAvatarAlphaProgram.mFeatures.isDeferred = true;  		gDeferredAvatarAlphaProgram.mFeatures.hasShadows = true;          gDeferredAvatarAlphaProgram.mFeatures.hasReflectionProbes = true; -        gDeferredAvatarAlphaProgram.mFeatures.hasWaterFog = true;  		gDeferredAvatarAlphaProgram.mShaderFiles.clear();          gDeferredAvatarAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER)); | 
