#version 100 precision mediump float; attribute vec3 pos; attribute vec2 uv; attribute vec3 normal; uniform vec3 wpos; varying vec2 texcoord; varying vec3 v_normal; varying float v_position; varying vec3 v_cam_normal; uniform mat4 view; uniform mat4 proj; void main() { mat4 drawProj = mat4( vec4(-1.0, 0.0, 0.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(0.0, 0.0, -1.0, 0.0), vec4(-wpos.x, wpos.y, -wpos.z, 1.0) ); texcoord = uv; v_normal = normal; vec4 space_pos = view * drawProj * vec4(pos, 1.0); gl_Position = proj * space_pos;//* view * drawProj * vec4(pos, 1.0); v_position = length(space_pos.xyz); v_cam_normal = mat3(view * drawProj) * normal; }