diff options
| author | Oz Linden <oz@lindenlab.com> | 2014-03-18 11:30:49 -0400 | 
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2014-03-18 11:30:49 -0400 | 
| commit | 3dc44c91dc583a14d79f31568483e8515f7c986d (patch) | |
| tree | 5d6659b11d75ee5e64237cf62a9d8c14ff7f4216 /indra/newview | |
| parent | d60519d253dfc8c1add572952f5b4c8517699873 (diff) | |
| parent | 3372649d1b61ffb32965a4773ad3b7bd594054b6 (diff) | |
merge changes for STORM-2020
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/app_settings/settings.xml | 2 | ||||
| -rwxr-xr-x | indra/newview/pipeline.cpp | 61 | 
2 files changed, 3 insertions, 60 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 5c454ea730..2567b78575 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8864,7 +8864,7 @@      <key>Type</key>      <string>F32</string>      <key>Value</key> -    <real>384</real> +    <real>368.0</real>    </map>    <key>RenderDeferred</key> diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 5da8a78b1b..805dc99654 100755 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1362,49 +1362,10 @@ void LLPipeline::createLUTBuffers()  	{  		if (!mLightFunc)  		{ -			/*U32 lightResX = gSavedSettings.getU32("RenderSpecularResX"); -			U32 lightResY = gSavedSettings.getU32("RenderSpecularResY"); -			U8* ls = new U8[lightResX*lightResY]; -			F32 specExp = gSavedSettings.getF32("RenderSpecularExponent"); -            // Calculate the (normalized) Blinn-Phong specular lookup texture. -			for (U32 y = 0; y < lightResY; ++y) -			{ -				for (U32 x = 0; x < lightResX; ++x) -				{ -					ls[y*lightResX+x] = 0; -					F32 sa = (F32) x/(lightResX-1); -					F32 spec = (F32) y/(lightResY-1); -					F32 n = spec * spec * specExp; -					 -					// Nothing special here.  Just your typical blinn-phong term. -					spec = powf(sa, n); -					 -					// Apply our normalization function. -					// Note: This is the full equation that applies the full normalization curve, not an approximation. -					// This is fine, given we only need to create our LUT once per buffer initialization. -					// The only trade off is we have a really low dynamic range. -					// This means we have to account for things not being able to exceed 0 to 1 in our shaders. -					spec *= (((n + 2) * (n + 4)) / (8 * F_PI * (powf(2, -n/2) + n))); -					 -					// Always sample at a 1.0/2.2 curve. -					// This "Gamma corrects" our specular term, boosting our lower exponent reflections. -					spec = powf(spec, 1.f/2.2f); -					 -					// Easy fix for our dynamic range problem: divide by 6 here, multiply by 6 in our shaders. -					// This allows for our specular term to exceed a value of 1 in our shaders. -					// This is something that can be important for energy conserving specular models where higher exponents can result in highlights that exceed a range of 0 to 1. -					// Technically, we could just use an R16F texture, but driver support for R16F textures can be somewhat spotty at times. -					// This works remarkably well for higher specular exponents, though banding can sometimes be seen on lower exponents. -					// Combined with a bit of noise and trilinear filtering, the banding is hardly noticable. -					ls[y*lightResX+x] = (U8)(llclamp(spec * (1.f / 6), 0.f, 1.f) * 255); -				} -			}*/ -		 -  			U32 lightResX = gSavedSettings.getU32("RenderSpecularResX");  			U32 lightResY = gSavedSettings.getU32("RenderSpecularResY");  			F32* ls = new F32[lightResX*lightResY]; -			//F32 specExp = gSavedSettings.getF32("RenderSpecularExponent"); // Note: only use this when creating new specular lighting functions. +			F32 specExp = gSavedSettings.getF32("RenderSpecularExponent");              // Calculate the (normalized) blinn-phong specular lookup texture. (with a few tweaks)  			for (U32 y = 0; y < lightResY; ++y)  			{ @@ -1413,7 +1374,7 @@ void LLPipeline::createLUTBuffers()  					ls[y*lightResX+x] = 0;  					F32 sa = (F32) x/(lightResX-1);  					F32 spec = (F32) y/(lightResY-1); -					F32 n = spec * spec * 368; +					F32 n = spec * spec * specExp;  					// Nothing special here.  Just your typical blinn-phong term.  					spec = powf(sa, n); @@ -1426,23 +1387,6 @@ void LLPipeline::createLUTBuffers()  					// Since we use R16F, we no longer have a dynamic range issue we need to work around here.  					// Though some older drivers may not like this, newer drivers shouldn't have this problem.  					ls[y*lightResX+x] = spec; - -					 -					//beckmann distribution -					/*F32 alpha = acosf((F32) x/(lightResX-1)); -					F32 m = 1.f - (F32) y/(lightResY-1); - -					F32 cos4_alpha = cosf(alpha); -					cos4_alpha *= cos4_alpha; -					cos4_alpha *= cos4_alpha; - -					F32 tan_alpha = tanf(alpha); -					F32 tan2_alpha = tan_alpha*tan_alpha; - -					F32 k = expf(-(tan2_alpha)/(m*m)) / -						(3.14159f*m*m*cos4_alpha); - -					ls[y*lightResX+x] = k;*/  				}  			} @@ -1455,7 +1399,6 @@ void LLPipeline::createLUTBuffers()  			LLImageGL::generateTextures(1, &mLightFunc);  			gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mLightFunc);  			LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, pix_format, lightResX, lightResY, GL_RED, GL_FLOAT, ls, false); -			//LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_UNSIGNED_BYTE, lightResX, lightResY, GL_RED, GL_UNSIGNED_BYTE, ls, false);  			gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);  			gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR);  			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | 
