「團結引擎 1.4.0」來啦!本次技術更新的內容,涵蓋了小游戲、團結引擎車機版、OpenHarmony、Audio、Muse Chat、虛擬陰影貼圖、Shader Graph、代碼升級幾大方向。本次更新進一步提升了引擎易用性,實現大幅性能優化,增強了團結引擎在圖形、渲染、光照等方面的能力,將為開發者提供更有力的支持。
小游戲
團結引擎 1.4.0 進一步優化小游戲性能,并改進部分功能,帶來更流暢的用戶體驗。
功能提升
?新增小游戲構建配置 Build Profile,支持按平臺、release 和 development 保存多份構建配置,并一鍵打包多個配置,提升打包效率。
詳細指南請參閱:團結引擎用戶手冊 | 小游戲構建配置: https://docs.unity.cn/cn/tuanjiemanual/Manual/BuildSettingsMiniGame.html
?新增動畫壓縮庫 ACL 集成,提高 AnimationClip 壓縮率,在小游戲上可以獲得更小的包體和內存占用。
?完善 Wasm Analysis Tool 對 wasm 指令的支持,新增對微信分包后 wasm 的支持。
?新增 kCullFlagSkipCulling 選項,允許在 SRP 管線上跳過 scene culling 操作,優化 UI 相機的耗時。
?新增 SetActiveNonRecursive 接口, 允許 gameobject 上的 components 和子對象不重新初始化以獲得更好的性能。
Build Profiler 全新用戶界面,助力個性化快速打包體驗。
問題修復
?小游戲打開 mobileKeyboardSupport 后,點擊屏幕會在觸控開始和結束額外渲染一幀,影響性能,已修復。
?小游戲關閉 mobileKeyboardSupport 后,無法喚起虛擬鍵盤并且觸控滑動可能丟失 touch began 事件,已修復。
?修復微信開發者工具和部分真機上渲染花屏的問題(報錯"uint_ctor: ambiguous function call"的問題)。
?AutoStreaming 問題修復:
- 修復 uGUI Image 使用圖集時未能正確顯示高清圖的問題;
- Texture Streaming 新增支持2D tilemap;
- CustomSearch.txt 新增支持 UTF-8 BOM 編碼;
- 小游戲上使用 Scene streaming 功能后,同時加載多個場景可能導致游戲卡死,已修復。
?對于使用了不支持的壓縮格式的紋理,警告日志中增加了紋理名稱,方便開發者定位修復。
?全局紋理壓縮格式切換為 ASTC 后,skybox cubemap 仍使用 DXT 壓縮格式,已修復。
?Vertex Shader GPU Skinning
- 修復 Graphics API 為 WebGL1 時無法開啟的問題;
- 修復在 Mali-G78 設備上無法開啟的問題。
團結引擎車機版
Tuanjie 1.4.0 版本中,平臺研發團隊致力于為移動端開發者提供更好的引擎性能表現。因此,我們在引擎的核心渲染部分發布了Variable Rate Shading(VRS),同時,Reflection Probe 也已支持 Layer 隔離采樣。
Tuanjie 1.4.0 同樣致力于對車機 HMI Android、QNX、Embedded Linux 三個平臺的穩定性提升,并進行了多項改進。
渲染
Variable Rate Shading(VRS)
Tuanjie Variable Rate Shading (VRS),用于動態調整圖像中每個像素的渲染細 節或“著色”速率,通過降低采樣點數目,將?定數量的采樣點作為一個 Unit 進行渲染,以此控制 Shading Rates。 開啟后,可以在保證視覺表現的情況下,減少 GPU 的工作負擔,從而提高渲染效率,特別是在資源有限的情況下。
團結引擎從 1.4.0 版本開始,全面支持 VRS。在 Tuanjie Editor 中,可以通過對不同 Renderer 設置不同的 Shading Rate,從而實現屏幕的不同位置有不同的渲染速率,以達到降低 GPU 開銷的目標。
同時,除了支持自定義設置 Shading Rates 外,團結引擎提供了?種 Camera-Relative Shading 算法,開啟后可以為未手動設置 Shading Rate 的 Renderer 自動計算近似 Shading Rate 值,以降低逐一手動修改 Renderer 的開發成本。
VRS 已支持所有打包平臺,但對目標平臺系統的圖形 API 有一定要求,請確保?標設備/平臺對于圖形 API 充分支持。具體可參考下表:
可以通過Project Settings >> Graphics >> Shading Settings,開啟 VRS 并設置 Shading Rate。
?選擇 Custom Shading,選擇后可以開啟并使用 VRS 功能,在 Renderer 的 Inspector 面板中設置 Shading Rate值,自定義每個 Renderer 的 Shading Rate。
?選擇 Camera-Relative Shading,默認使用系統提供的 Camera-Relative Shading 算法,為未手動設置 Shading Rate 的 Renderer 自動計算近似 Shading Rate 值。
為了便于更直觀地看到場景中每個 Renderer 的 Shading Rate 設置,并便于調試,1.4.0 版本的 Editor 中,為 VRS 新增了 Debug Tool,可以通過 Window >> Analysis >> Rendering Debugger >> Rendering 開啟,Map Overlays 選擇“Shading Rate Value Map”。
開啟后,Scene 窗口中將通過顏色實時展示當前每個 Renderer 使用的 Shading Rate 值。
更多操作可查閱官方文檔! https://docs.unity.cn/cn/tuanjiemanual/Manual/hmi-vrs.html
VRS 推薦場景及用法
VRS 可針對場景中任一 Renderer 進行自定義設置并生效。目標是降低 GPU 的Fragment Instructions / Second和Fragments Shaded / Second。
Shading Rate 越高,則渲染結果畫面越模糊,因此推薦在渲染內容較重的場景中,對于非視覺重心的 Renderer,設置較高(如 4x4)的 Shading Rate;對于視覺重心的 Renderer,設置較低的 Shading Rate(如 1x1),以保證視覺質量。
在移動設備運行效果對比
因公眾號平臺圖片壓縮,建議下載安裝 Tuanjie 1.4.0 實際體驗!
原始畫質(Shading Rate 1x1):畫質清晰,運行卡頓
場景內物體全部開啟 VRS,并設置最高程度(Shading Rate 4x4):背景建筑/樹木模糊,運行流暢。
Reflection Probe 支持 Layer 隔離采樣
此前版本的團結引擎中,Reflect Probe 無法用 layer 隔開,因此,導致在此前團結版本的 URAS 架構下,各個 3D 模塊的 Reflection Probe 會出現沖突的情況。
Tuanjie 1.4.0 中,Reflection Probe 的 Cubemap Capture Settings 中新增了Rendering Layer Mask設置,用于控制 Reflection Probe 對特定 Renderer 產生印象。
HMI Android
1.4.0 版本中,HMI Android 平臺對Render As Service (URAS)進行了進一步升級。
Tuanjie 1.4.0 版本中,URAS 已支持 Android 14,支持鍵盤事件,支持鼠標點擊 UGUI 按鈕,支持點擊 InputField(包括 TextMeshPro 版本)彈出軟鍵盤輸入文本,支持 Render Scale 并提供能夠針對每個 view 分別調整渲染分辨率的接口;工程隔離模式新增支持 Native plugin,支持 Addressable 數據加載,支持基于場景的物理碰撞隔離。
基于廣大用戶的反饋,1.4.0 版本的 HMI Android 也針對以下功能進行了優化:
?Release 版本支持在 Player Setting 中勾選"Log Startup Timings"后,輸出引擎啟動關鍵時間節點等信息
?新增設置 backgroundJobQueue 線程優先級的運行參數
?將 HMI Android 的特有的選項設置一個單獨的分欄
?修復了在 Editor 中同時安裝 Android 和 HMI Android 導致 Burst 報錯問題
QNX & Embedded Linux
1.4.0 版本中,QNX 平臺現已全面支持 QNX 8.0,也同樣新增了設置 backgroundJobQueue 線程優先級的運行參數,提升了 QNX 平臺的 EGL 優先級。也修復了如下問題:
?修復多屏觸控失效的問題
?修復 QNX 平臺渲染線程、Job 線程優先級設置錯誤的問題
1.4.0 版本中,Embedded Linux 平臺現已支持 Systrace,同時也對 Asan 進行了支持。
OpenHarmony
OpenHarmony 支持 UAAL
"Used as a Library(UAAL)" 是指將渲染相關的功能或渲染管線代碼封裝為一個獨立的庫,使其可以在不同的項目中復用,而不依賴于具體的 Tuanjie 編輯器環境。這種做法主要便于移動平臺跨項目使用,或在非 Tuanjie 編輯器環境下執行。此前,UAAL 僅支持 Android 和 HMI Android 平臺。
1.4.0 版本中,OpenHarmony 平臺已全面支持 UAAL。1.4.0 在 OpenHarmony 的導出項目功能中,新增了一個勾選框,勾選后可選擇:Use As A Library(Recommended)。無需額外操作,勾選并導出后,導出項目的工程結構目錄相較之前自動變化:
?工程項目中,entry 模塊只有簡單入口
?新增 tuanjieLib 模塊,引擎相關的代碼資源均位于該模塊
詳細操作可參考以下視頻:
繼續完善 OpenHarmony 各功能模塊
1.4.0 版本進一步完善了對 OpenHarmony 的各功能模塊支持,主要新增了以下支持和優化項:
?支持 WebCamTexture
?新增 .etslib 中通過調用 UI 線程上函數能力
?新增支持低時延模式音頻
?在引擎 OpenHarmony 的 globalThis 中,添加了 UIContext 引用,該引用可以用于自定義 UI 的創建等功能
?新增 Player Setting 中勾選"Log Startup Timings"后,輸出引擎啟動關鍵時間節點等信息
修復問題
1.4.0 版本也修復了開發者反饋的一系列 bug,主要如下:
?修復 Ubuntu 上從 BuildSettings 面板下載 OpenHamorny Module 失敗的問題
?修復 DevEco 創建的 keystore 無法在 editor 里面使用的問題
?修復最新系統上 Vulkan 橫屏模式方向相反的問題
?修復橫豎屏切換時的顯示問題
?修復 js 調用 C# 接口沒有返回值問題
?修復系統語言非簡體中文時應用名稱顯示異常的問題
?修復 Vulkan 下 GPUSkinning 未生效問題
?修復使用 UTF 框架跑test簽名失敗問題
?修復 ts 調用 C# 函數返回 null 時異常的問題
?修復無法在 ts/ets 代碼中設置屏幕常量的問題
?替換廢棄失效的 OH 權限字段
?修復團結生成的 keystore 無法出包的問題
?修復 VideoPlayer 跳轉到指定時間音視頻不同步的問題
Audio
功能優化
針對微信小游戲,拓展了音頻文件的的壓縮下限,同時增強了平臺間的兼容性:
? Window 上編碼 aac 的最低碼率為 96kbps,但小游戲上對包體和內存有更高的要求,因此當 Quality 設置為小于 25 時,將轉用 MP3 編碼,從而使用更低的碼率得到更小的文件壓縮體積;
? 另外短于 0.3s 的音頻在 Windows 上編碼成 aac 格式會出現在 iOS 和 Mac 上播放不兼容的問題,以往版本中使用了 PCM 編碼的音頻作為兜底方案,現改為使用 MP3 編碼,能顯著降低這部分音頻的文件大小。
性能提升
? 優化了 AudioSource Component 每幀 Update 的性能,CPU 耗時減少了約 20%;
?Pitch Shifter 音效節點的 CPU 耗時也減少了約一半;
?優化了通過 Streaming 播放音頻時的內存占用;
?同時播放多個 Load Type 為 Streaming 的 ADPCM 編碼音頻時解碼過于慢的問題也已被修復。
客戶反饋問題響應與解決
? 近期我們收到了不少客戶導入 MP3 音頻文件失敗的反饋,調查后我們發現這些.mp3 后綴的文件實際是 wav 格式。為了兼容這種情況,我們在文件后綴名的基礎上增加了文件頭的判斷,從而更加精準的識別音頻文件的格式。
?此外,以往版本的引擎在播放視頻時,因為視頻中音頻采樣率不是 48K,會導致聲音斷斷續續。該問題已在 1.4.0 版本中修復。
Muse Chat
在1.4.0版本上,Tuanjie MuseChat 持續修復用戶反饋問題的同時,并實現 Agent 模式下回答內容的流式輸出,且對回答速度及回答準確度做了優化和提升,詳情如下:
問題修復
? 修復后端 Memory 異常的錯誤
? 修復前端清除對話異常的問題
?修復后端用戶登錄和鑒權異常的錯誤
?修復后端部分 Agent 工具異常調用的錯誤
?修復前端文本內富文本鏈接過長導致的顯示問題
?修復前端中止回答/連接中斷時的消息顯示異常的問題
性能優化
? Agent 工具 Prompt/速度優化
? 更新引擎相關的 RAG 語料庫
?接入 Tuanjie IssueReporter(https://issuereporter.unity.cn/)數據
Virtual Geometry
在團結引擎 1.4.0 版本中,我們發布了重磅功能:虛擬陰影貼圖(Virtual Shadow Maps,VSM),為開發者提供更加逼真的光影效果;同時,Profiler 功能新增了更詳細的渲染信息展示,幫助開發者深入洞察性能瓶頸。此外,1.4.0 版本還帶來了多項性能優化和重要問題修復,為開發體驗全面升級。
虛擬陰影貼圖
常規的陰影渲染技術,如級聯陰影貼圖(CSM),已經不能滿足高面數模型和復雜場景對于陰影質量的要求,而虛擬幾何體(Virtual Geometry)功能的推出更是加劇了這一挑戰。因此,團結引擎 1.4.0 推出了GPU 驅動的實時陰影渲染技術,虛擬陰影貼圖(Vritual Shadow Map)。
憑借其超高的分辨率(16k x 16k),虛擬陰影貼圖能夠在大型場景或高精度模型的陰影渲染中表現優異,相較于傳統方法呈現更好的陰影效果和更平滑的陰影 LOD 層級過渡,同時保證運行效率。
若要開啟虛擬陰影貼圖,您只需打開工程的Project Settings,在Quality > HDRP中找到 Virtual Shadow Map 模塊,通過開關"Globally Enabled"即可一鍵開啟 VSM。
開啟后,虛擬陰影貼圖將替代 HDRP 中原先所有的 Shadow Mapping 方案,如平行光所使用的級聯陰影貼圖。您幾乎無需對現有的工程做任何調整,便可一鍵將場景中的所有陰影渲染方案切換為虛擬陰影貼圖。
目前,若要開啟虛擬陰影貼圖,則需同時在Project Settings中開啟虛擬幾何體(Virtual Geometry)的全局開關。但虛擬陰影貼圖并非只能作用于 VG 物體。即使未開啟虛擬幾何體,虛擬陰影貼圖仍能夠為這些Renderers生成高質量陰影。我們強烈推薦您同時開啟虛擬幾何體和虛擬陰影貼圖功能,從而取得更好的模型和陰影渲染效果。
更多詳情,歡迎訪問以下鏈接:團結引擎用戶手冊 | 虛擬陰影貼圖 https://docs.unity.cn/cn/tuanjiemanual/Manual/VirtualShadowMap.html
Profiler
團結 1.4.0 支持在 Profiler 功能中查看虛擬幾何體相關的渲染數據。
在 Game View 窗口的 Stats 面板中,新增了當前渲染中開啟和關閉虛擬幾何體功能的 Renderer 數量的數據。
在 Profiler 窗口的 Renderering 區域下,新增了虛擬幾何體相關的渲染數據,包括 Pass 調用次數,Pass 繪制三角形的預估數量,Cluster 在剔除前收集的數量和剔除后實際繪制的數量,GPU 的顯存占用大小以及傳輸數據的數量。
上述的部分虛擬幾何體數據會以折線圖的形式展現在 Profiler 中。
Shader Graph
Shader Graph 同步新增了對虛擬陰影貼圖功能的支持,在項目中打開虛擬陰影貼圖功能后,等待 Shader Graph 重新編譯后,即可在所有使用 Shader Graph 并能產生陰影的物體上開啟虛擬陰影貼圖功能,無需額外操作。
優化
優化 render loop 的性能
團結引擎 1.4.0 中,重點優化了 render loop 的性能,使其在一個100萬物體的場景中的性能大大提升。這不僅提升了 runtime 時的渲染性能,同時也大大提升了 Editor 能流暢編輯的物體數量,使開發者有更高的自由度來創建場景。
由上圖可見,我們成功使render loop 從優化前的 142+ms 降低到 13+ms,其中 CullScriptable 從 55+ms 降低到 6+ms。團結引擎后續版本會繼續優化 render loop,使其性能不斷提高。
此外,我們還對 VG 物體的 transform 更新以及 alpha clip 材質物體進行了性能優化。
重構、優化剔除流程
我們把 Frustum culling 由 world space 轉為 clip space,優化其性能;改進了 occlusion culling 的剔除效率,使剔除更加高效、精確,降低了 overdraw。
優化 Mesh 導入時 cluster 的構建
我們對 Mesh 生成 cluster 的效率進行了優化,對比團結 1.2 版本,導入速度對比如下:
此外,我們還優化了 cluster 的內存排布,使其更加緊湊,更有利于 GPU 的訪問。
優化 cluster streaming 的效率
在之前的版本中,cluster streaming 是執行在主線程上的,當場景較大且 cluster 眾多時,streaming 的分析和上傳會占用較多的主線程資源;因此團結引擎 1.4.0 中,把 cluster streaming 過程從主線程移出,以提供更好的性能。
優化顯存用量和 GPU 性能
在團結引擎 1.4.0 中,我們優化了虛擬幾何體對顯存的用量,盡可能地壓縮每個階段的數據量,使其更加緊湊和 GPU 友好。這不僅降低了對設備的顯存需求,也間接的提升了性能。
通過更加合理的 pass 分配,降低了 GPU 對 buffer 的讀取帶寬。
改進與 LOD Group 的兼容性并優化性能
虛擬幾何體可以和 LOD Group 一起使用。所謂的一起使用是指 LOD Group 和虛擬幾何體(VG)可以一同開啟,但會優先使用 VG。所以您可以在 runtime 實時地控制 VG 的開關。這主要是為了使開發者使用同一套開發流水線,方便開發者的配置。
VG 物體使用攝像機相對渲染
在之前的版本中,VG 物體使用的是絕對世界空間坐標,而在團結引擎 1.4.0 中,VG 物體將使用相對于攝像機位置的坐標進行渲染,從而避免渲染遠處的游戲對象時(具有較大的世界空間坐標),浮點數精度降低帶來的一系列問題,例如坐標不精確和 Z 沖突。
Shader Graph
團結引擎 1.4.0 現已升級 Shader Graph,進一步提升功能易用性,并添加多個新節點和新 Shader,為開發者帶來更高效、便捷的著色器編輯體驗。
新增功能
新增Local Variable,支持在 Shader Graph 中定義局部變量,模塊化布局,簡化節點網絡,提升邏輯清晰度。
新增渲染優化工具包,提供 Keywords 與 Passes 自定義剔除功能,減少性能開銷,提高渲染效率。
新增Scalable Lit與Fabric兩種 Shader,支持靈活調整渲染質量與材質特性,平衡性能與視覺表現。
新增三十余個節點,包括 Procedural/Shape, Input/Lighting 等,覆蓋常用動態模型,簡化光照渲染開發。
操作優化
優化LOD 預覽,便于開發者進行整體調試。
優化顏色分類并新增熱力圖顏色模式(Heatmap),提升節點類型識別度,后者幫助快速識別圖表中 GPU 占用量高的節點,進一步優化性能。
代碼升級
我們集成了Unity 2022.3.28f1 - 2022.3.48f1之間所有版本的更新和修復(詳情見: ReleaseNote),開發團隊經過幾個月的努力修復了超過千個 bug,提高了團結引擎的性能與穩定性。
ReleaseNote: https://alph a.release-notes.ds.unity3d.com/search?fromVersion=2022.3.28f1&toVersion=2022.3.48f1
以上就是此次團結引擎 1.4.0 版本的重大內容更新。
自 2024 年 1 月 1 日發布至今,團結引擎下載量已超過 22 萬,基于團結引擎構建的項目數量超過 50 萬。團結引擎一直關注本土開發者需求, 建立起了小游戲、開源鴻蒙和車機(HMI)三個大的平臺優勢。 踴躍的開發者給了我們非常好的反饋,讓我們可以把團結引擎做得更好。未來,團結引擎將集成適配 Unity 6 新功能,持續優化三大平臺能力,傾聽國內開發者的聲音,為大家帶來更多大家想要的功能,并且始終保持引擎的高性能、高畫質,以及穩定性。
非常期待得到你的反饋,與我們一起共建中國版的實時 3D 引擎。
[1] 團結引擎官網:
https://unity.cn/tuanjie/tuanjieyinqing
[2] 團結引擎問答專區:
https://developer.unity.cn/plate/tuanjie-engine?tab=ask
[3] 團結引擎用戶手冊:
https://docs.unity.cn/cn/tuanjiemanual/Manual/UnityManual.html
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.