VC控制3D模型
想做一个基于对话框的小程序,由我和另一个做3D的同事合作,由他用MAYA建一个小动物的模型和动画,我做一个程序控制这个模型,例如通过键盘来控制这个模型向前走,向后退,左转,右转,打呵欠等动作,由于我们两个人都没有做这方面的经验,想请教一下,我们两个人分别负责哪些工作。
另,看了一下关于OPENGL的介绍,有了一些想法,不知道是对还是错的,请指教。
1 OPENGL可以建模,但是效率太低,所以使用MAYA这样的工具来建模,使用3D工具建完模型后,这些模型实际是很多的多边形和填充这些多边形的图片构成的,我做的程序就是将这些多边形和图片的对应关系记录下来,同时使用OPENGL来重新绘制这个模型。也就是说,我的程序中至少要一个接口是用来读取并保存3D模型的。
2 静态模型翻转的时候,由于3D建模工具已经将这些多边形和填充图片与角度的关系记录下来了,所以相对来说要容易一些。
3 如果模型有动作的话,比如奔跑,那么在翻转的角度不同时,显示出来的画面是不一样的,在网上调查来看,是需要做骨骼结构的,将模型的多边形与骨骼结构关联起来,这样在程序中只需要关注骨骼部份的动作,然后再根据骨骼与外形多边形的关系计算出多边形位置并重绘出来。
如果我的想法是正确的话,那么如果做的模型足够精致,也就是外形的多边形数量很大的话,做出来的程序对CPU、显卡、内存都有比较高的要求了。
所以有两个实现的方法,不知道哪个方法更好
方法一:做真3D的,也就是显示出来的画面都是需要计算然后再重绘的,这样的话,对硬件的要求就比较高,但是后期开发中应该会有很多可以重用的部份,如小动物如猫和狗的奔跑计算方面应该是一样的。
方法二:做假3D的,由于只存在水平旋转,所以分别做8个方向的所有模型图片和动作并保存下来,通过键盘输入来确定显示哪个方向的哪个动作显示出来。这样做的话,程序应该不会有太大的难度,建模的话难度应该也不会太大,只是后期的开发就没有什么可以重用的了。
这两种方法我和我的同事应该分别负责哪些部份的工作,应该去看哪方面的资料。
另如果提供OPENGL读取3D模型和动作的源代码就更好了。