Unity2018研究——HDRP初探

作者:繁華如夢
前言
在Unity2018版本,Unity為了提高引擎的畫面表現(xiàn),推出了High Definition Render Pipeline 高清晰渲染管線,簡稱HDRP。
本文主要是帶大家簡單了解一下新的特性,以及如何使用HDRP來完成自己想要的效果。話不多說,直接開始吧。
創(chuàng)建工程
創(chuàng)建HDRP的工程有2種方式,一是在原來的工程基礎上升級工程。2是重新創(chuàng)建新的工程。由于HDRP現(xiàn)在仍處于預覽階段,此處不建議直接在原先的工程上升級。而且,一旦在原來的工程上進行升級,舊版的自定義的著色器將不能夠使用。雖然HDRP給我們提供了將舊版材質(zhì)升級為高清材質(zhì)的功能,但是,對于使用自定義著色器的材質(zhì),此功能是不具有效果的。此處,我們主要是介紹第2種創(chuàng)建工程的方式。
首先運行Unity程序(PS:此處使用的版本是2018.3.0b7),如下圖新建HDRP工程。

如果還是有童鞋想要將原先的工程升級為高清工程,可以在Window-Package Manger(包管理器),下載并導入HDRP的包(PS:此處工程使用的是3.3版本的包),進行工程升級。如下圖:

導入完成后,新建High Definition Render Pipeline Asset文件,如下圖:

新建完成后,在Editor-Project Setting -Graphics 中的Scriptable Render Pipeline Settings設置新的渲染管線即可。
Volume Setting(體積設置)
如果你跟我一樣都是直接創(chuàng)建(默認直接加載示例場景)的工程的話,可以在Hierarchy視圖中,看見Volume Settings物體上添加有Volume組件。如下圖:

Volume組件是HDRP中對一定范圍內(nèi)的光照,霧,以及陰影進行管理的一個組件。直接升級的童鞋也不用擔心,在場景中新建一個空物體,添加上Volume組件即可。
其中Is Global選項如果勾選,其上的設置將會應用到全局。如果未勾選,需要給有Volume組件的物體,添加觸發(fā)器來設置其影響范圍。只有當攝像機進入其影響范圍內(nèi),才會出現(xiàn)對應的效果。如下圖:

Volume組件可以通過點擊“Add component overrides…”按鈕添加其子組件來進行功能拓展。其中常用的主要有一下幾種:
HD Shadow Settings(高清陰影設置)主要是用于控制Volume組件范圍內(nèi)的陰影質(zhì)量相關。

Visual Environment(可視環(huán)境),用于控制天空盒以及遠處霧氣的效果,不添加或者關閉將不會看見相應的視覺畫面。其中有2個選項,用來設置天空的類型,以及霧的類型。默認情況下,分別為Procedural Sky與Exponential Fog。

Gradient Sky(漸變天空)當Visual Environment組件Sky Type選擇Gradient Sky類型選項時,添加此組件,可以進行相應的設置。Gradient Sky可以定義三種顏色,頂部,中部和底部,HDRP會在它們之間進行插值以創(chuàng)建漸變天空盒。

Procedural Sky(程序化天空),使用步驟同上,但是設置的效果不同。Procedural Sky可以設置太陽大小,地面顏色和天空色調(diào)來自定義天空盒。

HDRI Sky是一種使用立方體貼圖紋理的天空盒。Unity商店提供了免費HDRP使用的立方體紋理包Unity HDRI Pack。Asset store搜索下載導入即可使用。

Linear Fog(線性霧)當Visual Environment組件Fog Type選擇Linear Fog類型選項時,添加此組件,可以進行相應的設置。Linear Fog組件將會根據(jù)提供的參數(shù),來設置場景中的霧。線性霧的密度將隨視距和世界空間高度線性增加。

Exponential Fog(指數(shù)霧)指數(shù)霧密度將隨著視距和世界空間高度呈指數(shù)增長,具體取決于提供的參數(shù)。

Volume組件還有一部分功能性新組件,這里由于篇幅限制,就不一一贅述了,文章末尾將會給出相應的參考文檔,歡迎食用。
新版相機組件與燈光組件
HDRP的新相機組件,除了在原先舊版相機的基礎上增加了新的功能,并進行了分級排版。而且還必須與HD Additional Camera Data(高清相機附加數(shù)據(jù))組件同時使用,才能得到正確的相機效果。如下:

新版的燈光組件改動與相機類似,只不過是需要燈光組件物體上同時掛載HD Additional Light Data(高清燈光附加數(shù)據(jù))與Additional Shadow Data(陰影附加數(shù)據(jù))這2個組件,才能正確使用新的燈光組件。
同時新的燈光組件,還增加了新的燈光類型-Line。其效果類似于發(fā)光燈管,值得注意得是使用此類型的燈光,將不會對受到燈光影響的物體投射陰影。效果如下:

