CSC3223_Graphics_For_Games_OpenGL_Rasteriser / OpenGLGraphics / segmentVert.glsl
segmentVert.glsl
Raw
#version 150 core

uniform mat4 modelMatrix;
uniform mat4 viewMatrix;
uniform mat4 projMatrix;

in vec3 position;
in vec4 colour;

uniform mat4 transforms [5];

out Vertex {
vec2 texCoord;
} OUT;

void main ( void ) {
OUT.texCoord = texCoord;

int nodeA = int ( colour [0]);
int nodeB = int ( colour [1]);

 float weightA = colour [2];
 float weightB = colour [3];

 vec4 posA = ( transforms [ nodeA ] * vec4 ( position , 1)) * weightA;
 vec4 posB = ( transforms [ nodeB ] * vec4 ( position , 1)) * weightB;

 vec4 finalPos = posA + posB;

 gl_Position = ( projMatrix * viewMatrix * modelMatrix ) * vec4 ( finalPos.xyz, 1);
}