Implement translation rotation zoom using uniform buffers, improvement?
This commit is contained in:
+18
-1
@@ -8,8 +8,25 @@ uniform float zoom;
|
||||
uniform float rotation;
|
||||
uniform vec2 translation;
|
||||
|
||||
vec2 tran(vec2 v)
|
||||
{
|
||||
return (v - translation);
|
||||
}
|
||||
vec2 rot(vec2 v)
|
||||
{
|
||||
return vec2 ( v.x * cos(-rotation) - v.y * sin(-rotation)
|
||||
, v.x * sin(-rotation) + v.y * cos(-rotation)
|
||||
);
|
||||
}
|
||||
vec2 scal(vec2 v)
|
||||
{
|
||||
return vec2 ( 2 * v.x * zoom / winSize.x
|
||||
, 2 * v.y * zoom / winSize.y
|
||||
);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(position,1);
|
||||
gl_Position = vec4(scal(rot(tran(position.xy))),position.z,1);
|
||||
vColor = color;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user