summaryrefslogtreecommitdiff
path: root/mainv.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'mainv.glsl')
-rw-r--r--mainv.glsl19
1 files changed, 18 insertions, 1 deletions
diff --git a/mainv.glsl b/mainv.glsl
index d78f63d..b26ee6f 100644
--- a/mainv.glsl
+++ b/mainv.glsl
@@ -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;
}