高清著色器 Lit
新版的高清著色器Lit旨在讓開發(fā)者使用最少的配置,創(chuàng)建更加逼真的材質(zhì)。而在HDRP工程中,創(chuàng)建新材質(zhì)的時候默認也是使用的Lit著色器。

在新創(chuàng)建的材質(zhì)中,Lit Shader通過Suface Type(表面類型)的下拉菜單選項,來將材質(zhì)分成2中類型。一種是可透明的材質(zhì)(Transparent),一種是不透明材質(zhì)(Opaque)。需要注意的是,如果你的材質(zhì)選擇了Opaque選項,即使你在后續(xù)的Base Color +Opacity選項設置了材質(zhì)的透明度,也是不會出現(xiàn)透明效果的。效果如下:

Lit Shader使用Material type選項,來設置我們的材質(zhì)類型。選擇不同的選項,讓使用同一個著色器的材質(zhì),表現(xiàn)的畫面不一致。主要有一下幾種:
1. Subsurface scattering (次表面散射 簡稱:SSS材質(zhì)) 主要用于模擬類似皮膚相關的材質(zhì)類型。
2. Standard(標準金屬材質(zhì))Unity使用標準金屬的材質(zhì)類型。
3. Anisotropy(各向異性)當從不同角度查看此材質(zhì)時,各向異性曲面材質(zhì)上的高光會在外觀上發(fā)生變化。
4. Iridescence(彩色光暈材質(zhì)) 該材質(zhì)的高光點顏色,將會隨著光照角度與視角變化,出現(xiàn)類似彩虹一樣的變化。類似于肥皂泡,昆蟲翅膀之類的材質(zhì)。
5. Specular Color(高光顏色材質(zhì))類似于鏡子的材質(zhì)類型,可以通過這個選項創(chuàng)建具有彩色鏡面反射高光的材質(zhì)。
6. Translucent(半透明材質(zhì))使用“Translucent”類型時,HDRP將會使用Input塊中的參數(shù),設置厚度貼圖來模擬半透明材質(zhì)。與SSS材料相比,半透明材料僅透過材料傳輸光線,而不會使光線模糊。
這里就簡單展示一下Iridescence與Specular Color和Standard這3種材質(zhì)的區(qū)別。其余的材質(zhì)類型,在此文章中不便于進行演示,有興趣的童鞋,可以下去自己創(chuàng)建并進行對比。

Lit Shader還提供了其他眾多的功能。例如是否開啟透明度測試(AlphA Cutoff Enable),是否開啟雙面渲染(Double Sided),是否接受貼花投射(Enable Decal)等等功能。由于功能眾多,這里就不在細說了,詳情可以文末的文檔鏈接進行參考。
題外話
在HDRP的這個示例場景中,我們還發(fā)現(xiàn)場景中使用了PostProcessing(后期特效)來進一步提升畫面的表現(xiàn)力。PostProcessing 的相關資源也可以在文章開頭的GIF圖中的包管理器中,找到對應的資源。導入即可使用。值得注意的是,不管你是升級的HDRP工程還是普通工程使用PostProcessing,為了畫面的表現(xiàn)力,推薦將File—Build Setting——Player Settings—Other settings下的Color Space(色彩空間)選項改為Linear。
關于PostProcessing的使用不在本篇文章的探討范圍內(nèi),如有需要,建議配合官方文檔進行食用。鏈接如下:
https://github.com/Unity-Technologies/PostProcessing/wiki
結語
在Unity 2018的版本中,可以看出Unity為了解決畫面的詬病,下了不少功夫。不但引入了新的高清著色器,渲染管線,還對燈光與相機進行了不同修改。同時還通過新的Volume組件,來對燈光,天空和陰影進行控制,以達到滿意的效果。雖然現(xiàn)在HRDR目前仍處于預覽階段,相信在不久的將來就可以看到它大展拳腳的身影。
最后慣例
想系統(tǒng)學習游戲開發(fā)的童鞋,歡迎訪問?http://levelpp.com/?????
游戲開發(fā)攪基QQ群:869551769????
微信公眾號:皮皮關
線上課程的傳送門:https://study.163.com/course/introduction/1006462005.htm
參考鏈接:
HDRP官方文檔:https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/Upgrading-to-HDRP
HDRP官方入門指南:http://forum.china.unity3d.com/thread-32953-1-1.html
Volume組件參考文檔:https://mubu.com/doc/3cVzBhtH2E
Lit 著色器參考文檔:https://mubu.com/doc/3r9kMP4FbE