1#version 330
2
3in vec3 vertexPosition;
4in vec3 vertexNormal;
5in vec4 vertexTangent;
6in vec2 vertexTexCoord;
7
8in vec3 dataDefinedAmbiantColor;
9in vec3 dataDefinedDiffuseColor;
10in vec3 dataDefinedSpecularColor;
11
12out vec3 worldPosition;
13out vec3 worldNormal;
14
15out DataColor {
16    vec4 ambient;
17    vec4 diffuse;
18    vec4 specular;
19} vs_out;
20
21
22uniform mat4 modelMatrix;
23uniform mat3 modelNormalMatrix;
24uniform mat4 modelViewProjection;
25
26uniform float texCoordScale;
27
28void main()
29{
30    // Transform position, normal, and tangent to world space
31    worldPosition = vec3(modelMatrix * vec4(vertexPosition, 1.0));
32    worldNormal = normalize(modelNormalMatrix * vertexNormal);
33
34
35    // colors defined data
36    vs_out.ambient=vec4(dataDefinedAmbiantColor,1.0);
37    vs_out.diffuse=vec4(dataDefinedDiffuseColor,1.0);
38    vs_out.specular=vec4(dataDefinedSpecularColor,1.0);
39
40    // Calculate vertex position in clip coordinates
41    gl_Position = modelViewProjection * vec4(vertexPosition, 1.0);
42}
43
44