共用方式為


座標系統 (Direct3D 9)

一般而言,3D 圖形應用程式會使用兩種類型的笛卡兒座標系統:左手和右手。 在這兩個座標系統中,正 x 軸指向右側,而正 y 軸指向上方。 您可以藉由將左手或右手指指向正 x 軸方向,並將它們彎曲至正 y 軸的方向,以記得正 z 軸指向的方向。 您拇指所指的方向,不論是指向您或指向您的反方向,即是該座標系統正 z 軸所指的方向。 下圖顯示這兩個座標系統。

左手系和右手系笛卡兒座標的圖例

Direct3D 使用左手系座標系統。 如果您要移植以右手座標系統為基礎的應用程式,您必須對傳遞至 Direct3D 的資料進行兩項變更。

  • 翻轉三角形頂點的順序,讓系統從前面順時針轉動這些頂點。 意即如果頂點為 v0、v1、v2,請依 v0、v2、v1 的順序傳遞給 Direct3D。
  • 使用檢視矩陣將世界空間在 z 方向縮放 -1。 若要這樣做,請翻轉用於檢視矩陣之 D3DMATRIX 結構的 _31、_32、_33 和 _34 成員的符號。

若要取得右手世界的數量,請使用 D3DXMatrixPerspectiveRHD3DXMatrixOrthoRH 函數來定義投影轉換。 不過,請小心使用對應的 D3DXMatrixLookAtRH 函式、反轉反面消除順序,並據以配置 Cube 對應。

雖然左手系和右手系座標是最常見的系統,但 3D 軟體中還使用各種不同的其他座標系統。 舉例來說,3D 模型應用程式也常使用一種座標系統,其中 y 軸指向檢視器或指向其反方向,而且 z 軸朝上。

正式來說,一組基礎向量的方向 (亦即座標系統) 可以透過計算特定基礎向量所定義的矩陣行列式來找到。 如果行列式為正面,則基礎稱為「正面」導向 (或右手) 。 如果行列式為負數,則基礎稱為「負面」導向 (或左手) 。 如需行列式是什麼的說明,請參閱任何線性代數資源。

非正式地,您可以使用「右/左手規則」來判斷指定的基礎向量集是否形成右或左手座標系統。

在 3D 座標系統中定義的物件上執行的基本作業是轉譯、旋轉和縮放。 您可以結合這些基本轉換來建立轉換矩陣。 如需詳細資訊,請參閱 (Direct3D 9) 轉換。

當您結合這些作業時,結果不可相互交換。您以倍數增加矩陣的順序至關重要。

座標系統和幾何