3
2D画像をレンダリングしたい。これを行うために、私はそれが必要な場所にあるセンターを使ってすべてのものをスケールし、位置に変換します。私は中心の周りの2D座標を回転する必要がありますが、私はこれを行うときには、画像が奇妙に平坦化されているので、いくつかのx座標が含まれているかのようになります。ここでは、コードは次のようになります。ここではGLSL 2D Rotation not working
attribute vec4 vPosition;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
uniform vec2 scale;
uniform vec2 trans;
uniform float move_down;
void main(){
gl_Position = vPosition;
gl_Position.x *= scale.x;
gl_Position.y *= scale.y;
gl_Position.x += trans.x;
gl_Position.y += trans.y - move_down;
gl_Position.x *= 2.0;
gl_Position.y *= 2.0;
gl_Position.x -= 1.0;
gl_Position.y -= 1.0;
gl_Position.x *= 0.2; //For visual testing only
gl_Position.y *= 0.2; //Same
gl_Position.x = cos(1.0)*gl_Position.x - sin(1.0)*gl_Position.y;
gl_Position.y = sin(1.0)*gl_Position.x + cos(1.0)*gl_Position.y;
v_texCoord = a_texCoord;
}
画像が
そして、ここでは、回転した画像は、1.0ラジアンである...回転ラインなしで...
単純な2D回転である必要があるため、明らかに問題があります。私が90度すると、イメージは完全に消えます。
Android用OpenGL-ES 2を削除しました。
これに感謝します。
編集:私は周りのベクトル...間違った方法の後に行列を乗算して
mat4 RotationMatrix = mat4(cos(1.0), -sin(1.0), 0.0, 0.0,
sin(1.0), cos(1.0), 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0);
gl_Position *= RotationMatrix;