diff options
Diffstat (limited to 'mainv.glsl')
-rw-r--r-- | mainv.glsl | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -3,10 +3,27 @@ attribute vec3 v_normal; uniform mat4 u_transform; uniform vec3 u_offset; uniform vec3 u_scale; +uniform float u_yaw, u_pitch; varying vec3 normal; void main() { - gl_Position = u_transform * vec4(v_pos * u_scale + u_offset, 1.0); + float cy = cos(u_yaw), sy = sin(u_yaw); + float cp = cos(u_pitch), sp = sin(u_pitch); + float x = v_pos.x, y = v_pos.y, z = v_pos.z; + vec3 pos; + pos = vec3( + x, + cp * y - sp * z, + sp * y + cp * z + ); + x = pos.x; y = pos.y; z = pos.z; + pos = vec3( + +cy * x + sy * z, + y, + -sy * x + cy * z + ); + + gl_Position = u_transform * vec4(pos * u_scale + u_offset, 1.0); normal = v_normal; } |