2010-10-12 46 views

回答

8

從這個意義上說,天空盒和天球非常相似,您將獲得相同的視覺效果 - 即看起來很遠的一個很好的背景。

不過我通常建議對天空盒以下三個原因:

  • 少多邊形需要
  • 假設你正確設置你的投影矩陣,你不能告訴你是在一個盒子裏(如果你弄錯了,你可能會看到一些失真)
  • 它很容易使廣場空中包廂圖像(每個大小方向)

關於最後POIN t,通過創建90度的視場來配置渲染器以產生精確地適合於天空盒的光線追蹤的方形圖像是非常容易的,例如,的povray中你會使用類似以下內容:

camera { 
    right -x 
    up y 
    direction -z 
    location 0 
} 

我通常使用1024 * 1024或2048 * 2048平方米的紋理此。

我可以考慮使用天空球的一個很好的理由是,如果你使用某種程序紋理方法,需要在(近似)單位球面上的點生成。然而,我認爲這是一個非常特殊的情況,而且對於大多數遊戲應用程序來說不太可能是必需的。

+0

關於多邊形的觀點是不真實的 - 使用着色器無論哪種方法都需要一個三角形作爲最低限度... – jheriko 2010-10-14 18:56:42

+0

Interresting答案,但它不會說SkySphere與SkyBox相比有什麼優勢嗎?有沒有一些情況下更好?也許當你允許輪換? – Klaim 2010-10-14 19:22:23

2

爲天空盒製作紋理更容易。多邊形數量也會更小(但今天的卡片可以忽略不計)。

天空盒的唯一問題是立方體的邊緣在某些條件下可能是可見的。

另一個方面是有差別:

  • 天空盒決不會與幾何碰撞 - 的圖像僅由另一個攝像機與用戶照相機一起旋轉,並且是「卡在盒」
  • 投影
  • 在skysphere的情況下,背景會直接呈現(播放器可以「碰到天空」)

良好的描述和OpenGL樣品是here

+4

玩家不應該能夠撞到天空。它意味着相對於玩家保持不變! – Martin 2010-10-12 15:31:33

+0

skybox和skysphere都可以呈現在無限遠處。這解決了與場景中任何物體的碰撞。 – Arne 2016-12-02 18:27:58

0

天空盒的另一個優點是能夠爲它們使用立方體貼圖 - 另一方面球體貼圖不是硬件加速的(afaik)。

+0

你可以渲染一個紋理的球體。這非常硬件加速。 – Arne 2016-12-02 18:29:43

+0

你需要在這種情況下提供uvs,並轉換幾何。確保東西加速,但不是特別的。 有關立方體貼圖的特殊之處在於紋理座標系基於方向矢量 - 因此,您可以渲染四邊形並使用紋理座標的視圖方向 - 不需要真正的幾何圖形。 對球體做同樣的事情需要將這些方向轉換成別的東西 - 或者通過製作一些素材或在像素着色器中脫機 – jheriko 2016-12-05 14:39:13

+0

好吧我從來沒有測試過只繪製一個四邊形並給出角落定向紋理座標。但並不總是保存多邊形意味着你獲得了性能。說實話,我認爲只要天空盒折騰,在所有性能方面都不重要。我仍然更喜歡天空盒,因爲它失真較少。 – Arne 2016-12-07 02:30:49

1

一個天空也非常酷,因爲你可以使用任何墨卡託投影地圖來紋理它,它根本沒有失真。

0

當您使用天空盒時,您很可能會使用盒子紋理。這種紋理也可以用於反光材料。在這裏使用Skyphere紋理並不容易。