2011-04-01 152 views
6

我在我的代碼中有一個錯誤,想知道這是不正確的。將二維仿射變換矩陣轉換爲三維仿射變換矩陣

我在我的代碼中有一個2D視圖矩陣,但要將我的世界顯示在屏幕上,我需要將2D視圖矩陣轉換爲3D視圖矩陣。這是我使用的過程:

| a b c |  | a b c 0 | 
| d e f | => | d e f 0 | 
| g h i |  | g h i 0 | 
       | 0 0 0 1 | 

它的工作原理,當我使用單位矩陣的2D矩陣,但只要我申請任何變換以二維矩陣我所有的物體被吸入消失。

對於使用3D的2D繪圖,我用這個投影矩陣:

_basicEffect.Projection = Matrix.CreateOrthographicOffCenter(0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height, 0, 0, 1); 

什麼是二維矩陣轉換成3D的正確方法?

回答

14

仿射變換使用變換矩陣的額外行/列進行平移。所以我認爲你想要做的是將最後一行/列向下/向右移動,然後對於新軸簡單地插入標識轉換。

| a b c |  | a b 0 c | 
| d e f | => | d e 0 f | 
| g h i |  | 0 0 1 0 | 
       | g h 0 i | 

我不確定,但至少試一試。

+0

+1你是對的。 – 2011-04-01 05:15:29