龙空技术网

OSG的三维漫游系统

Itemperor毕业设计 118

前言:

此刻咱们对“osgjs”可能比较珍视,各位老铁们都需要分析一些“osgjs”的相关资讯。那么小编在网上汇集了一些对于“osgjs””的相关文章,希望小伙伴们能喜欢,看官们一起来学习一下吧!

原文链接:

随着计算机技术的迅速发展和功能的日益完善,虚拟现实技术作为信息领域研究、开发和应用的热点方向之一,越来越多地融入到了普通人的生活、学习、工作中,而三维漫游作为其中一个重要分支,也逐渐被人们所熟悉、接纳,并迅速渗透到社会的各个行业,已在计算机辅助设计、科学工程数据可视化、三维地理信息系统(GIS)、医学、游戏等多领域中得到广泛的运用。 HM000024

本系统使用三维建模软件3DS MAX 2012、集成开发环境Visual Studio 2010和开源的OpenSceneGraph三维渲染引擎,再通过CMake、osgEXP等工具进行辅助,从而以自顶向下、逐步细化的方法设计实现虚拟漫游系统。

本论文简单介绍了场景图形理论的概念及相关软件的应用,详细叙述了OpenSceneGraph体系结构和系统环境的配置以及本系统的设计实现过程,包括3D建模、主要编程技术及程序设计,最后通过测试过程体现系统的最终效果。

论文的最后对本课题所做的工作进行了总结,指出了系统存在的不足,并对以后的深入研究作出了展望。

关键词:OSG;三维漫游;计算机图形学;虚拟现实技术

With the rapid development of computer technology and functionality has improved steadily as the information field of virtual reality technology research, development and application of a hot one direction, more and more integrated into the lives of ordinary people, learn, work, and three-dimensional roaming as one of the important branches, have gradually been familiar, accepted, and quickly penetrate into all sectors of society, has been in computer-aided design, scientific and engineering data visualization, 3D geographic information system (GIS), medicine and many other areas of the game been widely used.

The system uses three-dimensional modeling software 3DS MAX 2012, an integrated development environment Visual Studio 2010 and open source OpenSceneGraph three-dimensional rendering engine, and then through CMake, osgEXP tools such as auxiliary to a top-down, stepwise refinement approach to design virtual roaming system. 查看完整请+Q:351916072获取

This paper introduces the concept of the scene graph theory and related software applications, described in detail OpenSceneGraph architecture and system environment configuration and implementation of the system design process, including 3D modeling, the main programming techniques and program design, and finally passed the test process reflects the net effect of the system.

The last topic of this thesis work is summarized, pointing out the shortcomings of the system, and the subsequent in-depth study to make the prospect.

Key words: OSG;dimensional roaming;computer graphics;virtual reality technology

2.1 OpenSceneGraph三维渲染引擎

OpenSceneGraph(OSG)是一个基于工业图形标准OpenGL的高层次图形开发API接口,即三维渲染引擎。通过它,程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序[3]。除了开源和平台无关性以外,它封装并提供了数量众多的提升程序运行时性能的算法、动态数据分页机制,针对几乎所有主流数据格式的可扩展的读写借口,以及对其他语言系统(包括Python、C#、Java)的封装支持。

OSG采用开源形式的共享方案具备了快速开发、高品质、高性能、高质量代码、可扩展性、可移植性、低费用和没有知识产权问题等诸多优势,这使得相当一部分高性能的软件已经使用了OSG来完成复杂场景的渲染工作,而大部分基于OSG的软件开发更适用于可视化设计和工业仿真。

OSG引擎组成部分包括一系列动态链接库(.dll/.so)、插件(.dll/.so)、供开发者使用的静态链接库(.lib/.a)、头文件以及可执行的工具程序实例,按照其作用来划分,可以分为以下5大类型[4]:

OSG核心库:提供了基本的场景图形和渲染功能,以及3D 图形程序所需的某些特定功能实现,主要功能是对实现最核心的场景数据库的组织和管理、对场景图形的操作及为外部数据库的导入提供接口等等。

osg库:基本数据类,负责提供基本场景图类,构建节点类、状态类、绘制类、向量和数学矩阵运算及一般的数据类等场景图形节点,也包含一些程序所需要的特定功能类,如错误调试信息和命令行解析等。

osgUtil库:实用工具库,提供通用的公用类,用于操作场景图形及内容,如裁剪、遍历、更新、数据统计及场景优化等。

osgDB库:数据的读写库,负责提供场景中数据的读写工作,提供了一个文件工具类,OSG中场景图的管理是通过遍历场景图层次结构来完成大部分的数据处理工作的。

osgViewer库:视窗管理库,可集成各种窗体管理系统,提供OSG与各种GUI的结合,是跨平台的3D管理窗口库。

osgGA库:提供了各种视景窗口交互事件的管理工具,用于构建一个与平台无关的人机设备抽象层。

节点扩展工具箱(NodeKits):扩展了核心OSG场景图形节点类的功能,以提供高级节点类型和渲染特效,节点扩展库主要包括lsgAnimation库(场景动画处理库)、osgFX库(场景特效库)、osgManipulation库(场景对象操控库)、osgParticle库(例子特效库)、osgSim库(仿真工具库)、osgText库(文字处理库)、osgTerrain库(地形处理库)、osgShadow库(阴影特效库)、osgVolume库(体渲染实现库)、osgWidget库(三维控件库)、osgIntrospection。

OSG文件读写插件:其中包括了2D 图像和3D 模型文件的读写和其他类型文件的读写功能库,可以任意扩展和删减。

内省库:提供了OSG与其他开发环境集成的功能,如脚本语言Python等。

工具程序和示例集:提供实用的工具和一百多个有关OSG使用和功能试验的例子。

2.2 Visual Studio 2010简介

Visual Studio是微软公司推出的目前最流行的windows平台应用程序开发环境。VS2010版本的集成开发环境(IDE)的界面因被重新设计和组织,变得更加简单明了,提高了可读性,并支持多个监视器。 查看完整请+Q:351916072获取

VS的主要系统组件包括:

1)编辑器:编辑器给用户提供了创建和编辑C++源代码的交互环境。提供了人们熟知的常见功能(比如粘贴、剪切),此外编辑器还提供了用颜色来区分不同的语言元素,自动标示关键字等。不仅使代码的可读性更好,而且在输入这些单词时出错的情况下可以提供清楚的指示。

