Unity 之 天空盒

陈文艳 2024-07-13 04:00 16次浏览 0 条评论 taohigo.com

今天介紹下天空盒的相關內容,如果熟悉的同學請跳過,這塊比較簡單

一、如何創建天空盒

要創建新的天空盒材質,需執行以下操作:

1、從菜單欄中,單擊 Assets > Create > Material。

2、在 Shader 下拉選單中,單擊 Skybox,然後單擊要使用的天空盒著色器。

3、現在可以填寫材質的屬性以設置天空盒。材質的可用屬性取決於材質使用的天空盒著色器。

二、怎麼設置天空盒

創建天空盒材質後,Unity 可將其用於在場景中產生環境光照。

1、打開 Lighting 窗口(菜單:Window > Rendering > Lighting Settings)。

2、將所選天空盒分配給 Skybox Material 屬性。

3、單擊 Source 下拉選單,然後從列表中單擊 Skybox。

如果隻想在特定攝像機的背景中繪制天空盒,請使用 Skybox 組件。將此組件附加到帶有攝像機的遊戲對象時,它會覆蓋攝像機繪制的天空盒。要附加並設置 Skybox 組件,需執行以下操作:

1、選擇場景中的一個攝像機,然後在 Inspector 窗口中進行查看。

2、單擊 Add Component > Rendering > Skybox。

3、在 Skybox 組件中,將天空盒材質分配給 Custom Skybox 屬性。

三、天空盒的種類

Unity 提供瞭多個天空盒著色器供使用。每個著色器使用一組不同的屬性和生成技術。每個著色器都屬於以下兩類之一:

1、紋理化:從一個或多個紋理生成一個天空盒。源紋理代表各個方向的背景視圖。此類別中的天空盒著色器有:

6 面 (6 Sided)。

立方體貼圖 (Cubemap)。

全景 (Panoramic)。

2、程序化:不使用紋理,而是使用材質上的屬性來生成天空盒。此類別中的天空盒著色器有:程序化 (Procedural)。

四、如何制作天空盒所需的6張圖呢?

1、上網找素材

2、用3dMax來生成

3、利用Stellarium制作天空盒

4、用Terragen 4 制作

如果有其他制作方式,歡迎留言指教

五、天空盒的底層原理是怎樣的?

假設我們站在世界上的某一點,那我們看到的世界是什麼樣的?

上圖黑色小圓的圓心是我們所處的位置,淡黃色的線是投影線。世間萬物的光輝,最終都因投影到瞭我們的視野內而為我們所感知。如果我們的視野是一個球面,對這個球面貼圖便能夠實現我們想要的天空盒。

如何進行對球面的貼圖?投影當然是選擇之一,其方法也有很多,常見的有墨卡托投影、等距離投影等等。但對於遊戲開發而言,我們有±X、±Y、±Z三個軸六個方向,我們是否能將這個圓劃分為六個面,分別進行貼圖呢?

於是天空盒誕生瞭,其劃分方法是,將一個立方體和球體,以體心和球心重疊的方法放置,連接球心到立方體的8個頂點,與球面相交。將對應點以原立方體棱邊的形式連接:

形成的球面幾何體被稱為球面立方體:

對外面這個大立方體進行貼圖,貼圖中每個像素點經過與圓心的連邊映射到球面上,形成我們視野的貼圖。

這樣我們就可以得到如下的天空盒:

參考鏈接:

天空 – Unity 手冊

劉冬煜:【shader篇】天體系統(1) 系外恒星與天空盒

劉冬煜:【美工與材質篇】做一個自己的天空盒吧!