游戏制作详解自----OpenGL 入门教程(七)-游戏开发频道-中国IT实验室-技术·资讯·教育·服务·社区
首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
 您现在的位置: 中国IT实验室 >> 游戏开发 >> 游戏开发入门 >> 正文
游戏制作详解自----OpenGL 入门教程(七)
来源:ChinaItLab 作者: 时间:2004-12-29


  OpenGL中的物体是用面边界模型来描述的。我们将物体表面分割成许多个平面,记录面的形状、颜色、纹理,OpenGL根据这些参数再把这些个面绘制出来,我们就能在场景中看到立体的实体了。
  物体模型最基本的参数是它的形状,形状可以用表面来记录。而记录面的边缘就能描述面的形状。描述边缘的方法是记录边上所有线段的端点。所以用面边界模型描述物体形状的核心就是记录物体表面所有的顶点。这些顶点按所在边的顺序排列起来就能描述一个平面,许多的平面就能表示一个物体的表面,显然平面越多形状越逼真。
  
  OpenGL中描述一个顶点的方法是指定其坐标和属性,命令是:
  
  glVertex*(Coordination);
  
  该命令以参数指定的坐标和当前颜色、纹理坐标、法向等属性定义一个顶点。
  
  OpenGL中描述一个面的方法是glBegin/glEnd命令组:
  
  glBegin(形状);
  glVertex(顶点1);
  glVertex(顶点2);
  ……
  glEnd();
  
  OpenGL支持点(GL_POINTS)、线段(GL_LINES)、三角形(GL_TRIANGLES)、四边形(GL_QUADS)、多边形(GL_POLYGON)。可以在一个begin/end对中定义多个同一类型的平面,如在glBegin(GL_TRIANGLES);与glEnd();之间输入11个顶点,则会形成3个三角形,最后两个顶点则被舍弃。
  
  OpenGL还支持平面带(STRIP)和平面扇(FAN)。
  扇:在glBegin(GL_TRIANGLE_FAN);/glEnd();间输入若干顶点,则第一个顶点做为共同的顶点,第二、三个做为底边定义一个三角形,此后的每个顶点与前一个顶点做为底边定义一个三角形,所以11个顶点就会定义9个共顶点的三角形,这些三角形将形成一个扇形。
  带:输入顶点编号为123456789……;定义的三角形为132 243 354 465 567……,相邻三角形共用一条边,形成一条带状;依此类推,定义的四边形为1243 3465 5687……。
  
  实际使用中,可用3ds max/softimage/maya之类的工具以直观的方式建立物体模型保存成文件,然后再用专门的解码工具将模型转换成一系列的顶点。解码工具有三类:插件、工具软件、程序库。目前已经有许多的代码库可以解析多种格式的三维场景,如果还没有合适的还也可以自己编写。
  
  3ds max带有一个简单的.asc导出器,但功能很弱,而3dxexp则强大得多,要是不满意还可以自己写,这就得学习学习MAX SDK了。
  
  使用3ds2c之类的工具将模型转换为C代码是非常简便的一种方法,但从效率方面考虑,并不是最好的,特别是象PolyTrans之类的软件会为每个面生成一个Begin/End,象下面的这个模型,.3ds文件只有978K,而转换得到的.C文件却有6.8M之巨。稍好一点的办法是充分利用STRIP或使用VertexPointer技术,或者利用wc2pov之类的工具将转换后的多边形数据保存在文件中,使用时再调入;还有一种办法就是view3ds所用的将场景转化为编译后的glList保存起来,在使用时装入系统直接调用,速度非常快。
  

  T_FIGHTER(Hight detail)
  
  根本的解决办法还是针对自己的应用设计优化的文件格式,并制作配套的编码、解码库。
  
  处理各种格式三维文件的程序库非常多,到网上随便搜搜就能找到一大把。目前俺最喜欢的是GLScene(类示意图1 2 3),它内建树形场景支持,可解析.3ds文件和.md2文件,可扩展性极好,可惜只有delphi版本。
【责编:admin】

中国IT教育热线咨询

相关文章
dx8中关于用索引缓冲渲染索引图元
作为一个状态机的OpenGL
OGRE中的四元数与旋转
[RGSS]Sprite类方法教学
[RGSS]去掉“战斗|逃跑”选项
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
 基础入门  开发文档
 最新推荐
  多数的Windows程序都需要Windows.h和Windowsx.h这两个头文件,要确保使用它们。当然,你还需要其它......
游戏引擎演化史
在Windows上安装OGRE的方法
关于滤镜遮罩概念,Sobel 遮罩
游戏开发新手入门之Windows编程
游戏开发新手入门之位图化图形
教你实现卡通渲染的另类勾边方法
游戏设计大师谈如何成为一名游戏设
Visual C#编写 3D游戏框架示例
真正的 Java 学习从入门到精通
游戏开发经验——游戏开发的基本常
  为什么要研究攻击行为在人类有记载的5600年的历史中,共计发生了14,400次战争;今天,平均一天要发生............
游戏开发中显示对话的特殊句法
游戏原型设计的介绍
网络游戏中的攻击行为
谈动作类游戏的必要条件
规则的多元分析模式
载入位图文件到DirectDraw
Archer Game Suite 是什么?
浅谈游戏企划-新手入门篇
暴雪称霸游戏业界的六大秘密绝招
骨骼动画及示例Skinned Mesh的解析
  培训中心