2011-12-05 15 views
3

我正在創建一個爲3D世界生成數據的.NET庫,但它不會執行任何渲染本身。它落在XNA,DirectX,OpenGL等基於數據呈現它(最終編碼器是這樣做的)。我想以最有意義的格式提供世界數據。在XNA中,「Z」進入屏幕,「X」進入左右,「Y」進入上下(基於我的測試)。我可以用同樣的格式提供世界數據,但我不想讓它依賴於XNA。這是軸定向最常用的格式嗎?我總是將事物形象化爲「Z」上下,「Y」在屏幕上,所以我將以這種格式傳遞世界數據,並將其轉換爲XNA引導程序,但如果沒有其他人使用數據w /方向,那麼它似乎很愚蠢,像這樣交付。3D世界中最通用的軸向是什麼?

非常感謝您的任何建議。謝謝。

而且,世界的數據基本上是地形數據,所以它有應該是什麼樣一個邏輯結構和降低 - 山等

+1

在2D中,x通常是水平的而y是垂直的;你可以看到XNA是如何做出選擇的。但是,我不會假裝對此知之甚多。 –

+0

非常感謝您的回答。根據你發佈的內容,聽起來好像是左手還是右手,「Y」通常被視爲「上」,w /「X」左右和「Z」向前,這將會給我可以使用的方向。我實際上並沒有在圖書館做任何轉換等。它僅提供3D座標。如果我在說些愚蠢的話,請糾正我 - 這是一個非常合理的案例。 –

+0

@ user850427在右手系統中,+ Z通常是「向後」(如果LH使+ Z向前)。 –

回答

1

是,在視頻遊戲編程,因爲DirectX的是最流行一會兒3D圖書館,左邊的X向右邊,Y向上邊,Z向前是,而且仍然是最常用的座標軸慣例。

但是,請注意,XNA數學課程已全部切換到右手慣例,所以如果您想在左手系統中工作,則必須反轉一些結果,例如交叉產品。

2

沒有「通用」座標系。

默認情況下,OpenGL通常使用右手。 Direct3D默認使用左手座標系統。但是,兩者都可以處理左手或右手座標系。但是,即使如此,將世界座標轉換爲視圖的方式也各不相同,不同的系統使用不同的約定。

如果你正在做一些將會生成模型的東西,並希望它被任何底層系統使用,它可能會使你的庫更有用,能夠擁有用戶提供的座標系,並建立使用它。做轉換是相對簡單的。

相關問題