這兩者之間有什麼優點和缺點?尤其適用於3D遊戲。Skybox vs Skysphere
回答
從這個意義上說,天空盒和天球非常相似,您將獲得相同的視覺效果 - 即看起來很遠的一個很好的背景。
不過我通常建議對天空盒以下三個原因:
- 少多邊形需要
- 假設你正確設置你的投影矩陣,你不能告訴你是在一個盒子裏(如果你弄錯了,你可能會看到一些失真)
- 它很容易使廣場空中包廂圖像(每個大小方向)
關於最後POIN t,通過創建90度的視場來配置渲染器以產生精確地適合於天空盒的光線追蹤的方形圖像是非常容易的,例如,的povray中你會使用類似以下內容:
camera {
right -x
up y
direction -z
location 0
}
我通常使用1024 * 1024或2048 * 2048平方米的紋理此。
我可以考慮使用天空球的一個很好的理由是,如果你使用某種程序紋理方法,需要在(近似)單位球面上的點生成。然而,我認爲這是一個非常特殊的情況,而且對於大多數遊戲應用程序來說不太可能是必需的。
爲天空盒製作紋理更容易。多邊形數量也會更小(但今天的卡片可以忽略不計)。
天空盒的唯一問題是立方體的邊緣在某些條件下可能是可見的。
另一個方面是有差別:
- 天空盒決不會與幾何碰撞 - 的圖像僅由另一個攝像機與用戶照相機一起旋轉,並且是「卡在盒」 投影
- 在skysphere的情況下,背景會直接呈現(播放器可以「碰到天空」)
良好的描述和OpenGL樣品是here。
天空盒的另一個優點是能夠爲它們使用立方體貼圖 - 另一方面球體貼圖不是硬件加速的(afaik)。
你可以渲染一個紋理的球體。這非常硬件加速。 – Arne 2016-12-02 18:29:43
你需要在這種情況下提供uvs,並轉換幾何。確保東西加速,但不是特別的。 有關立方體貼圖的特殊之處在於紋理座標系基於方向矢量 - 因此,您可以渲染四邊形並使用紋理座標的視圖方向 - 不需要真正的幾何圖形。 對球體做同樣的事情需要將這些方向轉換成別的東西 - 或者通過製作一些素材或在像素着色器中脫機 – jheriko 2016-12-05 14:39:13
好吧我從來沒有測試過只繪製一個四邊形並給出角落定向紋理座標。但並不總是保存多邊形意味着你獲得了性能。說實話,我認爲只要天空盒折騰,在所有性能方面都不重要。我仍然更喜歡天空盒,因爲它失真較少。 – Arne 2016-12-07 02:30:49
一個天空也非常酷,因爲你可以使用任何墨卡託投影地圖來紋理它,它根本沒有失真。
當您使用天空盒時,您很可能會使用盒子紋理。這種紋理也可以用於反光材料。在這裏使用Skyphere紋理並不容易。
- 1. OpenGL Skybox問題
- 2. Three.js Unculled SkyBox
- 3. 簡單程序skybox
- 4. OpenGL Skybox渲染錯誤
- 5. Skybox中的奇怪線條
- 6. OpenGL SkyBox沒有顯示
- 7. 通過透明對象看不到Skybox
- 8. 在DirectX9中沒有顯示Skybox紋理
- 9. skybox中的實時視頻渲染
- 10. Skybox旋轉與世界不同步
- 11. OpenGL Skybox無法正確渲染側面
- 12. 如何創建OpenGL ES 2.0 SkyBox?
- 13. 從遠程圖像編輯Cubemap Skybox
- 14. 渲染沒有3d庫的Skybox
- 15. XNA SkyBox WP7 Silverlight應用程序
- 16. SkyBox無法在Android上設置比例Cocos2d-x
- 17. Skybox與iOS上的OpenGL ES - NO GLKit + iOS 5.0
- 18. 如何更改Unity中Skybox材質的圖像?
- 19. 以編程方式更改Skybox材質(c#)
- 20. 我如何在Unity3D的運行時更新/更改photosphere/skybox?
- 21. vs vs 2008 vs vs 2010
- 22. Exec的VS ExecWait VS ExecShell VS nsExec :: Exec的VS nsExec :: ExecToLog VS nsExec :: ExecToStack VS ExecDos VS ExeCmd
- 23. FTP vs SFTP vs HDFS vs NTFS vs EXT2,EXT3
- 24. VS VS VS VS 11中的MVC測試
- 25. CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnimation(CALayer)
- 26. MobileNet VS SqueezeNet VS ResNet50 VS啓V3 VS VGG16
- 27. NTOSKRNL.EXE VS NTKRNLMP.EXE VS NTKRNLPA.EXE VS NTKRPAMP.EXE
- 28. VS 2008 vs VS 2008 Express
- 29. RailwayJS vs Geddy vs Express vs Socket.IO
- 30. .NET vs ASP.NET vs CLR vs ASP
關於多邊形的觀點是不真實的 - 使用着色器無論哪種方法都需要一個三角形作爲最低限度... – jheriko 2010-10-14 18:56:42
Interresting答案,但它不會說SkySphere與SkyBox相比有什麼優勢嗎?有沒有一些情況下更好?也許當你允許輪換? – Klaim 2010-10-14 19:22:23