查看: 1574|回复: 14

MorphGeometry动画实现问题

[复制链接]

该用户从未签到

发表于 2010-7-22 10:12:42 | 显示全部楼层 |阅读模式
各位有一个3万个vertices的模型,需要实现结点动画,表达构件变形情况。
我目前了解的实现方法有两种:
1 通过对Drawable的更新回调,修改Geometry的结点数组,然后调用dirty()函数更新
2 使用MorphGeometry
我没有用过Morph,不知道3万体量的模型,是否可以使用Morph?(硬件上我的配置可以保证PC上最好的)
有没有做过结点动画的高手,能够分享一下实现方法?

该用户从未签到

 楼主| 发表于 2010-7-25 22:25:10 | 显示全部楼层
为何每人理我?唉。

该用户从未签到

发表于 2010-7-25 22:38:59 | 显示全部楼层
把所有由于构件变形需要更新的顶点索引计算出来以后,直接更新顶点坐标值行吗?

该用户从未签到

发表于 2010-7-25 23:38:43 | 显示全部楼层
MorphGeometry我没有用过,,不过,,您的第一个方案也是可以的

该用户从未签到

 楼主| 发表于 2010-7-26 08:48:02 | 显示全部楼层
我已经用第一种方法实现了,没有采用MorphGeometry。
谢谢各位支持。

该用户从未签到

发表于 2010-10-19 13:44:30 | 显示全部楼层
若采用第一种方法可以实现是动画吗?这样不是相当于只有两帧图片吗?

我想实现是连续的、类似于弹性变形的动画,是否只能采用第二种方法呢?

该用户从未签到

发表于 2010-10-19 14:54:43 | 显示全部楼层
楼上的,你计算完了插值不就得到渐变啦

该用户从未签到

发表于 2010-10-19 16:16:21 | 显示全部楼层
我的理解是,即使你插值,都只是一帧一帧而已,如果你插值比较多的话,会感觉是连续的,但这样不是很麻烦吗?如果插值比较少的话,会显示成断断续续的几个图画.

但如果使用第二种方法的话,会显示成连续的平滑变化.

不知道这样理解是否正确?  我想实现某种弹性变化的动画,想采用第二种方法,但第二种方法有一点觉得不好处理的是, MorphGeometry是继承Geometry,如果节点较大,可能是一个Geode或Group的话,就不能使用了.请问还有什么好的方法呢?

该用户从未签到

发表于 2010-10-19 16:33:07 | 显示全部楼层
第二种方法也是插值出来的~~~当然插值越多越平滑

该用户从未签到

发表于 2010-10-22 16:41:43 | 显示全部楼层
我想问一下,两种方法实现的效率如何?不知道第二种的详细实现方式是怎样,但感觉第二种要比第一种好.

该用户从未签到

发表于 2010-10-25 08:52:14 | 显示全部楼层
这两种方案的实现方式是类似的,都是在CPU端对数据的处理;效率取决于更新顶点的数量和最终的绘制速度

如果顶点的变化有规律可循的话,您也可以考虑用VertexShader来进行处理,这样工作可以被分配到GPU端,也许能大大提升效率

该用户从未签到

发表于 2010-10-26 17:12:57 | 显示全部楼层
请问array, 您所说的有规律可循是指什么呢?  是指它中间插值的点按某种规律插值吗?

该用户从未签到

发表于 2010-10-26 17:13:26 | 显示全部楼层
还有VertexShader在哪里呢?

该用户从未签到

发表于 2010-10-27 21:03:20 | 显示全部楼层
VertexShader涉及到着色语言的编程,至于规律,这是由您自己决定的,事实上对于GLSL来说,它需要顶点或者像素有per-vertex或per-pixel计算的可能性

该用户从未签到

发表于 2010-11-14 09:53:30 | 显示全部楼层
我已经用第一种方法实现了,没有采用MorphGeometry。
谢谢各位支持。
martin31567 发表于 2010-7-26 08:48

我想知道下楼主的时间怎么控制的呀?还有第二种办法您试过吗?成功了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表