VR製做的規格分析

由於UE4的演示資源更豐富一些,我這邊把UE4的有表明性的演示都跑了一遍,同時也經過Rift確認效果,和裏面的資源製做方式。app

 
首先,UE4是基於物理渲染的引擎,大部分都是偏向圖像真實的。使用的材質和貼圖細節也更多一些。在PC上的品質要比Unity好,性能應該也要比Unity費一些,因此很適合做VR產品的質量和效率標。
 
這裏先列出本身的總結,而後再結合每一個演示作一些具體分析。這些只是針對PC的高品質製做:
 
1)渲染風格方面,VR也能夠做出基於物理渲染的效果,只要你能貼圖和光照要遵照物理法則,也能夠偏卡通一些的。
2)VR也可使用PBR的金屬度/鏡面顏色,法線貼圖,粗糙值等,但在Unity5上,你須要在金屬度/ 鏡面顏色的工做流中選擇一種。UE4爲了效率考慮,最好也能選擇其中一種,而不是兩個同時使用
3)粒子若是是要和視覺交互的,就不能用基於Billboard生成,而是要作成基於Mesh的粒子
4)Normal Map在VR中仍是能夠看出凹凸感的,並不像文檔中介紹的那樣沒有做用,可是PC上使用POM(視差映射貼圖)和Tessellation(表面細分)技術能夠做出 比Normal Map 更高的細節。
5)PBR的Specular Aliasing的問題,會被VR更加放大,須要使用能夠支持Specular Anti-Aliasing的技術才 能夠(好比Temporal AA)。
6)VR的分辨率比較小,爲了減小鋸齒感,儘可能避免一些使用alpha test製做的效果。
7)UI和互動的製做也很重要,這部分Unity和UE4上缺乏這方面的實例。
8)調試方面,UE4自帶的命令行工具對性能分析頗有幫助,這個Unity本身沒有那麼全面的分析工具,須要本身實現和改造。
9)性能問題的優化問題,最好能保證75FPS
 
接下來對這些問題逐一闡述。
 

1)渲染風格 基於物理(PBR)或者卡通風格

     PBR我翻譯和分享的資料裏應該有不少了,這裏只作一個簡單介紹,PBR大概能夠分爲材質着色(Material Shading),光照(Lighting),後處理特效(Camera Effect)3部分,UE4和U3D都有PBR材質着色支持,但光照和後處理部分性能和效果對VR實現壓力仍是過大了。現階段的PBR,主要仍是靠基於微平面的BRDF,以及IBL,經過粗糙度來增長效果。動態光源和物理鏡頭由於VR性能的緣故儘可能少用。
    
    Order 1886的圖釋,只有材質是PBR的
         
 
    最近展現的VR項目裏,真正採用PBR的並很少,大可能是卡通,或者是着色模型簡單的,若是在品質要出彩的話,確實是一個突破點。
 
    PBR風格
    
 
    卡通風格的場景
    
    
 

2)VR的美術製做管線

    美術管線方面,VR和普通並無太多特別的,卡通的沿用卡通的就能夠,PBR的,美術製做時有必定的PBR管線意識,除了須要繪製粗糙度的貼圖外,還須要對金屬和非金屬的顏色有必定的瞭解,而從節省資源和效率考慮,在Metalic或Specular的製做流程中選擇一個就能夠了
 
    以下圖所示,Metal的美術管線和Specular相比,貼圖佔用更小,對美術師製做起來也更直觀和簡單,顏色都繪製在base color上,而後只須要用Metallic的貼圖標識出那些是金屬和非金屬,着色模型就會自動的來肯定Diffuse和Specular的顏色。
 
    而 Specular的流水線,須要美術師須要有意識的把金屬的顏色繪製到Specular上。經過Diffuse和Specular的顏色,來區分金屬和非金屬。
    
 
 

3)凹凸細節的製做

UE4的官網提到,由於要左右眼分別渲染的緣故,對視覺依賴的貼圖效果,如Normal Map在VR上會被「平坦化」,但實際從UE4的一些演示上看,Normal Map的效果仍是有的,只是沒有普通PC那麼明顯,同時,Directx11的POM(Parallax Occlusion Mapping)和 Tessellation,能夠起到比Normal Map更好的效果。這些在Crytek的一些遊戲和演示中都很常見。
 
 下圖是UE4的VR演示,ShowDown中的機器人Boss,從下面的材質看,也使用到了Normal 
 
 
    
 
 
