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官方文档
热门推荐
定期存款到期取款时间选择全解析
金相切割机的切割技术解析
金属圆锯机在工业制造中的应用
网络营销中的文案创作技巧
水果店怎么运营?多元化营销策略获客不断
教你用空气炸锅做出完美酥脆豆腐
稳定型心绞痛的日常预防攻略
包公断案,揭秘《下陈州》背后的真实历史
豫剧《下陈州》:历史真实与艺术虚构的完美融合
经济独立:人格独立的基石
冬季免疫力提升指南:从合理饮食到规律作息
融媒体新闻如何促进高校信息传播
大暑时节巧用姜,四款食疗方助养生
肉类去腥、蔬菜去毒:焯水技法全解析
大暑至,巧用生姜祛湿寒,四款食谱保健康
酒精对它无效!诺如病毒感染进入高发期,正确消毒这样做
锂离子电池储存要求和自放电特性
18650锂电池C值详解:如何选择合适的放电倍率
冠心病患者冬季养生实用指南
2024最新指南:冠心病预防这样做最有效
饮食上做个小改变就能降血压!这些食物自带“降压”属性!
金鸡湖喷泉摄影技巧:捕捉夜晚的视觉盛宴
2024年糖尿病并发症治疗迎来突破:多个创新药物获批
健脾治疗助力糖尿病逆转,仍需持续健康管理
高温天气如何照顾虎皮鹦鹉?这7个细节最要紧
公寓养鸟不扰民:六种安静鹦鹉推荐
从黑芝麻到白萝卜:中医推荐的养生食材指南
剩菜这样处理最安全,这些食物千万别剩
六类食材食用前需焯水,可去除多种有害物质
牛皮菜焯水有讲究:这样处理更营养美味