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官方文档
热门推荐
工作中抱怨情绪太多怎么办呢
模因:文化传播的新动力与复杂面貌
家里空间小如太压抑?这7种显大、显高级的装修技巧,值得收藏
传统之“枣”文化
2024年国庆节前,社保和养老金迎来新动态,关系在职和退休人员
如何选择贷款还款方式
无偿献血者,进一步激励奖励!
江湖小技巧大公开:掌握这些你也是高手
股东向公司借钱的税务指南
脑肿瘤术后如何进行复查?
手指尖和脚趾尖麻木的原因是什么
2025年江西公务员申论高分例文解析<1·24>
马桶黄垢怎么清理?快速清洗马桶黄垢的技巧!
电磁炉工作原理详解:从电磁感应到电路设计
了解发质类型:选择适合你的洗护产品
纯实木地板耐磨吗?家居保养小窍门
100頁要看多久?——提升閱讀效率的全方位指南
预测模型是什么
2025年债券市场投资指南:机遇、风险与策略
征地补偿费用信息公开吗?详解征地补偿款发放与受益人群
苹果手机更新软件提示“无法联系iPhone软件更新服务器”的解决方法
息肉反复发作?不想总被“割”,中医防治息肉复发有方法
参松养心胶囊说明书:成分、功效与注意事项详解
浅谈各行业中脂肪酶的作用
张本智和父母:祖籍四川却全家归化日本,是为了前程,另有所图?
什么是MPV?多用途汽车的全面解析
生物学中的四大数学模型:从稳态到生长的理论框架
低剂量维生素E也能治疗脂肪肝?中国研究证实,有效且更安全
过期的碘伏能不能用
普法小课堂——公司强制清算案件全流程工作指引