Switched to pre-multiplied alpha pipeline, requiring asset textures to be premultiplied as well.
This commit is contained in:
@@ -272,14 +272,14 @@ void main()
|
|||||||
|
|
||||||
if(shadowMapCoord1.x >= -1.0 && shadowMapCoord1.x <= 1.0 && shadowMapCoord1.y >= -1.0 && shadowMapCoord1.y <= 1.0 && shadowMapCoord1.z >= 0.0 && shadowMapCoord1.z <= 1.0) {
|
if(shadowMapCoord1.x >= -1.0 && shadowMapCoord1.x <= 1.0 && shadowMapCoord1.y >= -1.0 && shadowMapCoord1.y <= 1.0 && shadowMapCoord1.z >= 0.0 && shadowMapCoord1.z <= 1.0) {
|
||||||
#if DEBUG_PSSM == 1
|
#if DEBUG_PSSM == 1
|
||||||
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.75, 0.5, 1.0) + vec4(0.0, 0.0, 0.5, 0.0);
|
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.75, 0.5, 1.0) + vec4(0.0, 0.0, 0.5 * diffuseMaterial.a, 0.0);
|
||||||
#endif
|
#endif
|
||||||
highp vec2 shadowMapPos = (shadowMapCoord1 / shadowMapCoord1.w).st;
|
highp vec2 shadowMapPos = (shadowMapCoord1 / shadowMapCoord1.w).st;
|
||||||
shadowMapDepth = texture2D(shadowTexture1, shadowMapPos).z;
|
shadowMapDepth = texture2D(shadowTexture1, shadowMapPos).z;
|
||||||
vertexShadowDepth = (shadowMapCoord1 / shadowMapCoord1.w).z;
|
vertexShadowDepth = (shadowMapCoord1 / shadowMapCoord1.w).z;
|
||||||
} else if(shadowMapCoord2.s >= -1.0 && shadowMapCoord2.s <= 1.0 && shadowMapCoord2.t >= -1.0 && shadowMapCoord2.t <= 1.0 && shadowMapCoord2.z >= 0.0 && shadowMapCoord2.z <= 1.0) {
|
} else if(shadowMapCoord2.s >= -1.0 && shadowMapCoord2.s <= 1.0 && shadowMapCoord2.t >= -1.0 && shadowMapCoord2.t <= 1.0 && shadowMapCoord2.z >= 0.0 && shadowMapCoord2.z <= 1.0) {
|
||||||
#if DEBUG_PSSM == 1
|
#if DEBUG_PSSM == 1
|
||||||
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.50, 0.75, 1.0) + vec4(0.0, 0.5, 0.0, 0.0);
|
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.50, 0.75, 1.0) + vec4(0.0, 0.5 * diffuseMaterial.a, 0.0, 0.0);
|
||||||
#endif
|
#endif
|
||||||
highp vec2 shadowMapPos = (shadowMapCoord2 / shadowMapCoord2.w).st;
|
highp vec2 shadowMapPos = (shadowMapCoord2 / shadowMapCoord2.w).st;
|
||||||
shadowMapDepth = texture2D(shadowTexture2, shadowMapPos).z;
|
shadowMapDepth = texture2D(shadowTexture2, shadowMapPos).z;
|
||||||
@@ -288,7 +288,7 @@ void main()
|
|||||||
#if SHADOW_QUALITY >= 3
|
#if SHADOW_QUALITY >= 3
|
||||||
else if(shadowMapCoord3.s >= -1.0 && shadowMapCoord3.s <= 1.0 && shadowMapCoord3.t >= -1.0 && shadowMapCoord3.t <= 1.0 && shadowMapCoord3.z >= 0.0 && shadowMapCoord3.z <= 1.0) {
|
else if(shadowMapCoord3.s >= -1.0 && shadowMapCoord3.s <= 1.0 && shadowMapCoord3.t >= -1.0 && shadowMapCoord3.t <= 1.0 && shadowMapCoord3.z >= 0.0 && shadowMapCoord3.z <= 1.0) {
|
||||||
#if DEBUG_PSSM == 1
|
#if DEBUG_PSSM == 1
|
||||||
diffuseMaterial = diffuseMaterial * vec4(0.50, 0.75, 0.75, 1.0) + vec4(0.5, 0.0, 0.0, 0.0);
|
diffuseMaterial = diffuseMaterial * vec4(0.50, 0.75, 0.75, 1.0) + vec4(0.5 * diffuseMaterial.a, 0.0, 0.0, 0.0);
|
||||||
#endif
|
#endif
|
||||||
highp vec2 shadowMapPos = (shadowMapCoord3 / shadowMapCoord3.w).st;
|
highp vec2 shadowMapPos = (shadowMapCoord3 / shadowMapCoord3.w).st;
|
||||||
shadowMapDepth = texture2D(shadowTexture3, shadowMapPos).z;
|
shadowMapDepth = texture2D(shadowTexture3, shadowMapPos).z;
|
||||||
@@ -320,14 +320,14 @@ void main()
|
|||||||
|
|
||||||
#if ENABLE_DIFFUSE == 1
|
#if ENABLE_DIFFUSE == 1
|
||||||
// -------------------- Add diffuse light --------------------
|
// -------------------- Add diffuse light --------------------
|
||||||
gl_FragColor += diffuseMaterial * vec4(material_diffuse, 1.0) * vec4(vec3(lamberFactor), 1.0);
|
gl_FragColor += diffuseMaterial * vec4(material_diffuse * lamberFactor, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// -------------------- Switch to Pre-multiplied Alpha and Apply material_alpha --------------------
|
// -------------------- Apply material_alpha --------------------
|
||||||
|
|
||||||
#if ALPHA_BLEND == 1
|
#if ALPHA_BLEND == 1
|
||||||
gl_FragColor.a = gl_FragColor.a * material_alpha; // Apply material_alpha
|
gl_FragColor.a = diffuseMaterial.a;
|
||||||
gl_FragColor.rgb *= gl_FragColor.a; // Switch to pre-multiplied alpha
|
gl_FragColor *= material_alpha;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// -------------------- Add specular light --------------------
|
// -------------------- Add specular light --------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user