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

2021-01-14 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射擊主題微信小遊戲分享,看看玩過幾款!

相關焦點

  • LayaAir 2.10新特性:可動態修改渲染管線、增加深度渲染管線、增加...
    在今天推出的LayaAir 2.10beta版裡,3D渲染效果再次得以提升,增加了DirectLightMap全局光照貼圖、增加了深度渲染管線DepthPass,增加了Camera截屏功能,增加了後期處理Enable參數,支持動態切換shaderPass,一次drawCall中支持傳入更多圖片,支持了GLTF模型和動畫的加載使用等功能。
  • Unity中實現2D光照系統
    在 2D 光照中,我們也可以參考這兩種光照實現:Forward:對場景中的每個 Sprite 設置自定義 Shader 材質,渲染每一個 2D 光源的光照,然而由於 Unity 渲染管線的限制,這一過程的實現相當複雜,並且對於具有 N 個 Sprite,M 個光源的場景,光照渲染的時間複雜度為 O(MN)。
  • Unity通用渲染管線(URP)系列(四)——方向陰影(Cascaded Shadow Maps)
    2、支持多個方向光陰影3、使用cascaded陰影貼圖4、融合,漸變以及過濾陰影這是自定義可編程渲染管線系列的第四章,增加對Cascaded陰影貼圖的支持。當進行物體渲染時,表面和燈光信息足以計算光照。
  • 【充電】UE4 Lightmass功能詳解
    (4.18版本更新內容:https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1374252-unreal-engine-4-18-released)Lightmass 是 UE4 中一個很重要的部分,用於生成複雜光線下的光照貼圖(lightmap),也就是烘焙
  • TGDC|基於符號距離場的實時動態漫反射全局光照計算
    自從Kajiya首次提出渲染方程以來,通過全局光照實現真實感的目標一直在推動渲染的發展。但實時的全局光照一直是具有挑戰性的問題。因此,需要增加降噪操作來提升渲染的質量。 該方法的主要局限性在於它的性能,開銷非常大,並且會引入模糊和鬼影的問題。而且,降噪需要進行非常精細的處理。
  • Github霸榜:從零開始學3D著色器編程
    有興趣在3D遊戲中添加紋理,光照,陰影,法線貼圖,環境光遮蔽了嗎?好極了!今天新智元為大家帶來一個Github項目,從零開始教會大家進行3D遊戲著色。以下一系列著色技術,都是具有高可移植的技巧,無論是Godot還是Unity都將適用。通過這些技術,你的遊戲視覺效果將提升到新的高度。
  • TGDC|基於符號距離場的實時動態漫反射全局光照計算|騰訊遊戲學院|...
    這是一個室內場景,現在只有直接光照,如果加上全局光照,呈現的是這樣的效果。大家可以看出,有全局漫反射光照和沒有全局漫反射光照之間的明顯差異。因此,全局光照,也就是光線在物體表面之間的多重反射現象,在實現場景逼真呈現中起著非常重要的作用。自從Kajiya首次提出渲染方程以來,通過全局光照實現真實感的目標一直在推動渲染的發展。但實時的全局光照一直是具有挑戰性的問題。
  • 三維動畫高級渲染和製作軟體--3D Studio Max
    -Quicksilver硬體渲染引擎:新款多線程渲染引擎,可以利用CPU和GPU來為繪圖場景提供渲染加速,速度要比舊款引擎提升10倍左右。最後,3ds max composite,根據autodeskr toxik的技術所改良,支援hdr影像的合成工具,能提供您去背、色彩校正、追蹤、camera mapping、點陣或向量式的繪圖spline-based的變形、動態模糊、景深、3d立體電影製作模組都包含在3ds max composite。
  • 《異教徒》數字人面部動畫詳解:如何用HDRP打造電影級實時渲染特效
    當我們開始製作數字人類的單獨資源包時,一個主要的目標是將所有渲染相關的內容轉換為原始的高清渲染管線(HDRP)內容,確保包能使用新的HDRP功能來升級、拓展。背景:當我們開始製作《異教徒》的原型圖像時,HDRP仍缺少部分拓展性相關的功能。
  • 實時渲染影視動畫專業解決方案
    PiView支持多部攝影機切換操作、提供渲染質量設定、多種渲染模式(Lit,Wireframe,Unlit,Lighting)、VR360預覽、渲染指令輸入等多項功能。並且能以每畫格三到四秒的速度輸出4K影像。
  • 淺談延遲渲染、移動GPU架構和Metal
    0x00 這個你會,可編程渲染管線在說那幾位之前,我們先聊點輕鬆的東西,在gles1.0時代,硬體渲染管線還是固定的,就像是一個已經設計好的流水線,旁邊有幾個開關,程式設計師能做的就是切換這一個個開關,修改紋理、渲染狀態、在幾個固定的光照模型之間切換。有限的開關越來越難滿足大家對效果無止境的需求。
  • UE4開發的25個技巧:有關光照、紋理和渲染【52VR原創】
    它的延遲渲染、自定義材質和高級光照技術對整個引擎——和你的作品——都有著完美的驅動,能給效果帶來質的提升。   自打UE4公開發布以來我一直靠這個賺錢,然後發現了在它身上一些創作和展現高質量成果的絕妙技巧。在這篇文章,我會分享一些個人每天都會用到的小秘訣和技巧,以幫助你們運用UE4為自己美妙的場景做好光照、材質和渲染。01.
  • AO貼圖與其他的貼圖介紹
    今天分享的是AO貼圖與其他貼圖的小知識。 Ambient Occlusion Ambient Occlusion(環境遮擋貼圖)簡稱AO貼圖,模擬物體之間所產生的陰影,在不打光的時候增加體積感。
  • Unity 2019.3正式上線 新增超260項功能 開啟全新高畫質時代
    最新版本帶來了超過260項功能改進,其中的高清渲染管線(HDRP)功能可在高端遊戲主機和PC上解鎖高清精美畫質的無限潛能。該版本還更新了用戶界面與設計圖標,為用戶帶來更精簡、更強大、更優化的編輯器體驗。此外,Unity在最新版本中增加了對谷歌雲遊戲平臺Stadia的支持。
  • 鷹角網絡CEO黃一峰談《明日方舟》3D和2D的結合方案
    第二,在貼圖繪製上我們會做一些功能化的嘗試,但總體來說我們並非做一個比較常見的日式RPG或者是類似遊戲的卡通化的風格,我們希望用更寫實的風格做到一些差異化。在Shader上,我們採用的光照模型是基於Unity Standard Shader修改得到的PBR Shader。
  • 次世代道具貼圖繪製
    lightmapNORMAL方向有沒有錯誤2、把UV圖,NORMAL,LIGHTMAP ,全都放入DIFFUSE 的PSD文件,取名為box_DUV 層和NORMAL層主要起到定位貼圖的作用,LIGHTMAP層可以變換它的圖層疊加方式,疊到將要運用的材質貼圖上,以增加其光影效果。可以把底色填充一個道具大致的色調。