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官方文档
热门推荐
夜里出汗?全身湿透?这可能是身体在报警!
拆解GT750显卡必备!从工具到技巧全攻略
嫦娥六号新成果:月背样品助力验证月球岩浆洋全貌假说
男士护肤必知:打造完美肌肤的基础知识
按租金回报,房价还会跌多少?
豆浆能隔夜喝吗?这些保存小贴士请收好
武姓的历史名人有哪些,姓武出名的人
天冷了,“羽绒服”和“棉服”哪个更保暖?对比后,差距这么大!
纸质书与电子书:哪一种在保护森林和碳减排方面更出色
宝可梦全世代精灵属性与资料详解
轩辕剑2枫之舞重制版,耗费6年的同人作品,和原版相比有啥变化
原地跑和正常跑步的锻炼效果区别
电子商务平台经营者承担侵权责任的法律要件分析
三大理论分析当前美国经济衰退
出血热的治疗方案与护理要点
幽默你就笑一笑,没有一只青蛙为此死掉 | 书单
1992年属什么生肖 92年生肖解析
轻度脑梗塞适合哪些运动
湖南有梅雨季节吗?
海参泡发全攻略:从选购到烹饪,新手也能一次成功
华为即将推出医疗大模型,AI医疗市场规模将超3万亿元
探秘李白:六大谜团背后的真相!
如何培养旺盛的迷迭香(养殖技巧和注意事项)
嘴角长疱疹怎么办?四种有效治疗方法
勒沃库森vs拜仁 比赛分析 比分推荐
忘记手机号怎么办?这些方法让你快速找回!
安卓手机通讯录删除了怎么恢复?速学5个靠谱方法
如何整理科研样本数据库
如何在研发团队中实现团队内部的知识共享
汽车机油尺使用全攻略:如何查看机油状态与更换时机?