这篇文章是基于官方文档进行整理的,也不知道是否匹配2.8.0版本的delta3d,后续学习过程中,如果发现文档有出入的地方,再进行修改吧。
一、简介
Delta3d是一套可用在游戏开发、仿真项目开发以及其他图形应用程序开发方面的开源引擎。它的模块化设计继承了众所周知的开源项目,如OSG图形渲染引擎,ODE物理引擎,CAL3D动画库,OpenAL立体音效,Qt,CEGUI,Xerces-C,Producer,智能感知驱动,HawkNL网络引擎,以及GNE游戏网络引擎。Delta3D没有采用将第三方引擎或框架屏蔽到底层的方式,而是采用比较简单的方式直接将其集成在一起,这样用户在需要的时候可以直接访问这些库的API。
Delta3D的主要目的是提供一套可以在游戏开发以及所有虚拟现实应用开发过程中使用方便的、简单的、灵活的API库,在这些基础组件的基础上,它还提供了很多的工具供用户使用,如仿真工具、训练工具、游戏场景编辑器(STAGE)、BSP编译器、粒子编辑器、模型浏览器、HLA浏览器等。此外,它还扩展了一些应用开发框架,如
- 应用基础类库dtABC,用于快速开始应用程序的开发
- 动态角色层dtDAL,通过该框架可以在动态情况下处理角色的角色代理以及角色属性等
- 直接方法连接的信号/槽,用于实现系统的消息机制
- 管理角色的游戏管理器,Game Manager
- 插件式的地形读取、渲染、装饰工具
- 用于角色之间互相通信的高层消息处理
dtCore
-
输入设备映射, Keyboard、Mouse、Joystick、Trackers
-
运动模型,类似OSG的场景漫游,可利用Delta3D的运动模型,对场景角色施加运动驱动,也可之间驱动相机,当然也可以直接使用OSG的场景漫游,运动模型包括:Fly、UFO、Walk、Orbit、First Person
-
环境渲染,clouds、haze、skyboxes、time of day
-
粒子特效,Smoke、Explosion、Custom
-
地形渲染,Infinite Procedural terrain、Heightfield-base terrain
-
文件加载,支持的文件格式包括
.3dc .3ds .ac .dw .flt .geo .ive .logo .lwo .lws .md2 .obj .osg .tgz .x .zip
.bmp .dds .gif .jpg .pic .png .pnm .rgb .tga .tiff .txp
.wav
-
相机控制,Field of View、Tripod
-
多相机支持
-
多窗口支持
-
物理系统,Rigid Body、Collision Detection、Auto-bounding sharps
-
Open GL光照
-
贝塞尔路径节点
-
OpenGL 2.0支持
-
GLSL顶点、片元着色器
dtAnim
- 动画混合
dtABC
高层应用开发基础组件,可方便应用层的开发。
- 应用程序模板
- 天气接口(visibility, cloud coverage)
- 与FLTK的窗口集成
- 与其他窗口系统集成的控件封装
dtHLA
新版本已删除,统一用dtNet(但我发现2.8.0里面有一个dtHLAGM组件,不知道是不是跟这个一样的)
- 坐标系统转换
- 引爆接口(Detonation interface)
- HLA 实体接口
dtTerrain
实现地形加载、渲染、装饰的地形处理框架,对地形数据的读取、渲染及地形装饰采用插件式结构
- 地形分页分块,地形图形处理,地形噪声生成
- DTED数据读取
- 具有连续层次细节的SOARX渲染
- 程序化的植被布放,land cover classification(LCC)支持
- 图形覆盖,GEOTIFF支持
dtDAL(新版本已废除,由dtCore替代)
动态角色层,提供一个创建、访问和操纵场景角色的通用框架
- 角色代理和角色属性
- 角色插件库管理
- 角色工程和角色关系图加载
- 角色属性类型:Sound(声音)、Terrain(地形)、Character(人物)、Texture(纹理)、Static Mesh(静态网格)、Particle System(粒子系统)、Enumeration(枚举)、Actor(角色)、Color(色彩)、Vec2/3/4(矢量)、String(字符)、Doulbe(浮点)等等
- 角色代理基础引擎
dtGUI
与Crazy Eddie’s GUI(CEGUI)的直接接口
- UI元素绘制和渲染
- 可扩展的界面皮肤接口
- 默认GUI
dtGame
该库为用户提供了一个创建复杂游戏或仿真训练应用的完整框架,游戏管理器是一个用于单机或C/S网络模式下系统角色或组件之间进行通信的高层基础框架。
- 游戏角色和代理
- GM组件结构采用插件方式,有默认的消息处理器,规则组件和日志组件
- 消息组件结构 - 包含消息和消息工厂
- 网络诊断 - 支持单机、C/S网络模式以及回放
- 用于发送、接收和记录消息的消息流
- 基础的游戏管理客户端、服务器管理器
dtUtil
Delta3D中使用的基础实用对象功能
- 文件日志和XercesXML文件操作
- 纹理、噪声、矩阵、字符串操作
- 程序库管理
- 类型安全
dtBSP (新版本已废除)
自动备份已经加载的对象到BSP格式的文件中
- 最适合室内场景
- 导出到 .osg .ive
dtAudio
提供高级声音回放功能
- 2D/3D音效
- 完整的音效控制(gain, pith, position, play, stop, pause, rewind等)
- Doppler(多普勒)音效
- 声音硬件的高校使用
dtNet
提供用于多玩家网络应用的高层API
- C/S结构
- 可靠/非可靠数据包网络传输
dtPython
提供通过Python脚本访问API的接口,需下载Python和Boost(具体版本后续使用到后再给出)
- 完整的API访问接口
STAGE
一个完整的可视化的场景编辑器,可用于仿真、训练、游戏场景的编辑和制作
- 地图编辑,工程资源和库(如角色库)的管理
- 角色的可视化创建于操纵
- 属性编辑器以及角色链接的撤销与重做
- 单屏多视口
- 线框光照及纹理模式
- 可配置的撤销、重做用户接口
- 角色搜索与全局角色管理
- 纹理、网络、声音和粒子浏览
Tests
提供的一系列应用程序测试,通过这些测试可以帮助用户进行快速熟悉Delta3D的使用以及应用开发
- 29个示例,几乎覆盖Delta3D的所有方面
- 超过22000行的单元测试
跨平台
支持Windows、Linux(Fedora Core 4)二进制兼容
- MS Visual Studio 2003 solutions and projects
- 完整的SCons脚本
Utilities
实用工具
- 图形化的例子特效编辑器,为例子特效编辑提供方便的GUI和显示
- 3D模型浏览器,简单易用、独立的3D模型显示工具
- BSP编译器(已废除),加载、编译并保存通用对象到BSP格式的文件
- HLA图形化的行为浏览器,一个简单的3D展示所有HLA网络中的实体
以上是Delta3D的简介,包括Delta3D的组成模块。
下一篇,将会开始使用Delta3D,并以一个个的小示例来熟悉此框架…