Unity引擎Math库Wasm SIMD支持详解
创作时间:
作者:
@小白创作中心
Unity引擎Math库Wasm SIMD支持详解
引用
1
来源
1.
https://docs.unity.cn/cn/tuanjiemanual/Manual/SIMD-support.html
Unity引擎在1.4版本中引入了对WebAssembly SIMD(单指令多数据)的支持,通过Emscripten将SSE2和ARM_NEON SIMD指令集转换为Wasm虚拟机指令,实现了性能优化。本文将详细介绍这一功能的使用方法和性能提升效果。
Emscripten支持WebAssembly SIMD功能,SSE2和ARM_NEON SIMD指令集的指令可以通过编译转化成在Wasm虚拟机下的指令进行模拟,从而获得比普通标量化运算更好的性能。
如何开启SIMD支持
通过在Project Settings -> Player -> Publishing Settings页面里勾选SIMD选项,即可打开引擎的 SIMD 支持。
Math库的SIMD优化
引擎中Math库为各个模块提供了基础的数学运算,其中的向量和矩阵等相关的运算天生适合使用SIMD进行优化。通过使用WebAssembly SIMD intrinsics重写Math库中的实现,让引擎在小游戏平台上也能够获得来自SIMD的性能提升。相比Unity 1.0版本中支持的Mesh Skinning SIMD,Math库的SIMD支持覆盖范围更广,可以让更多使用到Math运算的代码逻辑受益。
性能对比案例
以下是两个具体的性能对比案例:
案例1
- 场景配置:190个单位,平均每个单位有约20个骨骼,1万个顶点,Skin weights为4
- 性能对比:
- 未开启SIMD
- 开启SIMD
案例2
- 场景配置:160个单位,每个单位有约53个骨骼,4000个顶点,Skin weights为4
- 性能对比:
- 未开启SIMD
- 开启SIMD
方案对比(以Skinning为例)
未开启优化
GPU Skinning
SIMD
设置选项
设置选项位于Project Settings -> Player -> Publish Settings,默认开启。
注意事项
- 微信小游戏平台使用SIMD功能后,需要使用最新版本的微信开发者工具和微信小游戏SDK package才能支持Wasm代码分包功能。
本文原文来自Unity官方文档
热门推荐
华山五峰探秘:揭秘道教宫观的神秘面纱
华山日出日落星空,最佳拍摄攻略
华山一日游:西峰北峰索道探秘武侠世界
夏季运动降血糖,糖尿病患者一定要注意这6点,给大家推荐几种运动方式
羽衣甘蓝粉正确喝法:简单易学的健康饮品制作方法
进入冬天,这9种食物要常吃,健脾补虚,滋补身体
浠峰之地:探究羊脂玉与墨玉的价值对比
羊脂玉克价,收藏投资的稀有宝石分析与市场行情探讨
黑山羊脂白玉的档次评定及其相关价值分析
羽衣甘蓝粉的功效与作用
胡萝卜素是西兰花的29倍!这种蔬菜抗氧化、促排便、控血压,错过太可惜
古诗词意象解读:25个常见符号的文化内涵
玩转星际文明2:新手必看的五大核心攻略
枸杞岛如何到达 枸杞岛交通线路参考
血糖7.1,离糖尿病还有多远?
成功转型!新余这个小区从“单位管理”走向“居民自治”
“三个突出”提高小区治理质效
带状疱疹疫苗:预防胜于治疗
望仙谷:悬崖民宿里的“仙侠世界”,年游客超153万
望仙谷:峡谷古村夜宿,神仙故里一日游
南阳宛西崔氏来源及字辈
长子崔府君庙大殿
北魏重臣崔宏:从冀州神童到国号议定者
夏季家庭防火安全提示:8类常见隐患需警惕
舒适旅行:提升房车体验的秘诀
浅谈古代建筑的消防设计
安全科普 | 这些夏季燃气安全常识要牢记!
山水为骨造雄城,贵阳700年文脉从何而来?
贵阳十大景点:一半烟火,一半清欢
技术人员如何撰写年度总结,复盘年度工作?