#version 450 //#extension GL_ARB_separate_shader_objects : enable uniform mat4 mview; uniform mat4 mmviewproj; varying vec3 pos; varying vec3 normal; varying vec3 ldir; varying vec2 tex_coord; const vec3 lpos = vec3(-10.0, 100.0, 10.0); /* attributes */ layout(location = 1) in vec3 attr_pos; layout(location = 2) in vec3 attr_normal; layout(location = 3) in vec2 attr_tex; void main() { gl_Position = mmviewproj * vec4(attr_pos, 1.0); pos = (mview * vec4(attr_pos, 1.0)).xyz; ldir = (mview * vec4(lpos, 1.0)).xyz; mat3 normal_matrix = mat3(mview); normal = normal_matrix * attr_normal; tex_coord = attr_tex; }