2016-11-23 69 views
0

我有半圓的紋理。它應該根據給定的角度順時針增長。首先,我的繪圖函數準備頂點和texcoords緩衝區。接下來,它加載旋轉矩陣,最後繪製紋理。代碼看起來像這樣:如何使用OpenGL在Android中按角度裁剪紋理?

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