跳轉到內容

Blender 3D:菜鳥到高手/Blender 中的座標空間

來自華夏公益教科書,開放的書籍,為了一個開放的世界
圖 1: 三維空間中的物體。全域性座標系的原點位於座標系的中心。

我們先來看看 Blender 中是如何表示 3D 場景的。

正如在 "3D 幾何體" 模組 中解釋的那樣,Blender 透過座標來表示場景中的位置。一個位置的座標由三個數字組成,它們定義了它距離固定原點的距離和方向。更準確地說

  • 位置的第一個(或 x-)座標定義為它距離 YZ 平面(包含 Y 軸和 Z 軸的平面)的距離。位於該平面 +X 側的位置被分配正 x 座標,位於 -X 側的位置被分配負 x 座標。
  • 它的第二個(或 y-)座標是它距離 XZ 平面的距離,位於該平面 -Y 側的位置具有負 y 座標。
  • 它的第三個(或 z-)座標是它距離 XY 平面的距離,位於該平面 -Z 側的位置具有負 z 座標。

因此,原點(位於所有三個軸和所有三個平面的交點)具有座標 (0, 0, 0)。

注意
本教程的影像使用 Blender v2.46 生成。

全域性座標和區域性座標

[編輯 | 編輯原始碼]

Blender 將上面描述的座標系稱為 全域性座標系,雖然它並不真正是全域性的,因為每個場景都有自己的全域性座標系。每個全域性座標系都有一個固定的原點和一個固定的方向,但我們可以透過在場景中移動虛擬相機和/或旋轉相機來從不同的角度觀察它。

全域性座標對於包含單個固定物件的場景和每個物件僅是場景中單個點的場景來說是足夠的。當處理四處移動的物體(或多個具有大小和形狀的物體)時,為每個物體定義一個 **區域性座標系** 將是有幫助的,即一個可以隨物體移動並跟隨物體的座標系。物體區域性座標系的原點通常稱為 **物體中心**,儘管它不必與物體的幾何中心重合。

Blender 中的 3D 物件主要使用 **頂點**(物體中的點,單數形式:**頂點**)來描述。頂點的全域性座標取決於

  • 頂點在物體 **區域性** 座標系中的 (x, y, z) 座標
  • 物體中心的方位
  • 區域性座標系相對於全域性座標系的任何旋轉(轉動),以及
  • 區域性座標系相對於全域性座標系的任何縮放(放大或縮小)。

例如,圖 1 中的茶杯由包含 171 個頂點的網格模型描述,每個頂點相對於杯子的中心都具有不同的區域性 (x, y, z) 座標。如果你 **平移** 茶杯(在不旋轉的情況下移動它),模型中唯一需要改變的部分是中心的全域性座標。所有頂點的區域性座標將保持不變。

子物件的座標

[編輯 | 編輯原始碼]
圖 1b: 父物件作為其子物件的全域性座標的來源。子物件是茶杯;父物件的方向用彩色箭頭表示。
上面內容的動畫

任何物體都可以作為同一個場景中一個或多個其他物體的 **父** 物體,然後這些物體被稱為 **子** 物體。(一個物體不能有多個直接父物體,但父物體本身也可能是其他物體的子物體。)

如果一個物體有父物體,它的位置、旋轉和縮放是在父物體的區域性座標系中測量的,幾乎就像它是父物體的頂點一樣。即子物體中心的方位是從父物體中心而不是全域性座標系的原點測量的。因此,如果你移動一個父物體,它的子物體也會移動,即使子物體的座標沒有改變。子物體區域性座標系的方向和縮放同樣是相對於其父物體測量的。如果你旋轉父物體,子物體將會旋轉(並且可能繞軸旋轉)。

物體之間的父子關係使執行(和動畫)任意方向的旋轉、縮放和移動變得更加簡單。在 **圖 1b** 中,茶杯是右邊座標交叉的子物體。該交叉本身是不可見父物體的子物體。(它既是父物體又是子物體。)在茶杯的區域性座標系中,它沒有旋轉,但當右邊的交叉圍繞其 Z 軸旋轉時,它會導致茶杯旋轉和繞軸旋轉。在實際動畫中,當拿著茶杯的角色旋轉時,茶杯會相應地改變位置,這會更容易。

檢視座標

[編輯 | 編輯原始碼]
圖 2: 檢視座標和投影平面

考慮到場景的觀看者,還有一個座標空間:檢視座標。在 **圖 2** 中,觀看者用相機表示。檢視座標的 Z 軸始終直接指向正交投影中的觀看者。X 軸指向右側,Y 軸指向向上(**圖 3**)。

圖 3: 檢視座標在觀看方向

實際上,如果你沒有進行其他設定,你始終在檢視座標中工作*。如果您在建模之前對檢視進行了對齊,例如,如果一個物體有一個傾斜的屋頂,並且您想建立一個適合該屋頂的窗戶,那麼在物體的區域性座標系中構建窗戶將非常複雜,但是,如果你首先將你的檢視對齊到傾斜的屋頂,你就可以輕鬆地在該檢視座標系中工作。

(* 在 Blender 2.6 系列中,預設設定已更改為全域性座標。檢視座標仍然是一個選項。)

如果您在三個標準檢視(正面/頂部/側面)中的一箇中工作,檢視座標的對齊方式將適合全域性座標。因此,在其中一個標準檢視中建模是相當自然的,許多人發現這是最好的建模方式。

法線座標

[編輯 | 編輯原始碼]
圖 4: 面部的法線座標空間。法線用藍色表示。

雖然 Blender 是一個 3D 程式,但只有物體的面才是可見的。面的方向對於很多原因都很重要。例如,在日常生活中,一本平放在桌上的書似乎相當明顯。這需要桌子表面和書表面相互平行。如果我們在 3D 程式中將一本放在桌子上,沒有機制強制這些表面平行。藝術家需要確保這一點。

面的方向可以用所謂的 **表面法線** 來描述。它始終垂直於表面。如果選擇多個面,則結果法線將從每個面的法線平均得到。在 **圖 4** 中繪製了可見面的法線座標。

這個概念可以應用於物體上的單個點,即使這些點本身沒有方向。點的法線是相鄰面的法線的平均值。

UV 座標

[編輯 | 編輯原始碼]

在後面的部分(例如,談論紋理)中,您會遇到標有“U”和“V”的座標。這些只是為了避免與“X”、“Y”和“Z”混淆而選擇的不同字母。例如,光柵影像通常佈置在一個平坦的二維平面上。影像上的每個點都可以用 X 和 Y 座標識別。但是 Blender 可以獲取此影像並將其作為紋理包裹在 3D 物體的表面。物體上/中的點具有 X、Y 和 Z 座標。因此,為了避免混淆,影像上的點使用 U 和 V 來標記它們的座標,而不是 X 和 Y。然後,我們將“UV 對映”稱為確定每個 (U, V) 影像點在 (X, Y, Z) 物體上最終位置的過程。

華夏公益教科書