...增加深度渲染管線、增加DirectLightMap全局光照貼圖等3D功能

2021-01-08 Charley話遊戲

在今天推出的LayaAir 2.10beta版裡,3D渲染效果再次得以提升,增加了DirectLightMap全局光照貼圖、增加了深度渲染管線DepthPass,增加了Camera截屏功能,增加了後期處理Enable參數,支持動態切換shaderPass,一次drawCall中支持傳入更多圖片,支持了GLTF模型和動畫的加載使用等功能。

增加深度渲染管線

從LayaAir2.10版本開始,我們增加了深度渲染管線DepthPass,Camera中增加了屬性depthTextureMode。

Camera設置depthTextureMode為Depth,可以在渲染流程中增加深度圖的渲染,貼圖的渲染結果存儲在Camera的u_CameraDepthTexture,開發者可以在shader中直接取到DepthTexture。

Camera設置depthTextureMode為DepthNormals,可以在渲染流程中增加法線深度圖的渲染。貼圖的渲染結果存儲在Camera的u_CameraDepthNormalsTexture的相機unifrom中,開發者可以在shader中直接取到DepthNormalTexture。

關於深度管線的所有shader相關函數,在shader文件DepthNormalUtil.glsl中,使用SAMPLE_DEPTH_TEXTURE宏定義函數可以得到u_CameraDepthTexture中的深度值,但此時的深度值並不是線性深度值,需要使用Linear01Depth函數傳入系統傳入的u_ZBufferParams來解析出正確的線性深度值。

採樣貼圖u_CameraDepthNormalsTexture得到的圖片值是壓縮數據,rg存儲了壓縮法線信息,ba存儲了線性深度值,可以調用函數DecodeDepthNormal來解析出法線和深度信息。

此渲染管線,大大健壯了引擎的渲染管線,開發者可以基於DepthTexture,NormalDepthTexture寫出各種各樣的渲染效果,增加了對後期處理效果的支持。

例如,我們可以用這個渲染管線做一個邊緣後期處理功能。

上圖的效果,是由下面兩圖通過邊緣後期處理功能生成。

可動態修改渲染管線

另外我們還在本次的版本中支持動態切換渲染管線,開發者可以在程序代碼中通過RenderContext3D.ConfigPipeLineMode將默認的渲染管線切換為任意的渲染管線。

LayaAir引擎現有的渲染管線有Forward、ShadowCaster,以及本次版本新添加的DepthNormal渲染管線。

可動態切換的渲染管線不止是引擎內置的渲染管線,開發者也可以增加自定義的渲染管線用於切換。具體方法是在生成shader的時候增加自定義的shaderPass,然後通過RenderContext3D.ConfigPipeLineMode把自定義的渲染管線設置為引擎的渲染管線。

此功能配合本次版本新增的Camera截圖功能,開發者可以將各種渲染效果渲染到任何地方。

例如,開發者想將物體的法線渲染成圖片,可以在shader生成的地方增加一個自定義的渲染管線NormalPass,寫好配套的shader,再把RenderContext3D.configPipeLineMode設置為自定義的NormalPass,就可以達到渲染物體法線的效果。

增加烘培貼圖中的方向貼圖

本次版本增加的光照貼圖DirectLightMap貼圖,也是值得重點突出介紹的功能,該功能配合法線貼圖可以獲得更加細膩的烘培效果。

我們可以在Unity的Lighting面板中的Directional Mode進行設置並導出使用,設置方式如下圖所示。

在沒有設置Directional之前的效果如下圖所示:

設置Directional之後效果如下圖所示,與上圖對比有明顯更加細膩。

其它重要的3D功能

在以前的版本裡,LayaAir在一次drawCall中最多只能上傳8張圖片。從2.10beta版開始,可以根據設備最大傳入圖片的數量來傳入圖片,用來支持更多的渲染效果。

除此之外,我們還增加了一些其它的重要3D功能,例如:

1、增加了camera中的drawRenderTextureByScene接口。可以用來截取非場景節點相機的渲染結果,類似於快照功能。開發者可以設置一個相機,調用此函數來渲染出一幀的畫面,用作截屏或者其他功能使用。

2、在PostProcess後期處理中增加了enable屬性,用來動態開關後期處理,優化了後期處理流程。

3、新增支持了GLTF模型和GLTF動畫的加載使用,使用方式與LayaAir插件從Unity中導出的模型(.lm)是一樣的。

END

引擎案例分享:

