Panda3d 场景管理
文章目录
许多简单的 3D 引擎维护一个 3D 模型列表,然后在每一帧对这些模型进行渲染。在这些简单的引擎中,必须分配一个3D模型(或从磁盘加载它),然后将其插入到要渲染的模型列表中。模型在插入到列表中之前对渲染器不“可见”。
Panda3D稍微复杂一些。它不是维护要呈现的对象列表,而是维护要呈现的对象树。对象在插入树之前对渲染器不可见。
该树由PandaNode的类对象组成。这实际上是许多其他类的父类:ModelNode,GeomNode,LightNode等。在本手册中,我们通常将这些类的对象称为简单的节点,由这些节点组成的树称为场景图。
应用程序中可能有许多场景图。事实上,从技术上讲,任何存在的节点树都是一个独立的场景图。但是为了渲染3D模型,我们通常谈论标准的3D场景图,其根部是一个称为render的节点。
Panda3D还创建了一个用于渲染2D对象的场景图。这用于将文本、图像和 GUI 元素放在 3D 场景的顶部。此场景图位于名为 render2d 的根下,但这将在后面的部分中进一步解释。