Shader Graph 的空間

Object Space

  • 模型的所有頂點位置都是 相對於該物件的中心點(Pivot Point) 來計算的,而不是世界原點 (0,0,0)

World Space

  • 世界空間(World Space) 是所有物件共享的一個全域座標系統,其中所有物件的位置都是相對於 世界原點 (0,0,0) 來計算的。在 Unity Editor 中,當你修改某個 Object Transform 的位置,就是在修改那個 Object 的 World Space。
  • 假設有一個物件 A 在 (3,2,1) 的世界座標,然後它的子物件 B 在 localPosition = (1,1,1):
    • A.position = (3,2,1)(世界空間)
    • B.localPosition = (1,1,1)(本地空間,相對於 A)
    • B.position = (4,3,2)(世界空間,因為 A 的位置 + B 的本地位置 = 世界位置)
    • 所以,如果你在 Unity 編輯器中修改 B.position,你就是在改變它的 世界空間座標,而 B.localPosition 會自動調整,以維持相對於 A 的關係。

Absolute World Space 與 World Space

  • URP:Universal Render Pipeline(通用渲染管線),較強調效能,適合跨平台。
  • HDRP:High Definition Render Pipeline(高解析度渲染管線),較強調畫質,適用於 高端 PC、主機遊戲、電影級畫質
  • 在 URP 中,world space 與 absolute world space 是一樣的。
  • 但是在 HDRP 中,他使用 camera relative rendering , 因此 HDRP 的 world space 是相對於相機的 (camera-relative) ,而他的 absolute world space 則不管相機。

Tangent Space

  • 在 切線空間(Tangent Space) 中,位置和方向是相對於每個頂點及其法線來定義的。

View/Eye Space

  • 在 視圖空間(View/Eye Space) 中,物件的位置是相對於相機及其朝前的方向( forward-facing direction )來描述的。這與 相機相對渲染(Camera-Relative Rendering) 不同,因為視圖空間會考慮相機的旋轉。

Clip space

  • 在 裁剪空間(Clip Space) 中,物件的位置是相對於螢幕(Screen)的。這個空間是在視圖空間經過投影變換(projected)後產生的,其結果取決於相機的視野範圍(Field of View, FOV)和裁剪平面(Clipping Planes)。通常,超出裁剪空間範圍的物體會被裁剪(Clipped),也稱為剔除(Culled),簡單來說就是被刪除,因此這個空間被稱為「裁剪空間」。

評論