2016-11-23 15 views
0

半円のテクスチャがあります。与えられた角度に応じて時計回りに大きくなるはずです。まず、私の描画関数は、頂点バッファとテクスチャバッファを準備します。次に、回転行列をロードし、最後にテクスチャを描画します。コードは次のようになります。AndroidでOpenGLを使用して角度でテクスチャを切り抜くには?

float[] vertexBuffer = {x0, y0, x1, y0, x0, y1, x1, y1}; 
float[] texCoordBuffer = {0, 0, 1, 0, 0, 1, 1, 1}; 
float[] matrix = getRotationMatrix(angle); // in Z axis 
matrix[12] = (x0 + x1)/2; 
matrix[13] = (y0 + y1)/2; 

gl.glMatrixMode(GL11.GL_MODELVIEW); 
gl.glLoadIdentity(); 
gl.glLoadMatrixf(matrix, 0);    

gl.glBindTexture(GL11.GL_TEXTURE_2D, m_TextureID[0]); 

gl.glColor4f(1f,1f,1f,1f); 
gl.glVertexPointer(2, GL11.GL_FLOAT, 0, vertexBuffer); 
gl.glTexCoordPointer(2, GL11.GL_FLOAT, 0, texCoordBuffer); 
gl.glDrawArrays(GL11.GL_TRIANGLE_STRIP, 0, 4); 

回転したテクスチャをどのようにクロップして元に戻すかわかりません。そのような効果を達成するための適切な方法は何ですか?

答えて

1

GLのトリミングは基本的な四角形ですので、ここではお手伝いしません。任意の角度が必要な場合は、その場でジオメトリとテクスチャの座標を変更する必要があります。

+0

よろしくお願いいたします。それは最優秀の解決策ではありませんが、それは動作します。私はいくつかの角度範囲に対していくつかの条件を作りました。 – Giebut

関連する問題