unity xmlelement 获取第二个节点_Unity开发中的注意事项(优化篇)

7347064ce70d7c2d9f2f0e61ebae5f6d.png

本篇记录在unity开发过程中的优化项。不定时更新。

1,骨骼动画选项:

----------------------------------------------------------------------------------------------

首先我们先理解一下Unity里面的“骨骼动画”。它的概念很贴近现实中的“骨骼”的含义:常见的模型被分解为两个部分:骨骼Bones和蒙皮Mesh。这些以“关节”结构连接在一起的骨头为模型构建起了一套骨架;随着骨架结构的运动变化,模型表面的蒙皮网格也会随着骨架的变动而发生改变.

在Unity中,如果导入的模型有骨骼动画,那么Unity就会自动为对应的网格添加上Skinned Mesh Renderer,来渲染这些骨骼动画。蒙皮网格渲染器组件会将模型的网格(Mesh)与骨骼节点绑定起来,当骨骼动画播放时,网格的顶点会随着它所绑定的骨骼进行运动,这便形成了“皮肤”随骨骼运动的效果.

b71a402206384a2dae7d03877c7f912c.png

运动向量(Motion Vector)的概念来源于视频压缩领域,通俗地理解,运动向量描述了在屏幕空间中,每个像素所对应的物体在连续两帧之间的运动“速度”,该“速度”值等于该像素块在这帧的位置减去在上一帧的位置,也就是当前像素下的片元在相邻两帧之间,屏幕空间位置的差。

Unity中,在Mesh Renderer与Skinned Mesh Renderer组件中都可以开启Motion Vector,用以获取物体的运动信息。若开启,相机会在渲染管线中增加一个motion vector pass,将运动向量渲染在一个Buffer当中,用户可以将Shader脚本中这个Buffer用于后处理特效。Motion Vector一般会用于运动模糊这样的后处理特效、基于时间的抗锯齿算法(temporal antialiasing)等。但是Motion Vector带来的显存中的双倍buffer开销和运算量开销是不容忽视的。而Skinned Motion Vector在移动端项目当中的应用也是很少的,一般不建议开启

2.AnimationClip

在项目的实际运行中,AnimationClip资源是运行时加载频率最高的资源之一。AnimationClip的压缩格式决定了其包体大小、运行时占用内存大小以及加载效率。

62f51061d1468a80a98e2721c3f7da71.png

Optimal压缩方法虽然可能会造成动画质量稍有降低的问题,但内存占用是最低的,所以是我们最推荐的方案。

单个AnimatorController下挂载的AnimationState数量过大,会给CPU运算带来一定的压力.所以做的时候注意animationState的数量,一般不要超过30.在展示模型界面上只用到展示动作的时候可以考虑将动画分开,只加载单个展示动画。同时动画的精度也可以做一定限制,可降低包体大小和内存使用。

-----------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值