1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
in vec3 position;
in vec2 texcoord;
in vec4 color;
in vec3 normal;
uniform highp mat4 modelMatrix;
uniform highp mat4 viewMatrix;
uniform highp mat4 projMatrix;
uniform highp mat4 extraMatrix;
uniform highp mat4 normalMatrix;
uniform highp vec3 cameraPos;
uniform UBOOL textured;
uniform UBOOL useVertexAlpha;
uniform vec4 uniformColor;
struct shadow_info {
UBOOL _active;
vec3 _color;
vec3 _light;
vec3 _point;
vec3 _normal;
};
uniform shadow_info shadow;
out vec2 Texcoord;
out vec4 Color;
void main() {
vec4 pos = vec4(position, 1.0);
vec4 offset = modelMatrix * vec4(0.0, 0.0, 0.0, 1.0);
offset -= vec4(cameraPos * offset.w, 0.0);
offset = viewMatrix * offset;
pos = extraMatrix * pos;
pos += vec4(offset.xyz * pos.w, 0.0);
pos /= pos.w;
pos.z *= -1.0;
vec4 projectedPos = projMatrix * pos;
projectedPos.z = ROUND(projectedPos.z);
gl_Position = projectedPos;
if (UBOOL_TEST(shadow._active)) {
Color = vec4(shadow._color, 1.0);
} else {
Color = color;
}
if (!UBOOL_TEST(useVertexAlpha))
Color.a = 1.0;
Color *= uniformColor;
if (UBOOL_TEST(textured)) {
Texcoord = texcoord;
} else {
Texcoord = vec2(0.0, 0.0);
}
}
|