Share to: share facebook share twitter share wa share telegram print page

 

Szenengraph

Ein Szenengraph ist eine Datenstruktur, die häufig bei der Entwicklung computergrafischer Anwendungen eingesetzt wird. Es handelt sich um eine objektorientierte Datenstruktur, mit der die logische, in vielen Fällen auch die räumliche 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 für die spezifischen Erfordernisse der Anwendung an. Feste Regeln, welche Funktionen ein Szenengraph erfüllen muss, gibt es daher nicht.

Hierarchische Modellierung

Aus graphentheoretischer Sicht ist ein Szenengraph ein zusammenhängender gerichteter Graph ohne gerichtete Kreise, dessen Wurzelknoten die Gesamtszene (das „Universum“) enthält. Dieser Wurzel untergeordnet sind Kindknoten, die die einzelnen Objekte der Szene, oder Eigenschaften wie Transformationen und Farben enthalten. Diese Knoten können 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 ermöglicht die hierarchische Modellierung der Objekte in einer Szene. Jeder Knoten des Szenengraphen hat üblicherweise eine Transformationsmatrix. Bei Manipulation dieser Matrix wird das zugehörige Objekt selbst, aber auch die Objekte aller untergeordneten Knoten transformiert. Man unterscheidet in diesem Fall zwischen Objektkoordinaten (Koordinaten eines Objektes bezüglich des übergeordneten Objektes) und Weltkoordinaten (Koordinaten eines Objektes bezüglich 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. Enthält eine Szene viele Kopien eines Objekts, so können all diese Kopien durch ein Objekt repräsentiert 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 Rädern dienen. Ein Knoten im Szenengraph repräsentiert das Objekt Auto. Dieser Knoten hat vier Kindknoten, die jeweils die Transformationsmatrizen der einzelnen Räder enthalten. Diese vier Kindknoten wiederum haben ein und den gleichen Kindknoten, der ein Objekt vom Typ Rad enthält. Ein Objekt – vier Darstellungen. Wird die Position oder die Lage des Auto-Knotens verändert, so wirkt sich die Veränderung auch auf alle Kindknoten, also in diesem Fall die Räder, aus. Eine manuelle Neuberechnung der Position der Räder ist also nicht erforderlich.

Zu den mathematischen Grundlagen siehe den Artikel Grafikpipeline.

Bounding-Volume-Hierarchien

Oft 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 mitgeführt. Jedem Knoten ist also zusätzlich ein Bounding Volume zugeordnet, das die räumliche Ausdehnung des Knotens samt Kindknoten anzeigt. Als Bounding Volumes werden einfache geometrische Körper 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 Überprüfung 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

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9