聊聊Unity2018的LWRP和混合光照
0x00 前言
在這篇文章中,我們選擇了過去幾周Unity官方社群交流群以及UUG社群群中比較有代表性的幾個問題,總結在這裡和大家進行分享。主要涵蓋了** Scripting、Assetsbundle、Tilemap、Graphic、UGUI、Asset、Profiler 、App、 Shader、 Timeline、Lighting**等領域,其中會著重介紹一下LWRP和混合光照相關的話題。
同時,也歡迎大家加入我們這個討論乾貨的官方技術群,交流看法分享經驗。
Unity官方社群交流群:629212643
0x01 Scripting
Q:Unity2018.2新建一個專案,然後新建一個指令碼,開啟就提示這個,unity都沒有生成sln檔案,難道要設定哪兒?
A:首先檢視一下在Unity2018中建立新專案時使用的是Visual Studio 2017嗎?Unity2018不再支援Visual Studio 2015。 為了解決這個問題,請下載最新版本的Visual Studio 2017。此外,還可以使用Visual Studio Code,這是一個更快,更輕,適合Unity的指令碼編輯器。
0x02 Assetsbundle
Q:請問你們有遇到過從SVN上更新下來的同一個工程,不同的電腦打出來的AssetBundle大部分檔案的MD5和Unity自己的HASH值都不一樣的情況嗎?
A:有漏上傳meta檔案嗎?我們專案試過一次,有同事漏了上傳.meta檔案,然後其他同事更新下來時,由於沒有他的meta檔案,所以unity自動在本地生成,使得不同人從svn更新下來的生成了各自的meta檔案,然後一比對md5就空了。meta檔案是unity記錄GUID的,不一樣的話,在AssetBundle那裡計算MD5好像會有問題。(廣州-木頭蛇杖
0x03 Tilemap
Q:tilemap 在繪製的時候,在場景中,一塊tile 沒法填充完整一個場景中的單位塊。請問是怎麼回事?
A1:是我切的尺寸,一塊 是 64 * 64。sprite 的設定 pixels oer unit 我設定的100,設定成 64 就好了。
(成都—mid)
A2:除了檢查Sprite的Pixels Per Unit屬性之外,還可以檢視一下TileMap元件的Scale屬性是否為1,這裡的設定也有可能會導致tile和場景中單位塊不匹配。
0x04 Graphic
Q:@慕容小匹夫 這個反射怎麼改它的範圍,它們對不上。多謝。
A:這是由於不正確的取樣造成的問題。如果你使用的是reflect probe,那麼針對室內或小範圍內的場景反射要勾選上box projection。這是因為對應於同一個Reflection Probe,不同位置的物體應該具有不同的反射效果。一般的Cubemap比較適合於模擬室外大場景物體的反射,室內小範圍如果用cubemap可能會錯亂。勾選box projection可以用來修正這種錯誤。
0x05 UGUI
Q:ugui字型在編輯器中正常顯示,但是打包pc執行就無法顯示,有沒有人遇到過這種情況的?編輯器無論從resources載入,還是從AssetBundle載入都是正常的,用什麼字型也都是正常的,但是打包pc後怎麼都無法顯示。
A:缺少unity內建的UI部分的shader,我下載瞭然後包含到Graphics裡面就可以了。(北京-兔子2號)
0x06 Asset
Q:求助,打包的時候瘋狂的輸出這個,也看不出來是哪個檔案。
A:看上去有點像PVRTexTool的報錯。Unity會呼叫PVRTexTool 的命令列工具壓縮貼圖,因此我們可以將報錯檔案的範圍縮小到貼圖資源。
首先可以排查一下是否有pvrtc格式的壓縮紋理,你也可以看看你們的etc2_x的紋理格式,對工程中的紋理做一個排除法。
相關bug的討論可以檢視imgtec社群中相關的主題:
https://forums.imgtec.com/t/pvrtextoolcli-bug-encoding-etc2-rgb-a1-etc2-rgb-a1-ubn-srgb/2365
0x07 Profiler
Q:在windows上檢視Unity的profiler,其中這項“total system memory usage ”一直無限增長 正常嗎?
A:看上去不正常。這個值是利用了windows 上的PROCESS_MEMORY_COUNTERS_EX來獲取的。你可以看一看你專案中Reserved Total這些有沒有持續增長。如果都在漲的話,就優化一下吧。
0x08 App
Q1:我現在想做一個載入的視窗,載入完了再顯示遊戲內容。不過希望載入的視窗沒有邊框(沒有關閉最小化之類的)。現在呼叫Win32 API去設定,總是會看到先有一個有邊框的,然後迅速到沒邊框的。就是有個跳轉的過程,看的不爽。
A:可以呼叫SetWindowLong。程式碼如下:
如果還有跳轉的話,可以考慮在程式啟動引數加popupwindow。(北京-兔子2號)
Q2:
A:這個問題通常是由外掛導致的。可以在專案中檢查一下是否有重複的jar,如果有重複的則刪除掉。 如果不想一個一個查詢,也可以考慮刪除專案的“plugins”資料夾,然後重新匯入所有外掛。
0x09 Shader
Q:Shader中使用“UsePass”引用同一個Shader的另外一個SubShader的Pass會導致崩潰,這個是Bug還是就是不能這麼寫的?我使用的版本是2017.4.6f1。例如這樣:
A:UsePass主要是用來實現不同的shader中的程式碼複用的,檢視文件的話也可以看到相關的描述:
Some of the shaders could reuse existing passes from other shaders, reducing code duplication
所以不要用UsePass引用同一個Shader中的Pass。
0xA Timeline
Q:想請教各位老師們一個關於timeline的問題,timeline中調的位置為什麼執行後播放會發生偏移呢?
A:你的模型上的Animator元件有Controller嗎?你可以把把Animator上的Controller去掉,完全由Timeline控制動作。因為在執行階段它的動畫是增量影響上層的,在編輯階段又是覆蓋上層資料的。所以可能會不一樣。
0xB Lighting
Q:這是預設管線的light probe,可以看到動態物體進入陰影範圍變暗了。
這是的LWRP的效果,烘焙後light prob陰影不會對動態物體產生任何影響
烘焙模式是 Mix subtractive,燈光一個mixed模式的Directional light,請教一下,是否lwrp的subtractive烘焙模式 會使light probe忽略陰影的影響?
A:這個不是lightprobe的原因,而是目前lwrp對mixed light的支援還不完善。對mixed light更多的支援還在開發中。在lwrp管線下,如果不使用mixed,只使用bake燈光, light probe可以正確的作用於動態物體的。
上圖是傳統渲染流水線和LWRP在光照模式這項功能上的對比。
完整的對比,可以參考這份文件:
Pipeline Feature Comparison:https://docs.google.com/document/d/1MgoycUhS9xQKXxbTy1yHt7OCByI10rds3TyRBCSlFmg/edit
0xC 後記
好了,以上就是想和大家分享的幾個在群裡討論的小問題。
再次,歡迎大家加入我們這個討論乾貨的官方技術群,交流分享呀。
Unity官方社群交流群:629212643
相關推薦
聊聊Unity2018的LWRP和混合光照
0x00 前言 在這篇文章中,我們選擇了過去幾周Unity官方社群交流群以及UUG社群群中比較有代表性的幾個問題,總結在這裡和大家進行分享。主要涵蓋了** Scripting、Assetsbundle、Tilemap、Graphic、UGUI、Asset、Profiler 、App、 Shader、 Time
從一個shader剖析unity混合光照和pbr
從unity5.6自帶的程式碼來看。 standard shader綜論 下面是standard.shader的面板 shader結構圖: 兩個subShader subShader的區別,先看兩個pass的區別: 然
聊聊HTTPS和SSL/TLS協議
常用 電信 hellip 以及 設有 可擴展 地址 玩意兒 winrar 要說清楚 HTTPS 協議的實現原理,至少需要如下幾個背景知識。 大致了解幾個基本術語(HTTPS、SSL、TLS)的含義 大致了解 HTTP 和 TCP 的關系(尤其是“短連接&
簡單聊聊SOA和微服務
利用 java res content 視野 分布式數據庫 而不是 frame 分庫分表 轉自:https://juejin.im/post/592f87feb123db0064e5ef7c (2017-06) 簡單聊聊SOA和微服務 架構設計中的樸素主義
weex 項目開發(五)自定義 過濾函數 和 混合 及 自定義 Header 組件
定義 blog weex top ber slice ear notice earch 1.自定義 過濾函數 src / filters / index.js /** * 自定義 過濾函數 */ export function host (url) { if (
聊聊Flume和Logstash的那些事兒
改名 並不是 目前 關註 bfc 直接 硬盤 總結 get 轉載:http://blog.csdn.net/jek123456/article/details/65658790 在某個Logstash的場景下,我產生了為什麽不能用Flume代替Logstash的疑問
Spring之導入和混合配置
很多 方式 另一個 註解 lan .com 以及 自動 裝配 在典型的Spring應用中,我們可能會同時使用自動化和顯式配置。即便你更喜歡通過JavaConfig實現顯式配置,但有的時候XML卻是最佳的方案。幸好在Spring中,這些配置方案都不是互斥的。你盡可以將Ja
elasticsearch 支持中英文搜索和混合搜索
acc emc data str asi all 修改 tty struct 環境: ubuntu16.04 安裝: elasticsearch 5.22 1. 第一步,安裝java apt-get install default-jre apt-get install d
opencv之光照補償和去除光照
本部落格借用了不少其他部落格,相當於知識整理 一、光照補償 1.直方圖均衡化 #include "stdafx.h" #include<opencv2/opencv.hpp> #include<iostream> using namespac
康士伯選中Leclanché為快速發展的電動和混合動力船舶業提供儲能解決方案
瑞士伊韋爾東和挪威孔斯貝格--(美國商業資訊)--全球領先的海事技術公司康士伯海事(Kongsberg Maritime)已選擇國際領先的儲能解決方案公司之一Leclanché,作為其電池合作伙伴和定製船舶儲能解決方案供應商。此次合作將推進康士伯的新一代混合動力解決方案,該解決方案將利用尖端的自
objdump 和 tcpdump 和混合程式設計
一、objdump 同樣適用於arm-linux-objdump 1、用objdump檢視程式碼的程式碼段和資料段等 參考地址:https://www.cnblogs.com/jrglinux/p/6942476.html 2、用objdump反彙編 參考地址:https:/
spring學習總結——裝配Bean學習四(匯入和混合配置)
情景:在典型的Spring應用中,我們可能會同時使用自動化和顯式配置(JavaConfig)或者XML配置,幸好在Spring中,這些配置方案都不是互斥的。你儘可以將JavaConfig的元件掃描和自動裝配和/或XML配置混合在一起。 關於混合配置,第一件需要了解的事情就是在自動裝配時,它並不在意要裝配
雲端計算的“雲”,除了公有云、私有云和混合雲,雲端計算還有這些細分領域
雲端計算的“雲”,源於繪製網際網路圖表時的一個習慣——將其畫成一朵雲。最受認同的關於雲端計算含義的解釋是,在一個商業供應者的資料中心上通過網際網路遠端執行工作負載——也就是所謂的“公有云”模式。AWS、Azure、谷歌雲等平臺都是這一雲端計算概念的例證。 但是,雲端計算還有一個更精確的解釋:資料中心資源的虛
Mob開發者沙龍 接著聊聊SDK和App的那點事兒
數字網路化的時代,手機,已成為社會生活的剛需,而App應用則為世界開啟新的大門,增添無數奇妙的色彩,改變人們的生活方式。如今,各種App應用層出不窮,使用者增長和流量變現的手段隨著網際網路的不斷髮展,在如此激烈的形態下,如何成為獨角獸?9月1日,Mob將結合SDK的產品,在開
聊聊炒股和交易有什麼不同?
各位投資朋友大家好,歡迎收聽《搶財貓股票課堂》,我是你們的老朋友波哥。 今天我們聊聊炒股和交易有什麼不同,我們經常聽到炒股這個詞,股民經常說自己炒股就是在買賣股票賺取差價,那麼伴隨著股價的波動就是追漲殺跌; 交易這個詞很少有人會和炒股關聯起來,它給人感覺很正式,很專業
原生APP和混合APP、web APP有什麼區別?
1.原生APP 原生APP是什麼?原生APP就是利用Android、iOS平臺官方的開發語言、開發類庫、工具進行開發。比如安卓的java語言,iOS的object-c 語言。在應用效能上和互動體驗上應該是最好的。 優點: 1、可訪問手機所有功能、可實現功能最齊全; 2
聊聊MVC和模組化以及MVVM和元件化
原文連結 小寒的部落格,帶你理解更深的世界 面向物件,模組化和MVC 面向物件是指把寫程式對映到現實生活,從而一來邏輯性更強,更容易寫好程式碼,二來程式碼很貼切,通俗易懂,更被人理解,三來更加容易拓展和管理程式碼。 我們的程式碼設計應該有很多人,事物和場景,人是管理員,事物是資料庫,場景就是業務。 &
WebRTC原生開發和混合開發優缺點分析對比
WebRTC的出現,讓企業快速開發出一個支援全平臺的音視訊程式成為可能。在WebRTC之前,企業想要開發出一個全平臺的音視訊程式,難度,工作量非常大。使用WebRTC後,音視訊程式中一些通用的模組比如
聊聊map和vector的迭代器失效問題(某公司招聘筆試試題)
當刪除一個STL容器(比如map, vector)中的某個元素時, 會引起迭代器失效, 所以, 我們務必提高警惕。 某次筆試, 我遇到這樣一個題目: 刪除map<int, int>中value為5的倍數的元素。 該題看起來很自然很簡單, 實則有
繼續聊聊MVVM和元件化
MVVM已經是更多前端的標配 上次說到MVVM,MVVM其實是MVC的變種,它讓把C分配給了V和VM,然後就出現了元件和store,這樣寫可以讓檢視更好的互動,讓資料更好的服務。而MVVM的創始人John Gossman也說了 實現MVVM的開銷對於簡單的UI操作是“過度的”。他說,