flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
浏览主题:基于collada的3D橡皮脸的实现

基于collada的3D橡皮脸的实现
askforone (2009-06-16 18:19:38)

前几天发的关于pv3d BUG的贴子,是在研究这个时发现的。看到DDM君的回贴晚了点,已经自己想到了。不过最后用pv3d实现起来可能是个死胡同。


我已经发贴到闪吧了,只贴个路径得了,因为闪吧论坛能贴swf文件嘛
http://space.flash8.net/bbs//thread-376915-1-1.html

这种思路cpu计算量怎么看都不算大,已经空间换时间了,但是执行效率却很低。如果加ENTER_FRAME事件,基本上点两下ROTATE就卡住了。rotateZ和Y没加,因为这个模型从collada一导进来,坐标对的,但是中心点的旋转不对。。rotateY一动就出错,公式部分从pv3d里copy改的。还不知道是公式错了还是模型问题,头有点大,rotateZ反正看不出3d效果

做这个只是好玩,不过对collada和pv3d的渲染有了很多认识,还发现了pv3d里面也有些许错误的公式。下一步是研究下矩阵和pv3d里build_collada的方法。用更省空间的参数来替代collada看看能不能让执行效率提高。

目前没时间管这个了。本来是想给游戏加个脸谱编辑和贴图功能的,暂时放弃,先做游戏的其他功能了。。



flash 3d 研究所 askforone
(2009-06-16 18:22:11)
导过N次模型了,实在搞不懂为什么坐标会那么奇怪。collada里没这个参数。建collada的参数里,转来转去总碰到距阵。。太久没碰数学了,公式都忘了,实在苦手

flash 3d 研究所 askforone
(2009-06-16 18:24:24)
另外,研究所教程里
var camera:FreeCamera3D=new FreeCamera3D(2,400);
里面两个参数好象是没用的。。。

flash 3d 研究所 DDM君
(2009-06-17 18:36:00)
非常棒的思路和实践,感谢askforone君的分享!!个人对橡皮脸也有一些难解的课题,比如计算控制点的衰减区域等等。


ps:FreeCamera3D去年已经没用了,研究所的包之所以保留是因为怕按我们教程来进行的朋友没有freecamera3D时报错。
目前推荐用我们最新的FlabCamera3D

flash 3d 研究所 askforone
(2009-06-18 16:38:42)
因为不懂矩阵,所以bitmap类里的一些转换一直头大。如果不考虑贴图,只是点的位置计算的话,这个思路根本可以不用pv3d就可以运行了,点的计算函数已经全面了。运行效率也应该还行。

衰减区域是指3D功能里的soft_select么,那个通过计算和选取点间的距离来得出衰减值倒是不难,以前在maxscript里用这种方法写过些简单的绑定和蒙皮动画。在pv3d里面,最后整去整来,还是运行效率和功能的取舍了。

DDM君你先说过的一句话太有道理了,大概意思所有3D引擎性能都差不多的,效率高的功能和扩展性肯定就差点。可以考虑只用点的计算来生成坐标变化方面的动画,最后生成有贴图的动画时,才去重组一次collada,那样应该不卡,只是不够直观.相当于去掉了3D里的activeShade(翻译成实时贴图更贴切?)

flash 3d 研究所 askforone
(2009-06-18 16:41:42)
最后是用这种思路,可以实现某次flash3D技术交流上,那个小日本高人(名字忘了,呵呵,一说大家应该都知道),在3dmax和maya里操作,在swf里能够直接反应出变化。用pv3d直接读内存读max里的点坐标就可以做到。不过肯定是达不到很流畅的效果

flash 3d 研究所 DDM君
(2009-06-19 08:01:50)
感谢您的赞扬啊,呵呵。我们做三维的一生都会在效率和效果间取舍和权衡的啦,哈哈,现在以后都是这样。
城户先生== 小日本......askforone君真幽默啊

对,就是类似max的soft selection或maya的soft Mod那种。实时拖动我们也遇到处理缓慢的情况,虽说城户君的模型比较简单,但效率也还是很不错的。直接变形就不会出现效率太低的问题,实时拖动就会。

比如我们这个面部变形范例的效率就还是不错的,而且是个有200多面的脸。
http://www.flab3d.com/tutorialfile/sample04/sample03.html


flash 3d 研究所 askforone
(2009-06-19 15:21:44)
collada本身是可以含有一定动画信息的。现在我在想办法一次性把变形的动画计算结果放进collada里,那样不会每桢读取一次,效率就上来了。

现在新的难题是collada里的点的排序,虽然命名很有规律,但是还是得解释为什么collada导入pv3D后,坐标会发生变化,而且变法不同。或许用其他方式生成的collada正常。如果有很多不同软件和操作平台的人都在研究这个就好了

flash 3d 研究所 yuxing5
(2009-06-20 15:39:16)
希望国内的才人,能比小日本城户先生的flash3D 强!!中国加油

flash 3d 研究所 DDM君
(2009-06-21 08:05:13)
加油加油!

flash 3d 研究所 askforone
(2009-06-24 19:26:45)
似乎pv3d不支持点的位置变化的动画,daeReader这个类直接报错。而且collada以collada或dae加载进去,坐标和贴图明显会乱。很难控制。md2文件打开是一堆乱码,更难控制。完全没有头绪


flash 3d 研究所 DDM君
(2009-06-25 16:34:00)
嗯,虽然不大理解是什么意思,但就点位置来说,感觉还是很容易修改的啦

flash 3d 研究所 noxss
(2010-01-09 06:21:43)
诶…Collada很郁闷,经常矩阵乱变,Away3d里面有个把模型导出为AS3的类,你可以去看看,对理解会有帮助的

flash 3d 研究所 半调子
(2010-01-11 10:11:38)
askforone(2009-06-24 19:26:45)

似乎pv3d不支持点的位置变化的动画,daeReader这个类直接报错。而且collada以collada或dae加载进去,坐标和贴图明显会乱。很难控制。md2文件打开是一堆乱码,更难控制。完全没有头绪

PV2.1是支持DAE的顶点动画的,不过这个顶点动画 只是模型的顶点动画 而不是交互类的动画.
例如可以在 MAX中完成一个盒子来回扭动的动画 然后烘焙成顶点动画,但是这个顶点动画却不能交互的 只是固定的动画播放

flash 3d 研究所 半调子
(2010-01-11 10:13:00)
并且这样会出现个很尴尬的问题 DAE的体积会变得很大 无顶点动画的DAE可能500K而包含顶点动画的DAE一般都会2M或者以上大小

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了