比如用3DMax做的一个3D人物模型,让其想屏幕里跑,越跑越小....怎么实现?

解决方案 »

  1.   

    照相机的位子不变,使用perspective方式,你的人物的坐标,离照相机越来越远,自然就是越来越小了。
      

  2.   

    3DMax做的3D模型要转换成 OpenGL模型或Direct3D模型才能用。
    在 OpenGL 和 Direct3D 里面非常好做,你变换空间坐标就行
      

  3.   

    使用3DMax中的模型时,导入的是整个人体模型,而人体的运动是很复杂的,要想使它运动的比较逼真,就必须控制人体的头部、躯干、四肢几个大的部分,所以使用导入的模型,控制起来是比较困难。我建议控制复杂的模型时,还是自己定义它的几何信息和拓扑结构,这样运动起来的效果才会很逼真。至于你说的模型的大小,使用perspective方式是可以实现的,不过我还要建议你一下,对于远距离的景物,要考虑使用精度低的模型,这样绘制的效率会高些。
      

  4.   

    VCXP(【聪明的冰棍】) :   你说的非常地正确,我就是要把3D模型放到2D游戏里面去,就像生化危机系列一样.哪位能提供一些提供基础信息地文档和网站?
      

  5.   

    如果不用 Direct3D/OpenGL, 就需要一些图形学的基本知识了下面的计算过程和 Direct3d 中的差不多:
    1、 通过世界矩阵,把模型坐标转换到世界坐标中。
    2、 把世界坐标的转换到摄影机坐标
    3、 把这个 3d 模型投影到 摄影机坐标的平面上 (透视投影),特别注意被遮住的点(消隐)
      

  6.   

    这里一些理论性的文档http://cgd.pages.com.cn/cgd/develop/3D/200109/3DProg.0.htm
      

  7.   

    还是用 Direct3D 吧。几何变换,光照,材质,贴图 一个一个的实现太麻烦了,并且效率肯定不高。把 3dmax 的模型保存为 .3ds, 在转换成 .x , 直接用 Direct3D 就可以显示/处理了。
      

  8.   

    你狠!!!“要把3D模型放到2D游戏里面去”我刚想到的一种方法:
        将它读到opengl中!然后,在opengl中改变它的z坐标(因为你要往屏幕里跑)!
        在每改变一次,就用glReadPixels读取,转换成dib或bmp,
        再拷贝到2d画面去!
        在整个过程中,你不显示opengl画面
      

  9.   

    大家如果玩过生化危机系列就应该清楚我所想的那种方式。以生化危机3为例:其光盘下有一个data_a目录下的bss子目录中保存着所有的场景图(JPG格式)
    将背景图贴到下面,在上面绘3D人物,每个场景有固定的可行动路线和事件触发条件。(这些数据是在开门的时候初始化的)事件触发条件也基本上以3D人物在屏幕中的坐标为准。比如转换视角,切换背景等等。虽然我没开发过3D相关的东西,但觉得生化危机那类的东西完全是可以自己做个小样儿玩的.
    我最近还忙于看电影以及加班,没有过多时间研究,所以大家继续阿。说的越多越清楚