3D游戏图形OGRE

2020-03-01 144浏览

  • 1.OGRE 浅析
  • 2.网上资源 http://sourceforge.net/projects/ogre/http://www.ogre3d.org/(官方网站)
  • 3.OGRE LOGO
  • 4.本次课程的主要内容 OGRE 简介 OGRE 的安装 如何用 OGRE 来进进 行进进 用程序的开 进 进进进 进
  • 5.OGRE 简介 OGRE:Object-Oriented Graphics Rendering Engine (面向对象的图形渲染引擎)  C++ 开发面向对象且使用灵活的 3D 引擎。  目的:让开发者方便和直接开发基于 3D 硬件设备的 应用程序或游戏。  引擎中的类库对更底层的系统库(如: Direct3D 和 OpenGL )的细节进行了抽象,并提供了基于现实世 界对象的接口和其它类。 如果你熟悉 Direct3D 或者 OpenGL ,你会知道直 接写一个图形程序需要多少代码,当你了解 Ogre 让 你可以用很少量的代码来构建一个完整的三维场景
  • 6.OGRE 简介Ogre:Ogre 3D 不能处理用户输入,不能管理 你的游戏状态,不能做网络通讯,不能播 放声音。它只是做为一个 3D 渲染引擎被 设计出来,并且那就是它唯一的应用。 开发一个游戏需要结合其它引擎 : 物理引擎 :physX,ODE 等 声音引擎:一般用 FMOD 网络引擎: Raknet,Orz 等 界面设计 :CEGUI
  • 7.OGRE 简介 这部分主要介绍 ◦ OGRE 特性 ◦ OGRE 中的模块 :
  • 8.OGRE 引擎 特性  Ogre 几乎拥有了商业 3D 渲染引擎的全部特性 ,甚至在某些方面超越了它们。  全面并同等的支持 OpenGL 和 Direct3D  全面支持 Windows , Linux 以及 Mac OS X 平台  进 进 并 进 进 可进 进 展的 进 进 进 象框架,能方便的插入到已存在 进 进 进 进 进 进 进 进 进 进 进 的应用程序框架中  自动处理渲染状态和空间剪裁 强大且成熟的材质管理和脚本系统,可以不动一行代 进 去进 进 进 行材 进 进 进  支持所有纹理混合和绑定技术,同时支持对 GPU 进 程 进 技进 进 ,支持 进 进 进 进 进 进 言和所有高 进 进 进 进 进 进 进 言形式的各种 进 进 进 进 着色语言,其中高级语言包括: Cg , HLSL 和 GLSL
  • 9.OGRE 引擎特性  支持多种纹理图片格式,包括: PNG , TGA , DDS , TIF , GIF , JPG ,同时支持特殊格式的纹理,其中包括:一维纹理( 1D ), 容积纹理 (Volumetric textures) ,体积纹理( Cubemaps )和压 缩的纹理格式如: DXTC  全面支持渲染到纹理( Render-to-Texture )技术和投影纹理(贴 花, Projective Texturing-decals )。  全面支持材质 LoD (细节层次, mipmapping )技术  优化的二进制模型文件格式,同时支持手动和自动 LoD 生成  同时拥有多种从商业或者开源 3D 模型软件导出到 Ogre 模型格式和 动画格式的插件,其中包括官方以及用户提供的版本。  全面支对顶点和索引缓存( vertex and index buffers )、顶点声 明( vertex declarations )以及贴图缓存( buffer mappings )
  • 10.OGRE 引擎特性  全面支持骨骼动画和姿态动画( pose 动画,顶点动画 的一种),每个顶点可以混合任意数目的骨骼权重  支持软件和硬件加速蒙皮  支持静态几何体批次( static geometry batching )  支持二次贝塞尔曲面( biquadric Bezier patches )  给出以插件方式链接不同场景结构的接口,允许你使用 适合自己应用程序的场景体系( 基本的八叉树“ octree” 场景管理做为一个例子出现在插件中)  高级可屏蔽场景查询系统( Advanced maskable scene-querying system )  全面支持多种阴影技术,包括模版阴影( stencil ), 纹理阴影( texture ),叠加阴影( additive ),调制 阴影( modulative ),并且全部支持硬件加速
  • 11.OGRE 引擎特性  高级插件方式的粒子系统,可扩展的发射器( emitters ) ,效果器( affectors ),渲染器( renderers ) ( ParticleFX 作进 插件的例子被包含在工程里面) 进 进进 进进进 进进 进进进 进进 进  全面支持并且方便使用的天空盒( skyboxes ),天空面 ( skyplanes ),以及穹顶( skydomes )  以精灵效果为基础( sprite-based )并得到渲染优化的 公告栏( Billboarding )技术  以单一队列为基础的渲染管理,允许全面操作渲染执行顺 序  自动管理透明对象  成熟且可扩展的资源管理和载入系统,文件系统支持的文件 包括 zip , pk3 格式
  • 12.OGRE 中的模块 中由很多模块组成,每个模块互相配合, 共同实现 OGRE 的强大功能和优秀特 性。 OGRE 的模块大致可表现为如下结构,这 也基本上是 OGRE 工程文件的结构:  OGRE ◦ OgreMain ◦ Plugins ◦ RenderSystems ◦ Tools
  • 13.OgreMain 模块                  场景组织体系 Material 管理 插件动态加载系统 数学支持库 渲染器和几何管道 网格 / 几何实体管理 进源 管理 天空 / 背景渲染 公告板系统和粒子系统 日志和异常进进 理 事件进进 听器 进 进解进进器和 进 进进像加 进 进进器 自定义内存管理器 基本动画 骨骼动画 字体渲染 / 字体加载 覆盖( Overlay )表面,二维元素
  • 14.Win32 平台管理模块 实现了 。 特性 Windows 平台的基本平台服务 ◦ 输入管理 ◦ 配置系统
  • 15.BSP 场景管理 该插件用 BSP 树和 clusters 提供了室内场 景的管理。它可以进 入 进 Quake3 的关卡。 特性 ◦ BSP 树 ◦ 关卡导入 ◦ Shader 支持
  • 16.其它模块 文件系统插件 ◦ 提供在文件系统的文件夹中定位资源的能力 。 GuiElement 插件 ◦ 提供标准的二维表面元素,如文本输入区和 进 框 。 OctreeSceneManager 插件 ◦ 用八叉进 管理 进进 进进 准进 进 景。可用它渲染地形。 进 进进进 进进进 进进
  • 17.其它模块 ParticleFX 插件 ◦ 此插件提供了标准的粒子发射器和粒子特 效影响器。 Direct3D10 渲染系统插件 ◦ 此插件提供了基于 Direct3D10 的渲染系统 。 Direct3D9 渲染系统插件 ◦ 此插件提供了基于 Direct3D9 的渲染系统。
  • 18.其它模块  SDL 渲染系统插件 ◦ 此插件提供了基于 OpenGL 和 SDL 的渲染系统。  3ds2oof 工具 ◦ 这个工具可以将 3D Studio 的网络文件( .3ds )转换 成 .oof 格式( OGRE 以前的网络文件格式)。 ◦ 这个工具已经被抛弃了。  3Dstudio Max 导出器 ◦ 这是一个 3D Studio MAX( 版本 4 或 5) 的插件,可以将 3D Studio 的模型数据转换成 OGRE 的 .mesh 或 .skeleton 格式。
  • 19.其它模块  位进进 字体 进 进进 建工具 进进 ◦ 能过此工具你可以把二进制字体文件转换成 OGRE 的 .fontdef 文件。  Milkshape3D 导出器 ◦ 这个工具是 Milkshape3D (一个建模工具)的插件,它 允许你将模式导出成 OGRE 支持的 .mesh 和 .skeleton 文件格式。  Python 接口 ◦ 设计这个子工程的目的是以 dll 的形式提供一个接口, 使 Python (一种脚本语言)可以直接驱动 OGRE ,并 且允许 OGRE 直接调用 Python 脚本以实现游戏相关的 脚本语言。
  • 20.安装 OGRE 这部分主要介绍 ◦ 获取 OGRE ◦ 支撑环境 ◦ 编译 OGRE ◦ 运行 DEMO ◦ OGRE 运行期结构
  • 21.获取 OGRE 是一个开放源码项目,该项目的 网址是 ogre.sourceforge.net 。在这里 可以获取到 OGRE 的最新版本和文档 ,此外还可以在论坛上与其它开发者交 流。 www.ogre3d.org官方网站上也可获得 OGRE
  • 22.支撑环境 是一个比较大的项目,不可能每 个功能都独立完成。 OGRE 的编译和使 用需要一些其它库作为支撑环境。在 Windows 环境下编译和安装 OGRE 需要 如下支撑环境: OGRE ◦ DirectX 9 SDK ◦ 其它第三方库 ◦ VC 系列 // 推荐 vs2005 及以上 (vs2005 需要 补丁 sp1),ogre1.2 以后不直接支持 vc6.0 和 vs2003,
  • 23.编译 OGRE sdk, 但推荐对源码进行编译 .  编译前需下载 vs2005 的依赖项,解压缩并将  可以直接安装 ogre Dependencies 整个目录 copy 到 ogre 主目录里 vs 2005 ,设置工作环境 (1) 在主菜单中选择 [ 工具 ]-[ 选项 ...] ,打开 " 选项 " 面板,在左边目录选择 [ 项目 ]-[VC++ 目录 ] ; (2) 在右栏设置 Include 和 Lib 目录:  打开C:'>C: