2013-07-22 36 views
1

我有一個與How to convert a 3x3 rotation matrix into 4x4 matrix?有點不同的問題:我正在編寫處理平面(z始終等於0)幾何體上的紋理的2D OpenGL代碼。 android.graphics.Matrix類有許多方便的,調試方便的方法,可以執行諸如關於顯式軸心點的旋轉等操作。將android.graphics.Matrix轉換爲GL mat4?

一個3x3矩陣(也可以做2D仿射變換)是不是轉換爲4x4矩陣的

a11 a12 a13 a11 a12 0 a13 
a21 a22 a23 a21 a22 0 a23 
a31 a32 a33  0 0 1 0 
       a31 a32 0 a33 

的事......有,或許,轉置,使其列爲主?

回答

1

如果你只做仿射變換,它將以這種方式工作。在這種情況下,a31和a32總是可以是零,而a33應該是一個。在這些情況下,您可以使用2x3矩陣,而使用基於現代着色器的GL,您甚至可以直接使用該3x3或2x3矩陣,而無需進行任何轉換。

請注意,如果進行投影變換,將矩陣擴展到4x4仍然有效,但會在z維上引入失真。

+0

謝謝 - 但如果你做任何翻譯,a31和a32將是非零。 –

+0

@JonShemitz:好的,那麼你可以用它轉換成我使用的約定,而a13和23應該是零。 – derhass