最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity中對(duì)預(yù)制體烘焙光照貼圖,在其他Scene中使用或者動(dòng)態(tài)生成帶光照貼圖的預(yù)制體

2022-01-30 20:45 作者:TenderRain-  | 我要投稿

記錄個(gè)人開發(fā)筆記,如果有大佬有更好的方法或者覺得我這個(gè)方法哪里有問題歡迎指正!

首先說下為什么會(huì)弄預(yù)制體烘焙光照貼圖,因?yàn)轫?xiàng)目需求需要?jiǎng)討B(tài)生成一個(gè)房間的,因此是將房間弄成預(yù)制體,動(dòng)態(tài)生成就好了,這個(gè)很簡單,但是呢最后程序是在一體機(jī)中跑的,性能比較差,所有美術(shù)調(diào)好的效果后如果是實(shí)時(shí)光,性能開銷就比較大,烘焙呢又因?yàn)椴恍枰婚_始顯示而且必須在同一個(gè)scene中所有才去弄了這么個(gè)烘焙預(yù)制體光照貼圖。(既然是預(yù)制體烘焙,因此此方法也可以跨工程使用,所有有時(shí)候美術(shù)調(diào)效果時(shí)可以直接只烘焙一個(gè)預(yù)制體給到開發(fā)人員,不用再給開發(fā)人員整個(gè)場景了)

接下來直接說怎么操作:

先簡單的搭建了一個(gè)Plane和Cube再打了一個(gè)點(diǎn)光源

接下去,我們?cè)傩枰姹旱念A(yù)制體的最外層父節(jié)點(diǎn)上掛上一個(gè)PrefabLightmapsData的腳本(具體腳本內(nèi)容會(huì)在最后提供)

后面將我們需要烘焙光照貼圖的物體都勾上Static,讓他成為靜態(tài)物體,同時(shí)我們要點(diǎn)擊Static旁邊的小箭頭,取消Batching Static

當(dāng)然了,別忘了把我們的光(這邊是點(diǎn)光源)改成Baked

然后打開Lighting Setting一樣按照需求設(shè)置光照貼圖數(shù)據(jù)就行

但是接下來烘焙需要注意不再是點(diǎn)擊Lighting setting里的Generate Lighting按鈕烘焙了,再之前的PrefabLightmapsData腳本中提供了一個(gè)簡單的編輯器擴(kuò)展的烘焙按鈕,在最上方有個(gè)Tools->Bake Prefab Lightmaps的按鈕,我們點(diǎn)擊這個(gè)按鈕進(jìn)行烘焙


順便提一下,通過我們編輯器擴(kuò)展的按鈕烘焙的時(shí)候,烘焙進(jìn)度不在原來的引擎自帶的地方顯示了,而是在下方的任務(wù)欄上那個(gè)Unity圖標(biāo)上會(huì)有一個(gè)綠色的進(jìn)度

烘焙完成后,我們就可以在PrefabLightmapsData上的三個(gè)數(shù)組中看到這些模型和光照貼圖的數(shù)據(jù)了

接著我們可以創(chuàng)建一個(gè)新的Scene,然后把預(yù)制體拖進(jìn)去看下效果,下圖我們可以看到新的場景中是沒有任何光照燈的,但是看到的效果卻是有正常光照貼圖的效果,如果沒看到效果,因?yàn)槭窃贏wake中設(shè)置的,可以運(yùn)行后再看就會(huì)有效果了

到這里基本上預(yù)制體烘焙光照貼圖就已經(jīng)完成了,下面放上PrefabLightmapsData腳本的代碼,以及最后會(huì)寫幾點(diǎn)之前我使用時(shí)踩到過的幾個(gè)坑。

(腳本有更新,原先的腳本不支持地形的光照貼圖設(shè)置)

代碼就這么多,甚至可以說應(yīng)用的地方可以再優(yōu)化下,需要使用的可以更具自己的需求再進(jìn)一步優(yōu)化。

下面說下我使用時(shí)踩到的幾個(gè)坑:

1、因?yàn)槭穷A(yù)制體,而且我使用時(shí)是跨工程的,但是美術(shù)再烘焙時(shí)不清楚我們開發(fā)人員需要怎么擺放,就以自己擺放的烘焙了,到我手里的時(shí)候發(fā)現(xiàn)不能直接用需要轉(zhuǎn)個(gè)角度,但是呢一轉(zhuǎn)角度就出問題,比如下圖,我x一轉(zhuǎn)90度后圖中左邊紅框中的光照貼圖部分就變黑了

