前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动端Mesh限制

移动端Mesh限制

作者头像
太阳影的社区
发布2021-10-15 16:55:39
7940
发布2021-10-15 16:55:39
举报

Skinned Mesh虽然这里写死了限制最多75个骨骼,实际上可以通过修改引擎源代码来放宽限制:

这里的代码来自Engine/Source/Runtime/RHI/Public/RHIDefinitions.h,修改上方的“75”就可以放宽骨骼数量要求。通常建议放到256。

另外说一下为什么限定75:GLES2.0时代寄存器数量有限,于是就在引擎里限制死了骨骼数量。但是在GLES 3.0不需要这种限制,所以可以直接在源代码里面改大限制。

除了直接改代码还可以:

一是用贴图存储矩阵,但shader里不好处理旋转和缩放,因为将矩阵转成四元数再插值旋转很麻烦,所以到这一步我就放弃了,直接用矩阵插值旋转。同样也不方便支持IK等骨骼动画的融合 第二是用类似分材质的方式,比如说将身体分成头身脚,这样它们就是单独的模型,但是他们可以共用同一套骨骼。在CPU每帧计算完没根骨骼的矩阵之后,需要把矩阵传进GPU。但是就没必要在进行渲染的时候整套骨骼都传了,只需要传影响这部分的骨骼。比如全身75根,影响头的只有20根,那其实渲染就可以只传20根。缺点就是得手动处理映射关系,以及1个部位就是1个Drawcall。 第三纯CPU算矩阵,效率太低,不推荐。

参考源代码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档