Skip to content

Instantly share code, notes, and snippets.

@alyssarosenzweig
Last active April 18, 2021 23:52
Show Gist options
  • Save alyssarosenzweig/4dc380184a4959fe609bfa26bf96dd6c to your computer and use it in GitHub Desktop.
Save alyssarosenzweig/4dc380184a4959fe609bfa26bf96dd6c to your computer and use it in GitHub Desktop.
Spinning cube
#version 300 es
precision mediump float;
out vec4 f;
in vec4 col;
void main() {
f = col;
}
#version 300 es
precision highp float;
layout(location = 0) in vec4 in_position;
layout(location = 1) in vec4 in_colour;
out vec4 col;
uniform float theta;
void main() {
vec3 coord = in_position.xyz;
vec3 world = coord;
world = vec3(
world.x * cos(theta) - world.z * sin(theta),
world.y,
world.x * sin(theta) + world.z * cos(theta));
float theta_2 = theta * 0.5f;
world = vec3(
world.x,
world.y * cos(theta_2) - world.z * sin(theta_2),
world.y * sin(theta_2) + world.z * cos(theta_2));
/* Translate */
world.z += 5.0;
gl_Position = vec4(world.xyz, world.z);
vec3 normal = normalize(coord);
vec3 light = normalize(vec3(1.0, 3.0, 1.0));
col = in_colour * dot(world, light);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment