25 lines
595 B
GLSL
25 lines
595 B
GLSL
|
#version 330
|
|||
|
|
|||
|
in vec4 point;
|
|||
|
|
|||
|
uniform mat4 mtxCam;
|
|||
|
uniform mat4 mtxMdl;
|
|||
|
|
|||
|
uniform mat4 bone;
|
|||
|
uniform mat4 parent;
|
|||
|
uniform mat4 rotation;
|
|||
|
uniform mat4 ModelMatrix;
|
|||
|
uniform int hasParent;
|
|||
|
uniform float scale;
|
|||
|
|
|||
|
void main(){
|
|||
|
vec4 position = bone * rotation * vec4(point.xyz * scale, 1);
|
|||
|
if (hasParent == 1)
|
|||
|
{
|
|||
|
if (point.w == 0)
|
|||
|
position = parent * rotation * vec4(point.xyz * scale, 1);
|
|||
|
else
|
|||
|
position = bone * rotation * vec4((point.xyz - vec3(0, 1, 0)) * scale, 1);
|
|||
|
}
|
|||
|
gl_Position = mtxCam * ModelMatrix * mtxMdl * vec4(position.xyz, 1);
|
|||
|
}
|