diff options
| author | Rye Mutt <rye@alchemyviewer.org> | 2022-09-01 17:30:48 -0400 | 
|---|---|---|
| committer | Rye Mutt <rye@alchemyviewer.org> | 2022-09-01 17:30:48 -0400 | 
| commit | ef98be881c3f13e7668f75cb0d302261053d9804 (patch) | |
| tree | 2c3f43d746e852b4ee5064306252e427291edff9 /indra/newview | |
| parent | d2d257cfa99b685160e16ed93c163018e9fe3c50 (diff) | |
Use an SRGB buffer for initial reflection map capture for proper linear sampling
Fix irradiance gen up vector to be properly normalized
Diffstat (limited to 'indra/newview')
3 files changed, 5 insertions, 3 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl b/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl index 4d91395a1b..4681fa1abd 100644 --- a/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/irradianceGenF.glsl @@ -79,7 +79,7 @@ void main()  	vec3 N = normalize(vary_dir);  	vec3 up = vec3(0.0, 1.0, 0.0);  	vec3 right = normalize(cross(up, N)); -	up = cross(N, right); +	up = normalize(cross(N, right));  	const float TWO_PI = PI * 2.0;  	const float HALF_PI = PI * 0.5; diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl index 85bb9fbbd1..e6017534ca 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl @@ -335,7 +335,6 @@ void main()  #if PBR_USE_IRRADIANCE_HACK          irradiance       = max(amblit,irradiance) * ambocc;  #endif -        specLight        = srgb_to_linear(specLight);  #if DEBUG_PBR_SPECLIGHT051          specLight        = vec3(0,0.5,1.0);          irradiance       = specLight; @@ -670,6 +669,9 @@ else      diffuse.rgb = linear_to_srgb(diffuse.rgb); // SL-14035      sampleReflectionProbes(ambenv, glossenv, legacyenv, pos.xyz, norm.xyz, spec.a, envIntensity); +    ambenv.rgb = linear_to_srgb(ambenv.rgb);  +    glossenv.rgb = linear_to_srgb(glossenv.rgb); +    legacyenv.rgb = linear_to_srgb(legacyenv.rgb);      amblit = max(ambenv, amblit);      color.rgb = amblit*ambocc; diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp index d349b7e024..677e920031 100644 --- a/indra/newview/llreflectionmapmanager.cpp +++ b/indra/newview/llreflectionmapmanager.cpp @@ -80,7 +80,7 @@ void LLReflectionMapManager::update()      if (!mRenderTarget.isComplete())      { -        U32 color_fmt = GL_RGBA; +        U32 color_fmt = GL_SRGB8_ALPHA8;          const bool use_depth_buffer = true;          const bool use_stencil_buffer = true;          U32 targetRes = LL_REFLECTION_PROBE_RESOLUTION * 2; // super sample | 
