Files
OpenRA/glsl/model.vert
2020-07-13 14:02:02 +02:00

39 lines
831 B
GLSL

#version {VERSION}
uniform mat4 View;
uniform mat4 TransformMatrix;
#if __VERSION__ == 120
attribute vec4 aVertexPosition;
attribute vec4 aVertexTexCoord;
attribute vec2 aVertexTexMetadata;
attribute vec3 aVertexTint;
varying vec4 vTexCoord;
varying vec4 vChannelMask;
varying vec4 vNormalsMask;
#else
in vec4 aVertexPosition;
in vec4 aVertexTexCoord;
in vec2 aVertexTexMetadata;
in vec3 aVertexTint;
out vec4 vTexCoord;
out vec4 vChannelMask;
out vec4 vNormalsMask;
#endif
vec4 DecodeMask(float x)
{
if (x > 0.0)
return (x > 0.5) ? vec4(1,0,0,0) : vec4(0,1,0,0);
else
return (x < -0.5) ? vec4(0,0,0,1) : vec4(0,0,1,0);
}
void main()
{
gl_Position = View*TransformMatrix*aVertexPosition;
vTexCoord = aVertexTexCoord;
vChannelMask = DecodeMask(aVertexTexMetadata.s);
vNormalsMask = DecodeMask(aVertexTexMetadata.t);
}