diff options
Diffstat (limited to 'assets/shaders/glsl330/instancing.vs')
-rw-r--r-- | assets/shaders/glsl330/instancing.vs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/assets/shaders/glsl330/instancing.vs b/assets/shaders/glsl330/instancing.vs index f537278..6473ccf 100644 --- a/assets/shaders/glsl330/instancing.vs +++ b/assets/shaders/glsl330/instancing.vs @@ -1,29 +1,33 @@ -#version 330 core +#version 330 // Input vertex attributes in vec3 vertexPosition; in vec2 vertexTexCoord; +in vec3 vertexNormal; +//in vec4 vertexColor; // Not required -layout (location = 12) in mat4 instance; +in mat4 instanceTransform; // Input uniform values uniform mat4 mvp; -uniform mat4 projection; -uniform mat4 view; +uniform mat4 matNormal; // Output vertex attributes (to fragment shader) +out vec3 fragPosition; out vec2 fragTexCoord; out vec4 fragColor; out vec3 fragNormal; -// NOTE: Add here your custom variables +// NOTE: Add your custom variables here void main() { // Send vertex attributes to fragment shader + fragPosition = vec3(instanceTransform*vec4(vertexPosition, 1.0)); fragTexCoord = vertexTexCoord; + fragColor = vec4(1.0); + fragNormal = normalize(vec3(matNormal*vec4(vertexNormal, 1.0))); - // Calculate final vertex position - mat4 mvpi = mvp * instance; - gl_Position = mvpi * vec4(vertexPosition, 1.0); -}
\ No newline at end of file + // Calculate final vertex position, note that we multiply mvp by instanceTransform + gl_Position = mvp*instanceTransform*vec4(vertexPosition, 1.0); +} |