-
-SHADER_DEFINE( shader_player,
-
- /*Include*/ VERTEX_STANDARD_ATTRIBUTES
-
- "uniform mat4 uPv;"
- "uniform mat4x3 uMdl;"
- "uniform float uOpacity;"
- ""
- "out vec4 aColour;"
- "out vec2 aUv;"
- "out vec3 aNorm;"
- "out vec3 aCo;"
- "out float aOpacity;"
- ""
- "void main()"
- "{"
- "vec3 world_pos = uMdl * vec4(a_co,1.0);"
- "gl_Position = uPv * vec4(world_pos,1.0);"
-
- "aColour = a_colour;"
- "aUv = a_uv;"
- "aNorm = mat3(uMdl) * a_norm;"
- "aCo = a_co;"
- "aOpacity = 1.0-(gl_Position.y+0.5)*uOpacity;"
- "}",
- /* Fragment */
- "out vec4 FragColor;"
- ""
- "uniform sampler2D uTexMain;"
- "uniform vec4 uColour;"
- ""
- "in vec4 aColour;"
- "in vec2 aUv;"
- "in vec3 aNorm;"
- "in vec3 aCo;"
- "in float aOpacity;"
- ""
- "void main()"
- "{"
- "vec3 diffuse = texture( uTexMain, aUv ).rgb;"
- "FragColor = vec4(pow(diffuse,vec3(1.0)),aOpacity);"
- "}"
- ,
- UNIFORMS({ "uTexMain", "uPv", "uMdl", "uOpacity" })
-)