聊聊電商圈成功的遊戲跨界案例3D研發經驗分享:50多款3D小遊戲的炫稷遊戲創始人程銀斌分享3D研發經驗!3D技術分享:有著30多款3D小遊戲產品的長沙嗨鹿互動科技資深研發工程師分享3D遊戲研發經驗132款3D跑酷極限運動主題的微信小遊戲分享LayaAir引擎78款3D射擊主題微信小遊戲分享,看看玩過幾款!

相關焦點

  • 寫給美術看的Unity全局光照技術(理論篇)
    這就是間接光照效果。然而,實現間接光照的算法非常複雜,計算速度太慢,用過3D Max渲染的同學應該知道渲染一張圖片需要多長時間。所以,面對遊戲等實時渲染領域,一秒鐘需要渲染數十張圖片以達到流暢的畫面感的要求,要實現全局光照(GI)效果,顯然需要另尋蹊徑。在遊戲領域,解決這一局限性的一種方式就是:只為預先知道不會移動的物體(即被標記為靜態的物體)計算間接光照。
  • 寫給美術看的Unity全局光照詳解(參數篇)
    在基於物理渲染的思想中,還需要考慮表面材質對光線的反射率(Albedo)的影響。通俗地理解:即,要考慮光線能量有多少被吸收,導致被反射出去的光線呈現怎樣的強度和顏色。表面的反射率(Albedo)一般用RGB表示。實現GI有兩種方案Realtime GI和Baked GI,對應的最終實現的形式為Dynamic Lightmap動態光照貼圖和Lightmap光照貼圖。
  • Unity漸進式光照貼圖烘焙詳解|unity
    CPU支持SSE4.1指令支持的渲染管線:1. 內置渲染管線(Built-in Render Pipeline):支持Baked Indirect,Subtractive和Shadowmask光照模式。2.
  • Unity 最新版本迎來260項功能改進,高清渲染管線HDRP升級
    就是說,我們完全可以根據性能需求來選擇渲染路徑;性能將不再受到所選圖形功能的限制。功能概覽HDRP自帶一整套圖形功能,與內置渲染管線相比,它能克服更多的渲染挑戰。或者,可以分屏查看,來比較不同的資源、光照條件或視圖模式。除了Look Dev,還有背板(Backplate)功能。背板是HDRI天空的一種高級模式,製作出的幾何形可以用HDRI圖像的底部部分來繪製紋理,可以有邊緣漸隱效果,還能在不受光HDRI天空的基礎上渲染陰影貼圖。
  • 遊戲引擎中的渲染管線
    這篇文章不打算綜述完整的渲染流程,對這個部分比較感興趣的同學,可以看看這兩篇文章[1][2]分別介紹了時下流行的Unity和UE的渲染管線,還有這兩篇文章講述GTA V[3]和巫師3[4]的幀分析。總體來說渲染管線的組成大同小異,本文主要關注直接照明部分的管線差異。一幀由哪些渲染流程組成?
  • 3D貼圖顯示模糊?看一遍就學會!「渲雲渲染」
    小編又來分享有關3d Max的實用小技巧了,今天只需學會這一招,就讓你告別3D貼圖模糊的情況,不會影響渲染效果噢~首先將外部圖片導入3D作為參照。可能會遇到這種顯示起來比較模糊、鋸齒感明顯的情況。解決方法:在界面右下角右鍵打開視口配置,在顯示性能中,將紋理貼圖修改為2000。點擊確定,就可以在視口中看到非常清晰的原圖效果。
  • Github霸榜:從零開始學3D著色器編程
    有興趣在3D遊戲中添加紋理,光照,陰影,法線貼圖,環境光遮蔽了嗎?好極了!今天新智元為大家帶來一個Github項目,從零開始教會大家進行3D遊戲著色。以下一系列著色技術,都是具有高可移植的技巧,無論是Godot還是Unity都將適用。通過這些技術,你的遊戲視覺效果將提升到新的高度。
  • 《秦時明月世界》如何用Unity定製化渲染管線?
    11月16日,騰訊魔方工作室高級工程師王毅以「《秦時明月世界》手遊的定製渲染管線介紹了《秦時明月世界》手遊如何藉助Unity實現定製渲染管線技術,具體包括相機與顏色空間、深度圖、Grab Pass、後處理和多光源幾個方面。
  • 切空間及法線貼圖
    前幾天公司有同事,要搞一下項目的地形材質,增加法線效果。
  • AO貼圖與其他的貼圖介紹
    今天分享的是AO貼圖與其他貼圖的小知識。 Ambient Occlusion Ambient Occlusion(環境遮擋貼圖)簡稱AO貼圖,模擬物體之間所產生的陰影,在不打光的時候增加體積感。
  • 程序丨Unity 渲染教程(十):更多複雜的應用場景
    系列回顧:Unity 渲染教程(一):矩陣Unity 渲染教程(二):著色器基礎Unity 渲染教程(三):使用多張紋理貼圖Unity 渲染教程(四):第一個光源Unity 渲染教程(五):多個光源Unity 渲染教程(六):凹凸度Unity 渲染教程(七)
  • 3ds Max十大小技巧,讓大家告別3d渲染出圖慢!「渲雲渲染」
    渲雲,百萬設計師首選的雲渲染平臺。一個優秀的渲染作品離不開好的模型,好的貼圖,好的後期、特效、動畫。效率是價值尺度,好的方式方法無疑會提高設計師們的工作效率。今天小編將分享十個關於渲染的設置技巧,能夠節約設計師們寶貴的時間,讓大家告別3d渲染出圖慢!此外如何正確選擇雲渲染的平臺對於各位設計師們也是至關重要的。這滿滿一盆乾貨,大家記得點讚收藏哦~一、分開場景不同角度請分成不同文件。不要把所有角度都放到一個場景中,每個場景中相機看不到的模型刪除。
  • 王者榮耀對戰場景渲染分析
    因為筆者使用unity3d並不多,因此本文並沒有專門針對unity3d相關的默認渲染方式或者資源分析,僅就一般性的3D渲染流程進行概論,主要為了參考王者榮耀渲染中的美術標準,以及一些優化技巧。綜合上述兩個例子,參考場景中貼圖的大小,如果將貼圖415和貼圖380作為參考的主紋理,則場景貼圖大小主要控制在512到1024之間,同時輔以若干256,128紋理。
  • 有了光,才能製作各種逼真的渲染圖——C4D燈光的使用說明
    在C4D的學習中,渲染可以使我們得到最後的效果圖和動畫,而在渲染前我們需要給場景或者場景中的對象布置一個光照環境去影響整個畫面,這篇文章,我們來簡單講講C4D軟體裡的燈光。衰減隨著距離的增加,光的強度會逐漸減弱,我們可以使用衰減,去讓燈光更加真實。可見勾選可見可以看到光線,可以用來製作一些光效。
  • 次世代道具貼圖繪製
    lightmapNORMAL方向有沒有錯誤2、把UV圖,NORMAL,LIGHTMAP ,全都放入DIFFUSE 的PSD文件,取名為box_DUV 層和NORMAL層主要起到定位貼圖的作用,LIGHTMAP層可以變換它的圖層疊加方式,疊到將要運用的材質貼圖上,以增加其光影效果。可以把底色填充一個道具大致的色調。
  • 教你如何改善3D貼圖邊緣化「渲雲渲染」
    渲雲,百萬設計師首選的雲渲染平臺。一個模型的精緻程度有很大一部分取決於模型細節的處理。今天小編就帶大家分享一下模型的邊緣貼圖接縫的處理方法,在不使用UV展開的情況下,使用UVW貼圖修改器,是很難處理到比較好的效果。
  • SUBSTANCE&VR Bot | 測試完整的3D管線流程
    管線流程如下:首先在Medium中創建初始的3D草圖與體積,接下來,將此模型導入到 Substance Painter 中以獲取材質和紋理。最後將模型導入Dimension以進行照明和最終的渲染處理。當使用 Substance Painter 的自動展UV功能時,能夠得到更好的控制,同時與所有部分都放置在一個單獨的紋理集中相比通過四個貼圖可以得到更高的保真度。如果在將來的Medium版本中會有材質分配給模型或其他的方式來確保這些信息轉移到 Substance Painter 中,這將會是很棒的,所以當進行自動展UV時,模型的每個部分立刻都有其自己的紋理設置。
  • 五分鐘學會使用C4D渲染MMD(MMDbridge用法)
    關於計算機配置:使用C4D等專業3D軟體渲染對於計算機硬體要求極高。C4D R18之前版本自帶的渲染器為CPU渲染器,採用CPU進行渲染,建議計算機硬體中的CPU性能越高越好。根據我本身的配置來舉例。一個3700幀的MMD採用i7-4702mq渲染,渲染完成時間大概為90個小時。CPU性能不高的小夥伴請適當的降低渲染畫質,縮短渲染幀數或者採用C4D的團隊渲染。