3D 引擎设计
摘要
本文应用面向对象设计方法, 开发一个实时渲染的图形引睾框架结构。在结构中主要使用OpenGL 函数接口,此结构也适用干 Direct3D。使用设计模,对框架进行抽象,分成以下子系统: 数 学系统,核心系统,平台支持系统。 对千数学系统主要提供在渲染过程中盆要用到的数学, 和线性代数。例如: 向 拭,矩阵等。核心系统 是整个结构的核心, 消息处理, 当 前帧的 渲染 都在核心系统中,它负责 调节, 调用和维护其他的子系统。平台支持,主要考虑到可能的夸平台原因而抽象出来的一层, 为将来使用.从比较低的级别上来看, 图形引擎负责描绘对观察者可见的物体。典型的就是使用阴形 APT. 例如 : O pe nGL、Direct 3D 来进行涫染, 描画相应的物体。从比较高的级别上来看,引煞 主要是封装了一些固定的算法,对场呆的组织和对底层的隔离, 让使用此框架进行应用开的开发人员不必考虑底层的细节问题。本系统在 Windows 平台上使用 VC++进行开发。
关键词 3D 引擎结构; 场景组织; 四叉 树; 动态 细节度控制
Abstract
Thls paper uses object-orie nted method to design a 3D graphic engine ru·crutect ure for real time rendering . In this framework major use OpenGL API .But the idea l apply equally as well as Direct3D. Use desigi1 pattern to abstract the stmct ure and divide into such subsystems: Mathematic su bsystem, Core subsystem、Platform supply subsystem. For the Mathematic su bsyste m. the major responsib 山 ty is to provide the require of mathematic and Lin ea r algebra .Such as vector ; matrix etc. Core subsystem is the core of the whole framework ,message process ,render cLment frame are all in this subsystem. It take responsibility for adjustment ,scheduLing and maintain other sttbsystems. Platform supply subsystem is in conside ring of boast platform for the fttture. At low-leve l, a g raphic s engine has the responsibili ty to draw the objects that are visible to an observer. Typically uses a grap hjcs APT such as OpenGL or Direct3D LO impleme nt a renderer whose job it is
to correctly di-aw the objects .Al high-level ,a graphics en 伊 ne encapsulations some algorithm ,organize scene, separate the detail from low level, Let application programmers who use this engine without regard for the low level detail. Example with render API to use, develop on which platfor m, how to organize scene and some implicit algorithm. This system in the Windows platform us.ing VC + + for de velopment
Keywords 3D engine: arc血ecrure ; sce ne organize; quaternary t1·ee: dynamic detail control
目录
摘要 I.
Abstract II
第 I. 章 绪 论 I
l . l 选 题 背 景 及 目 的 I
l. 2 课 题 研 究 的 内 容 ......,..................,....................,..................................)
第 2 章 概要设计 3..
2.l 系 统整体结构描述 3..
2.2 各个 子模块描述 ....... ...... .. ....................................….· … ..................…. ·…· 3
2.2.1 数学子系统 , 4
2.2.2 平 台 支 待 5...
2.2.3 弓1 擎 核 心 ... ..................................,................,.........,.............,..........., 5
第 3 章 类之间的继承和调用 关系 7
3.1 主要类之间的继承关系.....................… ...................…. ·········· ········--···· 7
3.2 主要调用关系描述 7
第 4 章 详细设计 9..
4.1数 学子系统 9..
4.1.1 向黛 9...
4.1.2 矩 阵 1.0....
4.1.3 四 元数 1.1.....
4.2弓!擎核 心 12
4.2.l 场 景 的 组 织 1.2
4.2.2 不可 见 剔 除 21
4.2.3主 渲 染 循 环 2.2
4.2.4主 更 新 循 环 2.4.
4.3平 台 依 赖 2.6
4.3.l 窗口的创建 2.6
4.3.2 消息处理器 ....................................................................................2..7.............
4.3.3消息映射机制的实现 2.7
第 5 章 系 统 测试 3.0...............
5.1 软件测试基础理论 3.0
5.1.l 软件测试定义 30
5.1.2 软件测试基本概念 3.0.
5.2 软 件测试目的 31
5.3 软件测试方法分类,.......................................................................................3..1...
5.3.1 静态浏试与动态测试.......,.............. ......, 31
5.4 本系统 的 测试 3.1
结论..............,.......................,.., 3.3
致 谢 3.4
参考文献 3.5.
附 录 A .............. ......... .. .. ............. ......... .. .. ............. ................ .......................... ........................... 36
附录 B 40