具體的我也沒去往深入的研究為什么,如果有大佬研究了可以寫在評(píng)論區(qū),這邊我就直接說我的解決方案,在烘焙前的Lightmapping Settings里有個(gè)Directional Mode的設(shè)置,默認(rèn)選擇的時(shí)Directional,表示有漫反射的,Non-Directional是關(guān)閉漫反射的烘焙,我們只需要選擇Non-Directional后烘焙就行,但是呢這樣烘焙出來的光照貼圖會(huì)缺少一張lightmap-dir的圖片,導(dǎo)致效果不好。

會(huì)缺少紅框中的這種光照貼圖

要怎么保證效果好旋轉(zhuǎn)后又不會(huì)出現(xiàn)問題,后面再說,先來說下我碰到的過的第二個(gè)問題,因?yàn)檫@個(gè)的解決方法和第二個(gè)問題的解決方法一致。

2、第二個(gè)問題呢我直接描述下,因?yàn)楝F(xiàn)在寫筆記時(shí)暫時(shí)沒碰到因此就沒有圖片看出現(xiàn)問題的效果了。出現(xiàn)的問題是烘培好預(yù)制體后放到新的工程或者新的場景中時(shí),所有文件都正常的,但是在場景中不管是運(yùn)行狀態(tài)還是沒運(yùn)行狀態(tài)預(yù)制體的貼圖都變成黑白的了。

具體原因我也沒有深入的查找,如果有大佬知道歡迎在評(píng)論區(qū)或者私信告知,謝謝!

我這里也直接說解決方案,我們直接托烘焙好的預(yù)制體雖然會(huì)把光照貼圖設(shè)置上去,但是在Lighting Setting中下圖這個(gè)位置,是沒有LightingDataAsset文件的,我們只需要在這個(gè)場景中(可以不放任何東西烘焙一個(gè)空的貼圖生成一個(gè)LightingDataAsset文件即可)然后在把烘焙好的預(yù)制體放到場景中,就不會(huì)出現(xiàn)黑白的情況了。

由于在最終的Scene會(huì)烘焙一個(gè)空的光照貼圖生成一個(gè)LightingDataAsset文件,就讓我產(chǎn)生了一個(gè)想法,在第一個(gè)問題中我們需要把Directional Mode設(shè)置成Non-Directional來避免第一個(gè)問題,那么我們是不是可以在最終Scene上烘焙的時(shí)候這么設(shè)置,然后烘焙預(yù)制體的時(shí)候還是選擇Directional來正常設(shè)置,這樣如果能成功不就能提高了預(yù)制體的烘焙效果,又能避免旋轉(zhuǎn)后出現(xiàn)問題了嗎。

然后我就開始了嘗試,先給空的場景設(shè)置Non-Directional后用PrefabLightmapsData腳本中提供的烘焙按鈕給空?qǐng)鼍昂姹毫藗€(gè)貼圖和LightingDataAsset

然后再將之前設(shè)置Directional烘焙出來的預(yù)制體放入場景中,再把X旋轉(zhuǎn)90度后我們可以看到做出紅框中的光照貼圖也不再變黑了。

好了本篇筆記就到這邊結(jié)束了,我使用的時(shí)候就遇到了這兩個(gè)坑,如果有人使用的時(shí)候還遇到其他坑,可以私信我或者評(píng)論區(qū)告知遇到什么坑怎么解決,如果沒解決也可以告知是什么坑,讓大家一起想想該怎么解決,一起進(jìn)步!

Unity中對(duì)預(yù)制體烘焙光照貼圖,在其他Scene中使用或者動(dòng)態(tài)生成帶光照貼圖的預(yù)制體的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
唐海县| 双江| 新昌县| 安仁县| 都昌县| 赣榆县| 科技| 寿阳县| 平乡县| 行唐县| 海淀区| 明星| 改则县| 邓州市| 临漳县| 手机| 沙河市| 阳山县| 龙山县| 平度市| 拉孜县| 北票市| 阿克苏市| 莒南县| 富蕴县| 瑞昌市| 兴国县| 湖州市| 黑河市| 陇川县| 新巴尔虎右旗| 重庆市| 万安县| 台安县| 时尚| 南郑县| 陵水| 安平县| 台山市| 彭州市| 丰城市|