下面是Crytek的POM和TS的效果對比,在幾何體細節的增長上很明顯。
 
 
 
 
 
POM通常能夠用來作牆面和地板等平面的凹凸,而Tessellation是則是能夠利用Directx11的TS製做各類模型的表面細分。POM製做起來相對簡單,相似Bitmap2Material的工具也能做出不錯的凹凸效果。

4)粒子特效

傳統的Billboard粒子都是一個或大量的板型多邊形朝向玩家視點的方向來模擬出效果,而VR的話,一個是雙眼致使Billboard出現誤差,另外就是當玩家處在粒子附近晃動頭盔瀏覽時,Billboard就會被看出破綻
 
Showdown中的導彈火焰的軌跡和爆破碎片,由於軌跡和破片是穿插在玩家視點的前進路線上,玩家能夠在正面或者低頭和回頭觀看,因此都是用網格來製做的。
 

5)Specular Aliasing的問題

Specualar  Aliasing是PBR的Specular的高頻部分在較遠處由於採樣問題致使,表現就是物體邊緣的高光會跟根據視角移動「晃動」現象。
 

 
左圖是關閉了Specular AA的效果,右邊是打開的,Specular Aliasing在左圖運動時會更加明顯。因此須要SMAA或Temproal AA這類對支持( subpixel reconstruction AA)的後處理。不過這樣就增長了對GPU的消耗。
 

6)Alpha Test AA

BlackSmtih這Demo裏抖動至關厲害。其中緣由,一個是Unity默認的FXAA只有對幾何體的鋸齒有效果,對應像素的走樣問題並不能很好的對應。下圖中遠處的場景抖動就很是厲害。
 
通常渲染植物都是使用貼圖,而後用alpha test來做出植物的邊緣,因爲分辨率比較小,這種鋸齒感在VR裏也會被放大。
 

7)UI和互動的製做

UI方面,U3D和UE4自帶的3DUI在表現力上和Scaleform比仍是有很大差距的。若是要製做出科技感強的界面,仍是要手動定製一些功能。
 
 

8)調試和性能分析

unity的分析主要是靠Profile,調試時須要拿下頭戴設備,在Editor調整後,再用設備來確認。

 
UE4除了有分析工具外,還能夠直接在遊戲中使用命令行工具顯示各類性能參數,以及各類顯示特性的參數設置,更方便判斷瓶頸。Unity仍是須要本身在編輯器裏設置,或者修改和擴展本身的設置插件。
 

8)性能問題

爲了避免產生眩暈感和流暢,UE4建議在Rift DK2能夠維持在75FPS,那麼最低硬件配置也是GTX960。在個人GTX660上,UE4的VR專用演示大概是45FPS左右,其餘的大概30FPS左右。這個一個和UE4自己的優化不足有關,另外也是UE4演示裏仍是使用了高品質材質和特效的緣故。UE4的性能和製做規格對Unity開發仍是能夠起到參考做用。
 

附錄:

最後是UE4自帶的兩個VR專用的演示,Showdown和CouchKnights的一些特性
 
場景的平均Draw Call爲600
 
靜態物體對象的多邊形數50w~70w,骨骼動畫的多邊形數全屏爲30w~50w左右
 
若是是VR的話,UE4的Draw Call都要翻倍,繪製的多邊形數量天然也翻倍了。實現方式上,這點和Unity是不同的。

靜態場景

大部分的靜態場景,近處的房屋和地面等等都是標準PBR材質,有Roughness和Normal Map,遠景的房屋沒有使用Normal Map,地面使用了bump offset來模擬POM的效果。
配合Local Cubemap(UE4裏叫ReflectionCapture)作出來地面上水窪的反射效果。
 

動態物體

除了玩家外,場景裏只有士兵和敵方Boss兩種角色。面數爲6w和10w面。一個角色都有7,8種材質。

光影

場景沒有使用任何動態光源,都是預先烘培的光照貼圖(Lightmap)和Light Probe(UE4裏叫Lightmass)
 
角色動態陰影只是一個腳底下的貼片來Fake的。

粒子特效

車的爆炸特效,是在一個作了高細分( tesselated )的球體上加入了世界空間的噪聲來實現
 
導彈的軌跡也細分幾何體。沿着一個樣條曲線來運動
相關文章
相關標籤/搜索