燈光的布局對于HMI場景中車模的展示效果有著舉足輕重的地位。本篇內容將簡單介紹ES3.1的相關知識,再深入了解Unreal引擎中車模的燈光以及燈光架構。
一、關于ES3.1
1.1 什么是ES3.1
ES3.1這個概念對于美術的同學可能比較陌生,ES3.1指的是OpenGL ES3.1,這是移動設備和嵌入式系統常用的圖形API。我們可以理解為是一種渲染方式,或者是渲染算法,類似于換一個渲染器或者渲染管線。
Unreal引擎中啟用ES3.1之后,由于算法不同,燈光效果會發生改變,如圖1.1.1和圖1.1.2所示。
圖1.1.1 PC環境下的場景效果
圖1.1.2 ES3.1環境下的場景效果
1.2 為什么要用ES3.1
市場上的量產車型項目中,使用Unreal引擎時都會選擇OpenGL ES3.1(ES3.1)環境。主要是源于芯片算力限制、平臺兼容性、開發成本與車規級穩定性需求的綜合權衡,這個只需簡單了解,不必深究。
我們在制作Unreal 項目的時候,需要與市場上普遍應用的開發環境相適配,所以選擇ES 3.1作為開發環境進行項目制作。
1.3 怎么啟用ES3.1
在界面頂部找到:設置——預覽渲染級別——Android ES3.1,選擇即為啟用。待加載完成即可。
圖1.3.1 啟用ES 3.1
二、燈光的選擇
從項目落地的角度出發,我們需要控制性能開銷在一定的范圍內,并且要保證幀率、發熱量。燈光的使用會很大程度影響性能的開銷,所以我們必須保證開銷低的情況下去制作燈光架構。
2.1 可移動光源
一般工程里面會盡量避免使用可移動光源,可移動光源雖然效果好,但是需要以很大的性能開銷為代價,滿足不了性能的需求。可移動光源包括定向光源、點光源、聚光燈、矩形光源等多種光源的可移動模式,如圖2.1.1所示。
圖2.1.1 可移動光源
其中定向光源、點光源、聚光燈、矩形光源由于其光照的方向性或者衰減較強,如果不使用可移動性的話,只能通過靜態烘焙的方式制作燈光效果。靜態烘焙的燈光效果不在本篇燈光架構討論范圍內,所以本篇不會展開討論。
2.2 Skylight
Skylight通常作為環境光的整體照亮,即可以調整默認的天空環境去使用,也可以選擇HDRI之類的環境貼圖來處理光照。Skylight既有360°環繞光照,又具備開銷低的特性。非常適合在ES3.1的開發環境下使用。
圖2.2.1 切換立方體貼圖
2.3 HDRI Backdrop
HDRI Backdrop與使用HDRI貼圖的skylight類似,但區別在于skylight上的HDRI貼圖在環境中不可見。我們可以在設置——插件里面找到HDRI Backdrop,勾選啟用并重啟Unreal 引擎。
圖2.3.1 啟用HDRI Backdrop
啟用HDRI Backdrop之后,可以在光源集合里面找到新增了一個HDRI背景,直接將其拖入到場景中,便可以完成調用。
圖2.3.2 調用HDRI Backdrop
2.4 反射捕捉
反射捕捉有球體反射捕捉和盒體反射捕捉,兩者在使用上并沒有什么區別。反射捕捉并不屬于光源的類別,屬于視覺效果的類別中。所以它的性能開銷也是很小的。反射捕捉與skylight相同的是:都可以切換指定的立方體貼圖。所以我們可以通過HDRI貼圖去控制環境中的反射效果,也可以通過修改HDRI貼圖去強化類似腰線等結構的反射效果。
圖2.4.1 視覺效果
三、燈光的搭配
3.1 反射捕捉+HDRI Backdrop
反射捕捉用來提供車身的高光反射。我們將反射捕捉放入場景中,調整大小到比車模稍大兩三倍即可。
圖3.1.1 調整反射捕捉的大小
然后在HDRI上畫出和車身腰線匹配的高光弧線,以此構建車身的基礎反射和腰線高光,如圖3.1.2。
圖3.1.2 繪制HDRI的高光
將HDRI填充進反射捕捉中,我們可以看到車身上已經有了不錯的反射效果。但是車身的基礎照亮還沒有處理,所以看上去的效果還不是很正確。
圖3.1.3 反射捕捉的照明效果
HDRI Backdrop用來提供車身的基礎亮度和可視化背景,可以看到圖3.1.3里面,天空背景的顏色都是黑色,和車身上的反射效果并不匹配。在我們給場景添加HDRI Backdrop,給上和反射捕捉相匹配的HDRI,車身上的基礎照亮和天空的可視化背景也得到了完善。
圖3.1.4 添加HDRI Backdrop
3.2 反射捕捉+Skylight+球體背景
如果我們需要將可視化背景和車身基礎亮度的照射分開的話,就需要使用Skylight去提供車身的基礎照明,另外通過制作背景模型去提供背景的可視化。需要注意的是,背景不能提供任何光照以及反射效果,如圖3.2.1所示,僅啟用背景模型時,車模上不會有任何被照亮或反射的效果。
圖3.2.1 可視化背景不參與光照
反射捕捉和3.1所提及的內容相同,不再贅述。圖3.2.2是僅開啟反射捕捉的效果,相比圖3.1.3的示例去掉了湖面等環境元素,但車身上的反射效果是一致的。
圖3.2.2 僅反射捕捉
Skylight可以直接拖入場景當中,填充對應的HDRI即可滿足基礎的底色光照。對比圖3.2.2與圖3.2.3,很明顯可以看出車身上的輪胎,塑膠件和車漆底色的照明效果發生了改變。
圖3.2.3 添加Skylight
背景模型的使用需要看具體情況來選擇,如果旋轉的視角限制在很小的角度,或者固定視角,那背景可以使用一個面片填充貼圖,用最簡單的方式即可滿足開發需求。當需要360°旋轉甚至俯仰角度的旋轉時,就需要一個球形的模型來作為背景支撐。與球形UV相對應的,不管是制作的漸變背景還是天空背景,我們的貼圖樣式都需要與HDRI的展開方式一致。
首先制作一個巨大的球形,并將其材質的著色模型修改成無光照,并勾選雙面選項,這樣我們從內部才能看到球形的背景模型。
圖3.2.4 修改材質類型
然后我們將準備好的HDRI背景貼圖導入材質編輯器,右鍵將紋理節點轉換成參數,如圖3.2.5所示。
圖3.2.5 貼圖轉化為參數
在貼圖參數的前面簡單鏈接上幾個節點控制HDRI貼圖的旋轉即可,如圖3.2.6。
圖3.2.6 控制HDRI旋轉
我們也可以再增加多一些參數,結合上簡單的運算,比如對比度、強度、亮度等,如圖3.2.7所示,可以方便在Unreal 引擎中直接調整貼圖展示的最終效果。
圖3.2.7 簡單的參數運算
圖3.2.8 加上模型背景
3.3 添加地面反射
在完成了燈光制作之后,可能最終效果還稍顯瑕疵,這時候我們可以通過添加地面反射的方式,為場景添加一些層次。如圖3.2.8中,模型背景的效果比較素,車模與場景拉不開空間感。這時候就可以在地面增加對車模的反射,提升車模與場景的融合度,增加層次感,如圖3.3.1。
圖3.3.1 增加地面反射
本篇筆記說明了Unreal 引擎中選擇ES3.1環境進行項目制作的緣由,介紹了Unreal引擎中各種燈光在ES3.1環境下的適配情況,并介紹兩種燈光架構制作場景的打光。如果想了解更多關于Unreal HMI 3D解決方案的信息,歡迎發送郵件至mkt@eptcom.com聯系我們。