在场景树中,子节点在一般情况下只能有一个父节点与之相关联,但是也有子节点拥有多个父节点的情况。如图2.3为每一个节点只有一个父节点的情况,图2.4为子节点拥有多个父节点的情况,在子节点拥有多个父节点与之相关联的情况下,即代表一个几何对象需要被多个组节点多次引用时,例如上图2.1当中同一类型的树木需要被放置在不同街道的不同位置时,由多个父节点指向同一个子节点渲染速度要快很多,因为节点总数减少,内存占用变小,场景遍历的步数也变少了,但是渲染的最终结果不变。
图2.3 每个节点关联不同的父节点 图2.4 一个子节点拥有多个父节点
场景图中包括了许多类型的节点,用来满足程序中的各种各样的功能。例如,细节层次节点LOD可以根据距离的远近调整模型显示的细节,来加速渲染;开关节点可以通过使子节点有效或者失效,根据当前的渲染负荷有选择的对子场景进行渲染;变换节点可以改变各个子节点的坐标变换状态来改变子节点在场景中的位置。
2.2 OSG三文渲染引擎
OpenSceneGraph是一个性能十分高的三文渲染引擎,它的开源性也使得它可以广泛用于虚拟仿真、虚拟现实、科学工程化等领域。OSG以OpenGL作为底层平台,使用C++进行开发,具有跨平台性,可在MacOS X、Windows、UNIX/Linux、Solaris、AIX等多种现在主流的操作系统下运行。
OSG的层次结构如图2.5,在底层的图形硬件之上,OSG封装了OpenGL,然后OSG在底层使用OpenGL,应用程序只需要调用OSG提供的系统API即可开发上层的应用程序。 深空目标中段飞行仿真中的航迹生成软件的开发(3):http://www.751com.cn/jisuanji/lunwen_16052.html