摘要
基于VRML数据的城市级场景渲染是虚拟现实、实时仿真以及交互三维设计等的重要应用,也是计算机图形学本身的一个实际应用。本文首先介绍VRML,然后指出实现城市级城市级场景快速绘制的关键,最后介绍在实时绘制的场景里交互操作的实现。
本文所做的研究工作集中在四个方面:
(1) 学习了解VRML,分析VRML的节点结构,提出了一个基于C++的快速解析VRML方法。并在原有VRML文本结构基础上实现部分数据二进制化,这种方法可以有利于文件的压缩和更快速的解析。
根据实际项目需要,在原有VRML基础上增加额外节点,实现在项目中的特殊需求。
(2) 利用OpenGL实现VRML的绘制。利用OpenGL的API函数对应上VRML各个节点的域进行一对一的绘制。
(3) 实现鼠标、键盘和其它外设(如方向盘,手柄等)在场景里漫游,为增加场景的仿真性,加入雨雪雾特效。
(4) 增加系统的可扩展性,对系统的解析器设计上进行扩展,设计实现解析的插件支持。VRML的解析为内置式解析器,增加其它三维数据格式的解析插件支持,已实现Open Flight的数据格式的插件解析支持。
关键词: VRML,OpenGL,城市级场景,绘制,外设
目录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1 背景 1
1.2 VRML概述 2
1.3 OpenGL概述 3
1.4 研究内容 4
第2章 VRML解析技术 5
2.1 VRML2.0文件的结构 5
2.2 VRML2.0域说明 6
2.2.1 SFBool 6
2.2.2 SFColor和MFColor 6
2.2.3 SFFloat和MFFloat 7
2.2.4 SFInt32和MFInt32 8
2.2.5 SFNode和MFNode 8
2.2.6 SFRotation和MFRotation 8
2.2.7 SFString和MFString 9
2.2.8 SFTime和MFTime 9
2.2.9 SFVec2f和MFVec2f 9
2.2.10 SFVec3f和MFVec3f 10
2.3 VRML类设计 11
2.4 解析器详细设计 12
2.4.1 ReadWord 14
2.4.2 ReadTransform和ReadGroup 15
2.4.3 ReadShape 19
2.5 本章小结 22
第3章 场景绘制技术 23
3.1 VRML的绘制 23
3.1.1 Transform的绘制 23
3.1.2 IndexedFaceSet的绘制 25
3.2 场景绘制加速技术 26
3.3 本章小结 27
第4章 场景交互技术 28
4.1 漫游实现 28
4.1.1 四元数 29
4.1.2 动态坐标轴 30
4.1.3 球面上的移动 31
4.2 外设支持 32
4.3 本章小结 35
第5章 系统实现和可扩展性 36
5.1 插件设计 36
5.2 软件界面 38
5.3 系统整体流程 41
5.4 本章小结 41
第6章 结论 42
6.1 总结 42
6.2 对未来的展望 42
致谢 44
参考文献 45