小弟刚开始接触一个3d的项目 有些无从下手 现在征求一些建议和想法一、要求显示3d画面(这当然是废话 呵呵) 
      但做法有很多种
      使用direct 或者openGL 由程序员用代码画出来
                            或者由专业的3d制图人员用画图软件画图  由程序员用程序进行解析并显示?
      这两种方式的显示 都大概是怎么个流程?二、现在FLASH做3D到什么程度了 能否进行场景漫游 打包好的FLASH文件或者AS 能否与外部程序进行交互 如果可以 是怎么个实现流程     请大家多多给建议哈

解决方案 »

  1.   

    一,一般是directx3d和opengl,但有些牛人会自己开发3d引擎玩。
    二,flash 的3d已经牛到常人无法想象的程度了。几年前玩过一个日本brand好像是叫slave开发的同人flash游戏,那环境,那肌肤真实的质感……illusion之流和那个比起来差了十万八千里去了,现在更是无法同日而语。
      

  2.   

    一、要求显示3d画面(这当然是废话 呵呵) 
          但做法有很多种 
       (1)使用direct 或者openGL 由程序员用代码画出来 
       (2)由专业的3d制图人员用画图软件画图  由程序员用程序进行解析并显示? 
          这两种方式的显示 都大概是怎么个流程? 
    ---------------------------------------------------
        既然是新手的话,(1)你做不来的,(2)是可行的。把场景先用建模软件(如3dmax、Creator)画出来,然后程序把模型读出来控制就行了。读模型也有两种方法:一种是自己写读模型的代码,这个也是很难的,好在现在有很多读3ds文件的代码和例程(百度一下就能找到)可以参考。另一种找一个图形引擎,即别人已经把读模型的代码写好,你只需调用函数即可。当然一般这是要钱的。我常用一个叫Vega的开发包(其实就是个引擎),它能读Creator建出的模型。Creator/Vega是比较好的3d场景实时浏览应用的解决方案。当你发布时,则需要购买Vega的运行版license,大概7000元一个(很多年前的价格了,现在不知道了),当然,很多人也用D版的。
    二、现在FLASH做3D到什么程度了 能否进行场景漫游 打包好的FLASH文件或者AS 能否与外部程序进行交互 如果可以 是怎么个实现流程 
    ---------------------------------------------------
        Flash可以了,不过场景不能做得太大。Flash 8的时候,别人就给Flash做了3D引擎,有好几个,比较著名的有
         1.Away3D
        2.Papervision3D
        3.Sandy 3D
        到Flash 10的时候,Adobe公司决定自己搞,于是Flash 10便有了自己的3D函数。
         几个引擎的介绍见下:
    http://ntt.cc/2008/04/02/the-list-of-open-source-realtime-3d-engine-for-flash.html    不过,听用过的人说,说Flash 10自己的3D功能还比不上上面3个3D引擎的功能,毕竟上面3个已经做了好几年了。其中最常用的是Papervision3D。不过我发现Papervision3D做出的东西有的页面不能正常浏览,除了要装Flash 8插件外好像还要装什么东西,但有不会自动把他全部装好。所以我喜欢用Sandy 3D,因为能确保我的客户装了Flash 8插件后就能正常浏览,没有意外。
      

  3.   

    这几种方法,各有各的优点吧,要求时间上的响应速度,还是用direct或者opengl开发好一些,在此基础上做些扩展功能感觉随便一些,个人感觉用opengl更好些,可以为公司节省一项开支嘛,毕竟是开源的啊
    其流程如下:
    三维图形及动画场景的显示,就是把所建立的三维空间模型,经过计算机的复杂处理,最终在计算机二维屏幕上显示的过程。一般,设计三维图形软件要经过以下步骤: 
    A.图元建立三维模型。(以OpenGL(Open Graphics Library)为例,OpenGL是一个开放的图形程序库,它可在UNIX、Windows 95、Windows NT等环境下运行) 
    B.设置观看物体的窗口和观看点(视点)。 
    C.设定各物体的属性(如色彩、光照、纹理映射等) 
    D.如果要物体动起来,还要进行图形变换(如几何变换、视窗变换和投影变换等)。 
    E.三维图形的二维化。 
    流程如下: 
    利用OpernGL的库函数, 我们能较容易按步骤实现三维图形处理软件的设计。 
    1. 建立三维模型 
    建立三维模型,就是在三维坐标系中画三维场景。利用画点(Point)、画线(Line)、画多边形(Polygon)等函数可以建立复杂的空间模型。在表示三维空间时,一般用齐次坐标(Homogeneous Coordinate)。在实际应用时一般把一系列顶点(Vertex )组织起来以构成物体或图元。 
    2.置窗口和视口 
    图形显示的区域称为显示窗口。流程顺序为: 
    定义一个窗口一般由以下步骤完成:设置窗口模式,设置窗口位置、大小,初始化窗口,窗口颜色设置。 
    清理窗口是指把窗口清成某种颜色。 
    要观看场景,也需要一个窗口,即视口。通俗地讲,视口变大,场景被放大;视口变小,场景被缩小。 
    3.设置光照 
    要使物体具有真实感,就要对物体进行光照处理。在计算机图形学中,物体的真实感应考虑两种因素:光源和物体材质。 
    光源:对人眼而言,光线照射物体可以看见两种光:反射光和透射光,其中反射光有三个成分:环境反射、漫反射和镜面反射。 
    光源的实现过程为: 
    常用的有: 环境光、漫反射光、镜面反射光、光源位置、点光源聚光指数、点光源聚光指数、点光源发散角。 
    材质:材料的颜色是由物体对R、G、B光的反射率来定义的,它也分为环境光、漫反射光和镜面反射光。 
    4. 动画 
    三维动画,就是把三维物体通过各种三维图形变换,把它投影到视口中。OpenGL提供双缓存来制作动画。计算机在显示前台缓存中的画面同时,在后台缓存中绘制下一帧画面,需要显示后台缓存中的画面时,只要用函数把前后台缓存交换即可:图形变换常用的函数,有:平移、旋转、放缩。 
    三维图形是通过二维视口(屏幕)来观看的,因此,对三维图形要进行投影变换和透视变换
      

  4.   

    另外我听说3D的图形也有分矢量和普通的   据说制作所使用的工具也不一样 那么矢量三维图是否能用dx或者opGL来直接加载呢?
      

  5.   


    嗯,可以~起先游戏就是这样子来的,角色的动作靠几个关键帧循环出来的~这样的话,就直接用DX或OpenGL纹理贴图完成~制作过程:用三维软件(3Dmax or Maya)做人物,关键动画帧,分别渲染,得到三维图~ 再在DX or OpenGL里加载使用~
    PS:图片存储类型随便啦,有相应库都可以读的~不知道回答对没~ 呵呵 
      

  6.   

    你要是以后希望继续做3D方面的工作,必须从D3D开始。
    自己做D3D或者OpenGL并非是说叫你用这个进行实体建模,现在有好多三维建模的软件已经非常成熟了,将他们的模型导出加载到你自己的项目中是非常好的解决方案。这个关口你不过,就永远在3D门外。
    为什么我推荐DirectX3D不推荐OpenGL呢,原来人们认为OpenGL模型更精确一些,但是现在DirectX 3D经过这么多年的发展已经非常成熟,同时DirectX有Draw、Show、sound等已经形成了一个完整的体系,有微软和一大批软件公司的支持。而OpenGL已经没有进一步发展的动力了,所以D3D吧,没错。D3D开头学习困难一点,有了一定的基础知识以后攻克数据交换的难关,比方可以先从.X文件开始。
      

  7.   

    max的版本不同文件差距不小呢