Computergrafik

Implementierungsbeispiel für Szenengraphen

Szenengraph Konstruktion | | Szenengraph Traversierung

Implementierungsbeispiel für die Konstruktion eines Szenengraphen mit einer Kamera (typischerweise in initializeOpenGL):

root = new lgl_Node();
lgl_Node *cam = new lgl_CameraNode();
cam->setPerspective(...);
cam_->setAspect(...);
cam_->setEye(...);
root->add(cam);

Dem Szenengraphen werden zusätzlich zwei unterschiedlich transformierte Geometrien mit den Modellierungs-Matrizen M1 und M2 und den Farben c1 und c2 hinzugefügt:

lgl_VBO *vbo = lglLoadObj(...);
lgl_Node *geometry = new lgl_ContainerNode(vbo);
root->add(new lgl_TransformationNode(M1)->add(new lgl_ColorNode(c1))->add(geometry);
root->add(new lgl_TransformationNode(M2)->add(new lgl_ColorNode(c2))->add(geometry);

Für jeden Frame wird die so definierte Szene gerendet (typischerweise in renderOpenGL):

root->renderSceneGraph(1/FPS);

Und bei Programmende der Szenengraph gelöscht (typischerweise im Destruktor des Fenster-Widgets):

delete root;

Live Demo: Szenengraph-Konstruktion (T#D01a)

Szenengraph Konstruktion | | Szenengraph Traversierung

Options: