NORSPEC-315 NORSPEC-316 NORSPEC-312 fix various haze and gamma correction issues, alpha-blend objects still missing haze underwater
parent
6c186b0c41
commit
94abe75dea
|
|
@ -281,7 +281,7 @@ void main()
|
|||
color.rgb += diff.rgb * vary_pointlight_col_linear * col.rgb;
|
||||
|
||||
color.rgb = linear_to_srgb(color.rgb);
|
||||
|
||||
//color.rgb = vec3(1,0,1);
|
||||
frag_color = color;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ void main()
|
|||
vec4 color = texture2D(diffuseMap, vary_texcoord0.xy);
|
||||
#endif
|
||||
|
||||
if (color.a < minimum_alpha)
|
||||
float final_alpha = color.a * vertex_color.a;
|
||||
if (final_alpha < minimum_alpha)
|
||||
{
|
||||
discard;
|
||||
}
|
||||
|
|
@ -83,8 +84,8 @@ void main()
|
|||
color.rgb = fullbrightScaleSoftClip(color.rgb);
|
||||
|
||||
color.rgb = linear_to_srgb(color.rgb);
|
||||
|
||||
//color.rgb = vec3(1,0,1);
|
||||
frag_color.rgb = color.rgb;
|
||||
frag_color.a = color.a;
|
||||
frag_color.a = final_alpha;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,14 +69,15 @@ void main()
|
|||
vec4 color = texture2D(diffuseMap, vary_texcoord0.xy);
|
||||
#endif
|
||||
|
||||
color.rgb *= vertex_color.rgb;
|
||||
|
||||
color.rgb = srgb_to_linear(color.rgb);
|
||||
color.rgb *= vertex_color.rgb;
|
||||
|
||||
color.rgb = fullbrightAtmosTransport(color.rgb);
|
||||
color.rgb = fullbrightScaleSoftClip(color.rgb);
|
||||
|
||||
color.rgb = linear_to_srgb(color.rgb);
|
||||
|
||||
//color.rgb = vec3(1,0,1);
|
||||
frag_color.rgb = color.rgb;
|
||||
frag_color.a = color.a;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -266,6 +266,13 @@ vec4 getPosition_d(vec2 pos_screen, float depth)
|
|||
return pos;
|
||||
}
|
||||
|
||||
#ifndef WATER_FOG
|
||||
vec3 getPositionEye()
|
||||
{
|
||||
return vary_PositionEye;
|
||||
}
|
||||
#endif
|
||||
|
||||
vec3 getSunlitColor()
|
||||
{
|
||||
return vary_SunlitColor;
|
||||
|
|
@ -728,6 +735,10 @@ void main()
|
|||
glare = min(glare, 1.0);
|
||||
float al = max(diffcol.a,glare)*vertex_color.a;
|
||||
|
||||
|
||||
//convert to gamma space for display on screen
|
||||
col.rgb = linear_to_srgb(col.rgb);
|
||||
|
||||
#ifdef WATER_FOG
|
||||
vec4 temp = applyWaterFogDeferred(pos, vec4(col.rgb, al));
|
||||
col.rgb = temp.rgb;
|
||||
|
|
@ -738,6 +749,7 @@ void main()
|
|||
frag_color.a = al;
|
||||
|
||||
#else
|
||||
//final_color.rgb = vec3(1,0,1);
|
||||
frag_data[0] = final_color;
|
||||
frag_data[1] = final_specular; // XYZ = Specular color. W = Specular exponent.
|
||||
frag_data[2] = final_normal; // XY = Normal. Z = Env. intensity.
|
||||
|
|
|
|||
|
|
@ -436,16 +436,15 @@ void main()
|
|||
if (norm.w < 0.5)
|
||||
{
|
||||
col = mix(atmosLighting(col), fullbrightAtmosTransport(col), diffuse.a);
|
||||
|
||||
#ifdef WATER_FOG
|
||||
vec4 fogged = applyWaterFogDeferred(pos,vec4(col, bloom));
|
||||
col = fogged.rgb;
|
||||
bloom = fogged.a;
|
||||
#endif
|
||||
|
||||
col = mix(scaleSoftClip(col), fullbrightScaleSoftClip(col), diffuse.a);
|
||||
}
|
||||
|
||||
#ifdef WATER_FOG
|
||||
vec4 fogged = applyWaterFogDeferred(pos,vec4(col, bloom));
|
||||
col = fogged.rgb;
|
||||
bloom = fogged.a;
|
||||
#endif
|
||||
|
||||
col = srgb_to_linear(col);
|
||||
|
||||
//col = vec3(1,0,1);
|
||||
|
|
|
|||
|
|
@ -192,7 +192,10 @@ void main()
|
|||
//wavef = normalize(wavef);
|
||||
vec3 screenspacewavef = (norm_mat*vec4(wavef, 1.0)).xyz;
|
||||
|
||||
frag_data[0] = vec4(linear_to_srgb(color.rgb), 0.5); // diffuse
|
||||
// this is needed for materials in reflections, but not otherwise
|
||||
//
|
||||
//frag_data[0] = vec4(linear_to_srgb(color.rgb), 0.5); // diffuse
|
||||
frag_data[0] = vec4(color.rgb, 0.5); // diffuse
|
||||
frag_data[1] = vec4(0.5,0.5,0.5, 0.95); // speccolor*spec, spec
|
||||
frag_data[2] = vec4(encode_normal(screenspacewavef), 0.0, 0.0); // normalxyz, displace
|
||||
}
|
||||
|
|
|
|||
|
|
@ -455,23 +455,21 @@ void main()
|
|||
if (norm.w < 0.5)
|
||||
{
|
||||
col = mix(atmosLighting(col), fullbrightAtmosTransport(col), diffuse.a);
|
||||
|
||||
#ifdef WATER_FOG
|
||||
vec4 fogged = applyWaterFogDeferred(pos,vec4(col, bloom));
|
||||
col = fogged.rgb;
|
||||
bloom = fogged.a;
|
||||
#endif
|
||||
|
||||
col = mix(scaleSoftClip(col), fullbrightScaleSoftClip(col), diffuse.a);
|
||||
}
|
||||
|
||||
#ifdef WATER_FOG
|
||||
vec4 fogged = applyWaterFogDeferred(pos,vec4(col, bloom));
|
||||
col = fogged.rgb;
|
||||
bloom = fogged.a;
|
||||
#endif
|
||||
|
||||
col = srgb_to_linear(col);
|
||||
|
||||
//col = vec3(1,0,1);
|
||||
//col.g = envIntensity;
|
||||
}
|
||||
|
||||
|
||||
frag_color.rgb = col;
|
||||
frag_color.a = bloom;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5379,6 +5379,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
|
|||
}
|
||||
|
||||
bool use_legacy_bump = te->getBumpmap() && (te->getBumpmap() < 18) && (!mat || mat->getNormalID().isNull());
|
||||
bool opaque = te->getColor().mV[3] >= 0.999f;
|
||||
|
||||
if (mat && LLPipeline::sRenderDeferred && !hud_group)
|
||||
{
|
||||
|
|
@ -5388,7 +5389,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
|
|||
{
|
||||
if (mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_MASK)
|
||||
{
|
||||
if (te->getColor().mV[3] >= 0.999f)
|
||||
if (opaque)
|
||||
{
|
||||
registerFace(group, facep, LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11262,7 +11262,9 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
|
|||
|
||||
S32 occlusion = sUseOcclusion;
|
||||
sUseOcclusion = 0;
|
||||
//sReflectionRender = sRenderDeferred ? FALSE : TRUE;
|
||||
|
||||
sReflectionRender = sRenderDeferred ? FALSE : TRUE;
|
||||
|
||||
sShadowRender = TRUE;
|
||||
sImpostorRender = TRUE;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue