小弟刚开始接触一个3d的项目 有些无从下手 现在征求一些建议和想法一、要求显示3d画面(这当然是废话 呵呵)
但做法有很多种
使用direct 或者openGL 由程序员用代码画出来
或者由专业的3d制图人员用画图软件画图 由程序员用程序进行解析并显示?
这两种方式的显示 都大概是怎么个流程?二、现在FLASH做3D到什么程度了 能否进行场景漫游 打包好的FLASH文件或者AS 能否与外部程序进行交互 如果可以 是怎么个实现流程 请大家多多给建议哈
但做法有很多种
使用direct 或者openGL 由程序员用代码画出来
或者由专业的3d制图人员用画图软件画图 由程序员用程序进行解析并显示?
这两种方式的显示 都大概是怎么个流程?二、现在FLASH做3D到什么程度了 能否进行场景漫游 打包好的FLASH文件或者AS 能否与外部程序进行交互 如果可以 是怎么个实现流程 请大家多多给建议哈
解决方案 »
- VC6.0开发环境中按F9不能设置断点了,而用鼠标单击那个设置断点的小手图标是可以的
- 窗口最小化问题,非常奇怪的问题,大家帮帮忙
- 分布式软件的通信方法都有哪些?我只知道有socket、远程过程调用。还有别的方法吗?越详细越好
- AddPage:不能将参数1从“const char [5]”转换为“LPCTSTR
- 菜鸟问题?
- 对话框使用菜单的ON_UPDATE_COMMAND_UI(IDM_AA, OnUpdateAA)怎么不管用呀
- CAsyncSocket::SendTo中的那个port是什么概念?????????
- CDMA Moden指令集(高分求,不够你开口)
- “轮寻”问题。
- 具有上传下载功能的ActiveX的问题,求解决~
- 窗口问题
- 如何让ActiveX接收拖拽?
二,flash 的3d已经牛到常人无法想象的程度了。几年前玩过一个日本brand好像是叫slave开发的同人flash游戏,那环境,那肌肤真实的质感……illusion之流和那个比起来差了十万八千里去了,现在更是无法同日而语。
但做法有很多种
(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插件后就能正常浏览,没有意外。
其流程如下:
三维图形及动画场景的显示,就是把所建立的三维空间模型,经过计算机的复杂处理,最终在计算机二维屏幕上显示的过程。一般,设计三维图形软件要经过以下步骤:
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提供双缓存来制作动画。计算机在显示前台缓存中的画面同时,在后台缓存中绘制下一帧画面,需要显示后台缓存中的画面时,只要用函数把前后台缓存交换即可:图形变换常用的函数,有:平移、旋转、放缩。
三维图形是通过二维视口(屏幕)来观看的,因此,对三维图形要进行投影变换和透视变换
嗯,可以~起先游戏就是这样子来的,角色的动作靠几个关键帧循环出来的~这样的话,就直接用DX或OpenGL纹理贴图完成~制作过程:用三维软件(3Dmax or Maya)做人物,关键动画帧,分别渲染,得到三维图~ 再在DX or OpenGL里加载使用~
PS:图片存储类型随便啦,有相应库都可以读的~不知道回答对没~ 呵呵
自己做D3D或者OpenGL并非是说叫你用这个进行实体建模,现在有好多三维建模的软件已经非常成熟了,将他们的模型导出加载到你自己的项目中是非常好的解决方案。这个关口你不过,就永远在3D门外。
为什么我推荐DirectX3D不推荐OpenGL呢,原来人们认为OpenGL模型更精确一些,但是现在DirectX 3D经过这么多年的发展已经非常成熟,同时DirectX有Draw、Show、sound等已经形成了一个完整的体系,有微软和一大批软件公司的支持。而OpenGL已经没有进一步发展的动力了,所以D3D吧,没错。D3D开头学习困难一点,有了一定的基础知识以后攻克数据交换的难关,比方可以先从.X文件开始。