HOOPS模块之 HOOPS/3dGS

来源:互联网 发布:linux开机启动过程信息 编辑:程序博客网 时间:2024/06/07 17:44
 

1.1         HOOPS/3dGS

1.1.1         技术概述

1.1.1.1    什么是HOOPS/3dGS?

HOOPS 3D Graphics System(HOOPS/3dGS):HOOPS 3d 图形系统是一个高性能的3D图形开发包,供开发人员建立在Windows、UNIX和因特网运行的应用程序。HOOPS/3dGS系统高度优化的数据结构和算法大大简化了2D和3D的开发工作,用于基于CAD/CAM/CAE的矢量和栅格图形的交互、可视化科学技术、地理信息系统(GIS)应用的开发。

HOOPS/3dGS包括:

子程序库:提供创建、管理、查询和编辑应用程序的图形信息的目标代码。该库可以动态或静态链接。

示例和集成代码:帮助开发人员学习HOOPS/3dGS并运用到自己的应用程序中。

应用程序开发人员将自身的核心与HOOPS/3dGS应用程序逻辑和用户界面相结合,开发交互式的图形应用程序。

1.1.1.2    HOOPS/3dGS架构

HOOPS/3dGS是一个具有数据库架构体系的保留图形系统。HOOPS/3dGS提供了一系列的算法,以便创建、编辑、操作和查询存储在数据库中的图形信息。这种封装在HOOPS的图形数据,与界面图层能紧密结合。这种与算法结合的数据结构是面向对象设计的基本原则。

数据封装、消息传递、实例和属性继承也是HOOPS/3dGS的基本设计元素。虽然HOOPS/3dGS不是作为一个类库实现的,但其结构也采用了面向对象设计的基本方面。

HOOPS/3dGS库直接注册在应用程序的编译过程中,即与应用程序的其他对象代码链接产生可执行映像。开发人员使用HOOPS/3dGS API来创建和管理他们的应用程序中其他组件的几何对象。

如图一所示,HOOPS/3dGS 图形系统由两个主要的组件构成:被称为 HOOPS/3dGS 线段树的几何对象数据库和被称为HOOPS/3dGS结构化设备接口的渲染管线。

图 1 HOOPS/3dGS线段树和渲染管线

1.1.1.2.1   保留模式图形系统

即时模式系统:将图元不存储在显示列表中,立即渲染的图形系统。

保留模式系统:为图形显示设计的一种将图形信息存储在数据结构中的系统。

HOOPS/3dGS是一个保留模式图形库。

保留模式系统具有以下好处:

性能:

定位:

windows 系统支持:

全球渲染算法:

1.1.1.2.2   对象数据库

以对象方式存储在HOOPS/3dGS数据库中的图形数据被称为”segments”。可以将segment想象成一个描述结合对象和属性的容器。Segment和Segment之间的关系是分层的,被称为“父-子”配对。比如一个Segment可以“拥有”其他对象(包括这些对象的子对象)。这个映射关系是一对多,也就是说,一个父Segment可以有很多子Segment,但是每一个子Segment只有唯一的一个父Segment。

1)        坐标和坐标系

和大多数的图形系统一样,HOOPS/3dGS 系统中的空间位置采用了笛卡尔坐标系。HOOPS/3dGS 一般总是有X、Y和Z坐标。这意味着HOOPS/3dGS中的所有点都是三维的。然而当Z为0时表示这是一个二维的物体,因此HOOPS/3dGS可以使用更多的选项来优化二维渲染程序。

HOOPS/3dGS中的坐标采用单精度浮点类型。默认情况下,C和C++使用双精度数据(64 bits)来完成浮点数的计算。这些双精度数将在传递给HOOPS/3dGS调用时呗转化为单精度。

HOOPS/3dGS具有一个双精度模块,可以在创建和查询几何对象时使用双精度浮点数。It does this by providing variants of all the HOOPS/3dGS routines for geometry creation, editing, and querying, as well as for several of the coordinate system conversion routines.

2)        引用方式插入几何对象(Inserting Geometry By Reference)

当几何对象插入到HOOPS/3dGS数据库中时, HOOPS/3dGS会生成该几何对象的副本。这是保留模式系统的通常做法和进行数据封装的必要操作。对于某些类型的几何对象,这个数据可能相当大。生成一个副本不仅浪费空间并且使应用程序越来越大,越来越慢。

为了避免类似问题,HOOPS/3dGS提供了使用引用插入网格、数据层和图像的方式。通过引用方式插入的几何对象通知HOOPS/3dGS它们不是一个可以生成拷贝的数据。对于网格来讲,它的数据是一系列的点列表。对于数据层来说,它的数据是点列表和面列表。而对于图像来说,它就是图像数据。

3)        接口 (Interfaces)

HOOPS/3dGS支持C、C++、C#、Java、Fortran和Python。

1.1.1.2.3    数据库遍历 (Database Traversal)

数据库中的信息必须进行检查,并针对计算机硬件的特定设备接口提供格式化功能。这种操作就是数据库遍历。The internal traversal routine "walks" from segment to segment in the tree and sends the information it finds to the rendering pipeline.

1.1.1.2.4    渲染管道线 HOOPS/3dGS结构化设备接口(HDI)

HOOPS/3dGS优化的关键点就是渲染管道线,也就是HOOPS/3dGS接口化设备接口。

图 2  HOOPS/3dGS 结构化设备接口构架

原创粉丝点击