創作內容

7 GP

BehindTheSoundVR | 大學專題心路歷程 #2 | 優化心得分享

作者:FunS│2020-03-14 13:14:48│巴幣:14│人氣:487

記錄我在大學開發兩年間的心路歷程,分享遇到的困難與解決方式
其中有錯誤觀念或存在著更好的方式解決,請多務必多多指教



>BehindTheSoundVR | 大學專題心路歷程 #2 | 優化心得分享<



  我們團隊是由一位程式與三位美術組成,我在團隊內主要擔任程式撰寫編輯Word 、PowerPoint企劃書等文書處理,同時支援3D建模宣傳等工作。

  從大四開始每天沒課就是到學校專題教室報到,從早八到晚上七點,回到宿舍也是持續進行,以此紀念我新鮮的肝\|/。另外新一代改辦線上展了,有點難過,VR要怎麼線上展QuQ


四年級上下學期 2019 / 07 ~ 2020 / 06



  從四年級開始就開始隨手記錄每天的進度流水帳,雖然清單內還存在有許多錯誤觀念,但回頭看菜菜自己也是滿可愛就不修正了,清單越拉越長看著也是非常有趣,大家可以嘗試看看XD。但隨著完成度越高也逐漸停止紀錄了。



HDRP 轉回 LWRP

  當初判定HDRP因為效能與各種問題以為是不可行了。所以又花了一天在轉回LWRP上。日後也發現LWRP有SRP batcher對VR平台是非常友善的,據官方說法依據專案狀況可以提升 1.2 ~ 4倍 的效能。

  為了解決限制實時光數量的問題,花了許多時間找尋解決方法,找到了Lightmapping花上許多時間學習如何烘焙光照貼圖



優化 - Lightmapping

  Lightmapping是用於靜態物件,預先算好靜態光的光照貼圖,避免一堆實時光,節省效能


  接續上學期製作出超蠢的「尺寸龐大的地圖模型檔」,(1)單一物件過大造成光照貼圖就算是開到了2048*2048還是 (2)強迫地圖Lightmap UV縮小完整塞下Lightmap Size,等於是藉由 (3)犧牲品質「Scale in Lightmaps」解決。

  於是我們將地圖拆解改用單片Quad來組合成地圖,利用Unity的點對齊工具將牆壁對齊的完美無缺沒有縫隙。以為這樣就解決了嗎?不、又有新的問題產生了。


  由於一片牆壁是由許多平面組合成而不是一體的,所以Unity在自動處理你的Lightmap UV時,會將不同物件的UV按照物件設定的Padding來產生間隔(2),導致運算出的光照貼圖接合處結果「不完美」(1),只能利用提高採樣換取品質(增加烘焙時間)、或是將Lightmap Size往上調升,降低接合處「不完美」的感覺

  其中還有牆壁莫名其妙漏光(Light Bleed)的問題,嘗試將物件Padding數值調高即可,要是還是不能解決可以從Mesh Renderer 調高Scale in Lightmaps試試。

  最後我們想出兩個解決辦法,第一是利用Unity合併Mesh插件來預先合併物件,例如將一片牆壁包含的所有Quad結合起來,再去做烘焙計算。千萬不要把整張地圖的平面都結合起來,不然又會回到第一個Lightmap UV塞不下的問題了。



ProBuilder

  第二是利用Unity非常好用的插件ProBuilder,它可以在Unity內創造物件,再對物件進行UV與點線面編輯,完美的解決Lightmap UV不連續的問題,而且還可以隨意在Unity內更改房間位置與大小。



化 - Light Probe Group

  上述提到的Baked Light只用於光烘焙,造成許多動態物體無法預先計算光源,因此有可能會發生玩家到了明亮的室內玩家卻還是黑的情況。因此就需要光照探針事先計算周圍區域亮度,再將亮度數值傳遞給物件,非常節省效能




優化 - Reflection Probe

  待補。



優化 - Occlusion Static 遮蔽剔除

  一般攝影機只會剔除掉FOV範圍以外的物件不進行渲染,而範圍內所有物件都會渲染過一次。透過Occlusion Static事先計算,可以剔除在FOV內但被遮蔽的物件。

  設定上滿簡單的,Occluder Static是遮蔽別人的物件,Occludee Static是會被遮蔽的物件。靜態小物件(例如桌子,椅子,電燈)就設定Occludee Static,靜態大型物件(例如牆壁,天花板,地板)就設定Occluder Static。



VR物件預覽 Render Texture

  一個自己製作出來很適合VR展示道具很棒的效果,待補。



Shader Graph

  篇幅應該很長,這篇文章主要只會分享再專題內實作的Shader,待補。

  小抱怨一下,為什麼Shader Graph是不能Custom ZTest ZWrite的,雖然有插件可以輔助。Shader Transparent ZWrite預設值是Off,看半透明物件幾乎看不出正確的正反面,當初知識量不足,也不知道解決辦法,折騰了我一段時間。

  分享一下如何修改ZWrite。



專題結束 沒有後續QQ
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4716403
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:虛擬實境

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

7喜歡★love30523 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:BehindTheSou... 後一篇:【置頂】2021 の 自...

追蹤私訊切換新版閱覽

作品資料夾

hyzgdivina喜歡虹咲的LLer
我的小屋裡有很多又香又甜的Hoenn繪師虹咲漫畫翻譯喔!歡迎LoveLiver來我的小屋裡坐坐~看更多我要大聲說昨天23:17


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】