《SAR-高性能跨端互動引擎-陸澤耿.pdf》由會員分享,可在線閱讀,更多相關《SAR-高性能跨端互動引擎-陸澤耿.pdf(34頁珍藏版)》請在三個皮匠報告上搜索。
1、SAR-高性能跨端互動引擎陸澤耿引擎架構師2016 2018 騰訊 Moba 手游、微信小游戲2019 加入字節,互動小游戲研發2022 SAR 引擎研發1.SAR 引擎概況2.SAR 引擎架構3.創新業務4.未來展望1.SAR 引擎概況行業背景淘寶-淘寶人生拼多多-推金幣抖音極速-金幣果園抖音-臉萌沖撞業務架構Web 3D 引擎性能瓶頸JS 運行時JS 引擎的執行效率受到 JS 解析器的限制。不同設備上的差異較大。單線程模式引擎核心渲染需要與業務代碼競爭有限的 JS 線程執行時間。面向 object 系統傳統的面向 object 系統在較為復雜的場景下存在場景數據訪問效率較低的問題。SARS
2、AR CreatorSAR EngineNative 運行時雙線程渲染ECS 系統引擎能力2D 文本/精靈圖Spine 動效PBR 渲染多種工作流業務案例直播禮物用戶增長活動頁面懂車帝-3D 看車抖音合養小火人性能提升FMP(線上平均值)CPU 占用(線下 IOS)BabylonJSSAR4.0 s2.0 s47%37%14Benchmark2.SAR 引擎架構2.1 引擎整體架構混合架構拓展包核心包BindingNative基于核包拓展引擎功能負責對接底層 Native 對象C+實現 ECS 系統對接不同的渲染后端渲染資源抽象序列化與反序列化實現 JS 與 Native 通信2.2 運行時多
3、模式、雙線程渲染運行時多模式Native 模式使客戶端集成的 Native 代碼運引擎需要通過兼容性檢測Wasm 模式使 EMCC 編譯的 WebAssembly 包可隨業務包發布Asm 模式使 EMCC 編譯的 Asm 包純 JS 的實現雙線程渲染2.3 引擎模塊設計ECS 系統ECS內存布局Archetype:描述類組件的集合Chunk:ECS 內存分配的最單位傳統object內存布局內存布局分散,容易產 Cache MissECS 系統共享內存內存池:每個內存 2M,Chunk 分配在內存上虛擬指針:32位的指針,11位存儲內存編號低21位存儲在內存上的偏移JSBridgeNapi:跨端
4、框架 BindingWasm:EMCC BindingJSBridge參數交換區 SwapqueueCreate Entity 實現NPM Packages拓展包提供了頻、物理、粒、spine等功能業務可以根據具體的業務場景搭配使核包和拓展包,實現引擎代碼裁剪第三方 Native Runtime第三庫作為引擎倉庫的submodule 依賴EMCC 編譯的 wasm,asm產物到 addon 包中運時將渲染數據傳遞給Native 進繪制3.創新業務演講內容中插入視頻格式:mp4分辨率:不低于1920*1080C+與 Swift 混編的RealityKit 渲染后端跨端到 AVP/Pico 等XR 設備應4.未來展望引擎編輯器生態GI 效果增強:light map,reflection probe,light probe延遲渲染管線陰影:Shadow Cascades定義 陰影 passGFX Device:Metal,Vulkan調試模式:內存 profile,運時 debug資產商店:AIGC 資產庫,粒資產庫,材質資產庫官建設技術分享開源社區建設THANK YOUQ&A環節