Unity3D渲染系列之SkyBox天空盒
好幾周沒寫博客了,這幾周要不是回家要不就是有好久不見的朋友過來看自己。回家、有朋友過來看自己的確很開心,但是幾周下來自己變得懶惰了,要放縱自己的確是很容易的一件事。就像布爾費墨說“旅游是件很廉價的事”一樣,放縱自己也是很廉價的,只要你想,立馬就能實現(xiàn)。永遠不要放縱自己!
說了這么多,現(xiàn)在進入主題吧。接下來我會寫Unity3D渲染相關(guān)的一個系列教程。教程參考了擅碼網(wǎng)猴哥的《Unity3D虛擬現(xiàn)實(VR)之渲染基礎(chǔ)篇》,當(dāng)時看這個教程還是兩年前,這個教程對自己的幫助很大,大大加深了自己對Unity3D渲染的認(rèn)識,推薦給大家。
接下來,正式進入天空盒。
1.天空盒是什么
(嗯,剛剛中斷了,去看了《哪吒之魔童降世》,國產(chǎn)動畫電影也能做到國外那種水準(zhǔn)了,啥時候自己用Unity3D也能渲染出那種作品的話就牛逼了,哈哈。繼續(xù)吧。)
天空盒子(Skybox)實質(zhì)上是一個立方體紋理,如果不知到什么立方體紋理,別急,后面會告訴你。天空盒有什么作用呢?作用就是給場景一個大的背景,當(dāng)視野沒被物體擋住時,你所看到的就是天空盒,另外還有個作用是給物體添加一點光(這一點本片文后面部分會專門講解)。
Unity3D新建一個場景的話,會帶有一個默認(rèn)天空盒。見下圖。看到的地平線、灰色、藍色都是天空盒。
2.如何設(shè)置天空盒
按照以下路徑打開LightingSetting面板。
Lighting設(shè)置面板如下。圖中勾選的位置即是天空盒的位置。以后這個面板會專門講解,這里只需知道天空盒在哪兒設(shè)置即可。
這里你可以刪除也可以設(shè)置為自定義的天空盒。
3.如何制作天空盒
首先創(chuàng)建一個材質(zhì)球,然后設(shè)置Shder如下。Skybox的Shader選擇哪一個(如選擇6 Sided還是 Cubemap要根據(jù)你的紋理來定,6 Sided需要前后左右上下6張圖,Cubemap只需要一張圖但要求這張圖是HDR模式的,什么是HDR,這里不說,涉及的東西太多了,聰明的你若想知道一定知道如何了解,不懂也不要緊,知道圖要這樣做就行了)。
3.1 6 Sided天空盒
我們先選擇6 Sided這個Shader,6個面的天空盒的素材可從這里下載。
然后上下左右前后分別指定上對應(yīng)的圖就行了。
然后直接將做好的天空盒材質(zhì)球拖拽到Scene視圖中或者在LightingSetting面板處設(shè)置。
設(shè)置完后立馬能看到效果。
3.2?HDR天空盒
另外新建一個材質(zhì)球,設(shè)置Shader為Cubemap。再重復(fù)一次,這種Shader只需要一張圖,但必須保證該圖是HDR模式的。(Unity3D官方也推薦使用這種方式制作天空盒)
導(dǎo)入一張HDR圖片,然后在該圖片的紋理設(shè)置面板處,將紋理類型設(shè)置為Cube,如圖。(免費的HDR天空盒)
設(shè)置完畢后將該紋理賦給之前新建的天空盒材質(zhì)球,再拖到Scene視圖中就可以看到效果。
設(shè)置完的效果,是不是比默認(rèn)天空盒漂亮很多呢。
4.天空盒的光源作用(環(huán)境光)
天空盒除了用來作為背景外還有一個作用就是充當(dāng)光源(環(huán)境光)。下面來看看具體是怎么回事。
現(xiàn)在新建一個場景,在此場景內(nèi)新建一個Cube物體,然后刪除場景中默認(rèn)帶有的平行光。
現(xiàn)在場景中沒有任何一個光源了,但是Cube物體仍然看得清楚,不是黑的。在現(xiàn)實世界,如果一個物體沒有燈(包括太陽)照到,我們?nèi)匀荒芸匆娝?#xff0c;原因就是有環(huán)境光。(ps:標(biāo)準(zhǔn)光照模型描述一個物體的光照強度=環(huán)境光+漫反射+高光反射+自發(fā)光)
在Unity3D中這個環(huán)境光就來自于場景的天空盒。我們試著把默認(rèn)天空盒刪除掉。刪除掉之后下面會添加一個設(shè)置環(huán)境顏色的選項,此時這個環(huán)境顏色就是環(huán)境光,因為沒天空盒了就用一種單一的顏色來指定,我們把它設(shè)置為全黑(就是沒有任何環(huán)境光了)。
?
這時我們再看Scene視圖,Cube是不是全黑啦?!
這就是天空盒的光源作用。
5.天空盒Shader其他參數(shù)
Tint Color? 用來設(shè)置天空的顏色,會和圖片的顏色疊加
Exposure? 曝光強度,值越大,天空盒越亮(環(huán)境光越強)
Rotation? ? 旋轉(zhuǎn)角度,可以用來模擬太陽的位置(僅僅是用來展示太陽的位置,太陽光用平行光來模擬與天空盒無關(guān),讓玩家認(rèn)為太陽光就是從那個太陽所在的方向射過來的)
大家可以試著調(diào)整這幾個參數(shù),看看效果。
?
一不小心三個小時就過去了,時間過得真快啊。希望自己能朝著自己心中的星辰大海一步一步走下去。加油吧。
項目上傳到GitHub上了,見04.Rendering-1-Skybox,下次再會!
總結(jié)
以上是生活随笔為你收集整理的Unity3D渲染系列之SkyBox天空盒的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux线程全解
- 下一篇: svn admin 详细介绍