precision highp float; attribute vec3 world; // position attribute vec2 texuv; attribute float r; // for round objects, 0 for non-round varying vec2 textureuv; varying float radius; varying mat3 light1; uniform vec4 color; varying vec4 v_color; uniform float world_x; uniform float world_y; uniform mat4 MV; uniform mat4 P; void main() { v_color = vec4(world.xyz,1.); vec2 vxy = vec2(world.x - world_x, world.y - world_y); float z_scale = 0.5; float xoff = clamp(world.z * vxy.x * z_scale, -32., 32.); float yoff = clamp(world.z * vxy.y * z_scale, -32., 32.); textureuv=texuv; //radius = r; // if z > 0 then // xoff = ceil(xoff, 0) // add to the z coord so we don't intersect with the ui gl_Position = P * MV * vec4(vxy.x + xoff, vxy.y + yoff, -world.z -1., 1.0); }