0f19107dd2
Window panes render near perfectly aside from materials. Update fixes the texture flip flags and other uv fixes, Fixed UV transformation issues. Commonly when a uv is suppose to be centered but it shifts wrong. Add basic white and black color blending. Fix LA8 texture rendering. Start on BRLAN support.
39 lines
1.1 KiB
GLSL
39 lines
1.1 KiB
GLSL
uniform vec2 uvScale0;
|
|
uniform vec2 uvRotate0;
|
|
uniform vec2 uvTranslate0;
|
|
uniform int flipTexture;
|
|
|
|
vec2 rotateUV(vec2 uv, float rotation)
|
|
{
|
|
float mid = 0.5;
|
|
return vec2(
|
|
cos(rotation) * (uv.x - mid) + sin(rotation) * (uv.y - mid) + mid,
|
|
cos(rotation) * (uv.y - mid) - sin(rotation) * (uv.x - mid) + mid
|
|
);
|
|
}
|
|
|
|
vec2 SetFlip(vec2 tex)
|
|
{
|
|
vec2 outTexCoord = tex;
|
|
|
|
if (flipTexture == 1) //FlipH
|
|
return vec2(-1, 1) * tex + vec2(1, 0);
|
|
else if (flipTexture == 2) //FlipV
|
|
return vec2(1, -1) * tex + vec2(0, 1);
|
|
else if (flipTexture == 3) //Rotate90
|
|
return rotateUV(tex, radians(90.0));
|
|
else if (flipTexture == 4) //Rotate180
|
|
return rotateUV(tex, radians(180.0));
|
|
else if (flipTexture == 5) //Rotate270
|
|
return rotateUV(tex, radians(270.0));
|
|
|
|
return outTexCoord;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
gl_FrontColor = gl_Color;
|
|
vec2 texCoord0 = vec2(0.5, 0.5) + uvScale0 * (gl_MultiTexCoord0.xy + (uvTranslate0 / uvScale0 - 0.5));
|
|
gl_TexCoord[0].st = SetFlip(texCoord0);
|
|
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
|
|
} |