2)编译器:编译器将源代码转换为目标代码,并检测和报告编译过程中的错误。编译器可以检测各种因无效或不可识别的程序代码引起的错误,还可以检测诸如部分程序永远不能执行这样的结构性错误。编译器输出的目标代码存储在称作目标文件的文件中。编辑器产生的目标代码有两种类型。这些目标代码通常使用以.OBJ为扩展名。

3)连接器:连接器组合编译器根据源代码文件产生的各种模块,从作为C++组成部分提供的程序库中添加所需要的代码模块,并将所有的模块整合成可执行的整体。还能检测并报告程序缺少某个组成部分,或引用不存在的库组件等错误。

4)库:即微软提供的预先编译好的例程集合,它通过提供专业的标准代码单元,支持并扩展了C++语言。用户可以将这些代码合并到自己的程序中,以执行常见的操作。Visual C++ 2005提供的各种库包括的例程所实现的操作,由于的节省了用户亲自编写并测试实现这些操作的代码所需要的工作量,从而大大提高了开发效率。

2.3 3D Studio Max 2012简介

3D Studio Maxchang(3ds Max)是Discreet公司开发的基于PC系统的三维动画渲染和制作软件。该软件对配置要求较低,安装外挂(plugins)除了可增强原本的功能外还可提供3ds Max本身所没有的功能,具有强大的角色动画制作能力和可堆叠的建模步骤,使制作模型有了非常大的弹性。他的推出使CG制作平台纷纷由Unix工作站向基于网络的PC平台转移,CG的制作成本大大降低,CG制作由电影的高端应用进入到电视游戏等低端应用中来,被广泛应用于广告、影视、工业设计、建筑设计、三维动画、多媒体制作以及工程可视化等领域[5]。

2.4 其他相关工具

CMake:一个跨平台的安装(编译)工具,可用简单的语句来描述所有平台的安装(编译)过程。OSG作为一款开源的三维渲染引擎,一般是以源代码的形式发布的,虽然也有用预编译的形式发布,但是由于用户的计算机环境差距甚远,很多时候官方直接提供的预编译文件根本无法使用,所以用户还是得自己编译。这就需要用户在获取源包之后,用CMake这种跨平台编译工具,编译输出project文件,进行进一步的编译。

osgEXP:在实际的项目开发中,通常是在3ds Max中建好模型,然后加载到OSG中,这就要用到osgEXP工具把.max文件转换为.osg或.ive文件,方便读取。

目 录

第1章 绪论 1

1.1 背景及现状 1

1.2 课题研究意义 1

1.3 本文的组织结构 2

第2章 系统开发工具和环境简介 3

2.1 OpenSceneGraph三维渲染引擎 3

2.2 Visual Studio 2010简介 4

2.3 3D Studio Max 2012简介 5

2.4 其他相关工具 5

第3章 系统开发及测试 6

3.1 系统的需求分析及功能 6

3.2 系统环境配置 6

3.3 系统具体实现 7

3.3.1模型的构建 7

3.3.2 视口变换操作和场景观察 8

3.3.3 漫游功能的实现 11

3.4 系统测试 15

第4章 总结与展望 18

参考文献 19

致 谢 20

附 录 21

标签: #osgjs