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官方文档
热门推荐
力量训练后,白面包竟是补糖神器?
运动后补糖有讲究:白米饭还是燕麦?
中国象棋协会通报“录音门”:王天一等被终身禁赛
2666分特级大师熊奕韬圣路易斯推广象棋,车轮战激发青少年热情
新疆南疆十天九晚精品小团,十大景点深度体验攻略
蝴蝶兰、水仙、金桔……6种植物让春节更喜庆
软件开发项目精益生产
软件开发:探索未来趋势与挑战
高端酒店纷纷落户杭州 为何青睐这三个区域?
郑州地铁3号线一站拟改名“寅宾门”,引发文化传承与实用之争
如何保护网站免受黑客攻击
不要放松对信息和网络安全威胁的警惕
白日梦、镜子、窥视窗:电影如何构建隐喻世界
现实题材微短剧:以创新传播助力社会价值实现
A股全面飘红成交破1.37万亿,机构看好春节前红包行情
马齿苋:从野菜到食材,营养与药用价值兼备
未来医疗触手可及:智能化手术护理信息管理系统
一文详解:中国银行储蓄卡从挂失到补办全流程
如何安全设置和保护银行储蓄卡密码
莫名疲劳是正气不足
肉苁蓉炖羊肉,美味又滋补
18岁加入直播团队,职业发展有多香?
紫外线消毒灯助力荨麻疹患者床上用品清洁
告别皮肤瘙痒,四款低敏床垫使用体验大公开
纯棉还是丝绸?荨麻疹患者的床上用品选购指南
海南迪拜湾:欧式城堡酒店与热带海岸度假胜地
孩子的问题多半出在大人身上
爸爸带娃的好处,远远超出你的想象
MBTI测试的缺陷及其对学生产生的严重不良后果
《桃源深处有人家》开放7级菜谱,10种新料理详解