www.wikidata.de-de.nina.az
Ein Szenengraph ist eine Datenstruktur die haufig bei der Entwicklung computergrafischer Anwendungen eingesetzt wird Es handelt sich um eine objektorientierte Datenstruktur mit der die logische in vielen Fallen auch die raumliche Anordnung der darzustellenden zwei oder dreidimensionalen Szene beschrieben wird Der Begriff Szenengraph ist nur unscharf definiert Dies liegt daran dass konkrete Szenengraphen in der Regel anwendungsgetrieben entwickelt werden Die Programmierer nutzen also die Grundidee passen sie aber fur die spezifischen Erfordernisse der Anwendung an Feste Regeln welche Funktionen ein Szenengraph erfullen muss gibt es daher nicht Hierarchische Modellierung BearbeitenAus graphentheoretischer Sicht ist ein Szenengraph ein zusammenhangender gerichteter Graph ohne gerichtete Kreise dessen Wurzelknoten die Gesamtszene das Universum enthalt Dieser Wurzel untergeordnet sind Kindknoten die die einzelnen Objekte der Szene oder Eigenschaften wie Transformationen und Farben enthalten Diese Knoten konnen wiederum Wurzel eines weiteren Baumes also einer weiteren Hierarchie von Objekten sein Da es sich um einen Graphen nicht um einen Baum handelt kann ein Knoten auch mehrere Elternknoten haben Dieser Ansatz ermoglicht die hierarchische Modellierung der Objekte in einer Szene Jeder Knoten des Szenengraphen hat ublicherweise eine Transformationsmatrix Bei Manipulation dieser Matrix wird das zugehorige Objekt selbst aber auch die Objekte aller untergeordneten Knoten transformiert Man unterscheidet in diesem Fall zwischen Objektkoordinaten Koordinaten eines Objektes bezuglich des ubergeordneten Objektes und Weltkoordinaten Koordinaten eines Objektes bezuglich des Ursprungs des Universums der Wurzel des Szenengraphen Durch diese hierarchische Sicht wird der Aufbau und das Manipulieren einer Szene deutlich vereinfacht Man muss nicht jedes Einzelteil eines Objektes einzeln transformieren sondern transformiert einfach die Gesamtheit aller Einzelteile Enthalt eine Szene viele Kopien eines Objekts so konnen all diese Kopien durch ein Objekt reprasentiert werden Es gibt dann mehrere Wege von der Wurzel zu dem Knoten mit diesem Objekt jeder mit seinen eigenen Transformationen und anderen Eigenschaften Man spricht von Instancing Als Beispiel mag die Modellierung eines Autos mit vier Radern dienen Ein Knoten im Szenengraph reprasentiert das Objekt Auto Dieser Knoten hat vier Kindknoten die jeweils die Transformationsmatrizen der einzelnen Rader enthalten Diese vier Kindknoten wiederum haben ein und den gleichen Kindknoten der ein Objekt vom Typ Rad enthalt Ein Objekt vier Darstellungen Wird die Position oder die Lage des Auto Knotens verandert so wirkt sich die Veranderung auch auf alle Kindknoten also in diesem Fall die Rader aus Eine manuelle Neuberechnung der Position der Rader ist also nicht erforderlich Bounding Volume Hierarchien BearbeitenOft werden Szenengraphen eingesetzt um die Szenen einer Anwendung effizienter zu rendern oder um Berechnungen wie Kollisionsabfragen zu beschleunigen Dazu wird zusammen mit einem Szenengraphen eine Hierarchie aus Bounding Volumes mitgefuhrt Jedem Knoten ist also zusatzlich ein Bounding Volume zugeordnet das die raumliche Ausdehnung des Knotens samt Kindknoten anzeigt Als Bounding Volumes werden einfache geometrische Korper wie achsenparallele Quader AABBs am Objekt ausgerichtete Quader OBBs oder Kugeln verwendet Mit Hilfe der Bounding Volumes werden dann vor dem Rendervorgang alle unsichtbaren also nicht im View Frustum liegenden Elemente bestimmt Wenn ein Knoten bereits als nicht sichtbar klassifiziert wurde ist eine Uberprufung seiner Kindknoten nicht mehr notwendig So kann mit geringem Aufwand die Menge der Geometrie die potentiell sichtbar ist und darum gerendert wird verringert werden Bekannte Szenengraphsysteme Bearbeiten3D Systeme Java 3D JavaFX JMonkeyEngine Open Inventor OGRE OpenSceneGraph Panda3D Szenengraph Standards PHIGS VRML X3D Abgerufen von https de wikipedia org w index php title Szenengraph amp oldid 223628445