2016-04-21 195 views
0

我有一個小小的「2 1/2-D」引擎我正在處理目標多平臺,但目前我正在升級我的DirectX 11版本。非對稱投影矩陣

對我的引擎來說,真正重要的一件事是能夠調整水平點,以便地平線下方的透視以與地平線上方的透視不同的角度移動到距離內。

在正常的3D環境中,這通常是通過將攝像頭向上傾斜到地平線上完成的,但是,在我的引擎中,大量使用2D精靈時,以傳統意義傾斜攝像頭也會使精靈傾斜。 ..我不想做的事情(它破壞了效果的16位街機風格)

我有一個工作點,通過手動在CPU中使用中心點那是偏離中心的,但我想盡可能使用特殊的投影矩陣。現在我正在使用使用FOV,近平面和遠平面參數的股票矩陣。

任何想法?這是甚至可能與矩陣?在DX11管道中不是自動劃分的嗎?如何控制何時或如何進行視角分割?假設單獨使用矩陣無法完成視角分割,我是否正確?它要求每個頂點被手動劃分Z,是正確的?

回答

0

您正在尋找的是偏離中心的透視投影矩陣,而不是fov和縱橫比,您提供的左/右/上/下有棕褐色(角度)。其結果與添加了兩個額外非零值的對稱投影矩陣或多或少相同。

你也是對的,GPU很難執行w分割,並且在頂點着色器中執行它並不是一個好主意,它會混淆紋理座標和裁剪的透視校正(不是與精靈特例大不相同)。

您可以在這裏找到這樣一個矩陣的例子:https://msdn.microsoft.com/en-us/library/windows/desktop/bb205353(v=vs.85).aspx

+0

感謝您的回答和及時的答覆!我會檢查鏈接! –