Implement translation rotation zoom using uniform buffers, improvement?
This commit is contained in:
+18
-2
@@ -10,10 +10,26 @@ uniform float zoom;
|
||||
uniform vec2 translation;
|
||||
uniform float rotation;
|
||||
|
||||
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(0,0,0,1);
|
||||
gl_Position = vec4(scal(rot(tran(position.xy))),position.z,1);
|
||||
vColor = color;
|
||||
vparams = saEaRadWdth;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ in vec2 vWinSize [];
|
||||
out vec2 gTexPos;
|
||||
|
||||
uniform vec2 translation;
|
||||
uniform float zoom;
|
||||
uniform float rotation;
|
||||
|
||||
vec2 rotBy( float rot, vec2 v)
|
||||
{
|
||||
@@ -18,8 +20,8 @@ vec2 rotBy( float rot, vec2 v)
|
||||
void main()
|
||||
{
|
||||
vec2 cPos = vec2(translation.x / 250 , translation.y /250 );
|
||||
float zoom = vParams[0].w;
|
||||
float rot = 0 - vParams[0].z;
|
||||
// float zoom = vParams[0].w;
|
||||
float rot = 0 - rotation;
|
||||
|
||||
float x = vWinSize[0].x / (500*zoom) ;
|
||||
float y = vWinSize[0].y / (500*zoom) ;
|
||||
|
||||
+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;
|
||||
}
|
||||
|
||||
+17
-2
@@ -10,10 +10,25 @@ uniform float zoom;
|
||||
uniform vec2 translation;
|
||||
uniform float rotation;
|
||||
|
||||
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(0,0,0,1);
|
||||
gl_Position = vec4(scal(rot(tran(position.xy))),position.z,1);
|
||||
vColor = color;
|
||||
vRad = rad;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user