3 textures blending fix for OpenGL.

This commit is contained in:
LuisAntonRebollo 2014-12-03 21:59:53 +01:00
parent 7962eef7dd
commit f3e737e001
3 changed files with 11 additions and 7 deletions

View file

@ -458,7 +458,7 @@ void TerrainDetailMapFeatGLSL::processPix( Vector<ShaderComponent*> &component
}
// Add to the blend total.
meta->addStatement( new GenOp( " @ = max( @, @ );\r\n", blendTotal, blendTotal, detailBlend ) );
meta->addStatement( new GenOp( " @ += @;\r\n", blendTotal, detailBlend ) );
// If we had a parallax feature... then factor in the parallax
// amount so that it fades out with the layer blending.

View file

@ -32,10 +32,12 @@ float calcBlend( float texId, vec2 layerCoord, float layerSize, vec4 layerSample
vec4 diff = clamp( abs( layerSample - texId ), 0.0, 1.0 );
float noBlend = float(any( bvec4(1 - diff) ));
// Use step to see if any of the layer samples
// match the current texture id.
vec4 factors = step( texId, layerSample );
vec4 factors = vec4(0);
for(int i = 0; i < 4; i++)
if(layerSample[i] == texId)
factors[i] = 1;
// This is a custom bilinear filter.
vec2 uv = layerCoord * layerSize;

View file

@ -32,10 +32,12 @@ float calcBlend( float texId, vec2 layerCoord, float layerSize, vec4 layerSample
vec4 diff = clamp( abs( layerSample - texId ), 0.0, 1.0 );
float noBlend = float(any( bvec4(1 - diff) ));
// Use step to see if any of the layer samples
// match the current texture id.
vec4 factors = step( texId, layerSample );
vec4 factors = vec4(0);
for(int i = 0; i < 4; i++)
if(layerSample[i] == texId)
factors[i] = 1;
// This is a custom bilinear filter.
vec2 uv = layerCoord * layerSize;