prev up inhalt next

Vergleich der beiden Vorgehensweisen

Beim Clipping im WC spart man eine Transformation aller Punkte im Gegensatz zum Clipping im NPC. Dafür ist das eigentliche Clipping eines Polygon(punkte)s etwas aufwändiger als im zweiten Fall. Auch die Schnittpunktberechnung ist im NPC etwas günstiger als im WC.
Beim Clipping im WC muß das $frustum$ noch ins WC gebracht werden. Dieser Vorgang hat konstanten Aufwand und fällt ab einer gewissen Szenengröße nicht mehr ins Gewicht.
Die Zahl der Punkte, die nach dem Clipping übrig bleibt ist in beiden Fällen gleich, damit auch der Aufwand für die abschließsende Transformation.

Man kann nicht entscheiden, welche Strategie die bessere ist, denn die Effizienz der mathematischen Operationen auf dem verwendeten Prozessor bzw. in der verwendeten Programmiersprache spielen eine Rolle.

Der unnötige Aufwand der durch die Transformation der unsichtbaren Punkte ins NPC entsteht, läßt sich folgendermaßen abschätzen:

Angenommen die ganze Szene passe in einen Würfel der Kantenlänge $g$. Dann hat sie ein Volumen von $g^3$. Der Betrachter stehe im Schwerpunkt des Würfels und blicke so in die Szene, daß das View Window genau einer Würfelseite entspricht. Dann sieht er fünf Sechstel der Szene nicht. Bei gleichverteilten Punkten entspricht das auch fünf Sechstel unnötig vom WC ins NPC transformierten Punkte.

Jede Transformation verursacht 16 Multiplikationen und 12 Additionen. Die Entscheidung, ob ein Punkt im Frustum liegt, kostet im NPC sechs Vergleiche (die Hälfte der Vergleiche findet gegen 0 statt, was vermutlich nochmal schneller als ein beliebiger Vergleich ist). Dieselbe Entscheidung kostet im WC 18 Multiplikationen und 6 Vergleiche. D.h. das Clipping im WC ist pro Knoten zwei Mutliplikationen teurer. Allerding braucht man im NPC zusätzlichen Speicherplatz für die NPC-Koordinaten und den Bereichscode.

Wenn die WC-Koordinaten allerdings nicht vorliegen, sondern für jedes Frame neu aus den MC-Koordinaten errechnet werden müssen, sieht es etwas anders aus. Dann bleibt der Aufwand des Clipping im NPC gleich, denn der erste Schritt besteht jetzt in einer Transformation mit MC_NPC. Der Aufwand des Clipping im WC steigt aber um eine Transformation MC_WC für jeden Polygonpunkt.

Trotzdem hat die parallele Speicherung der WC-Koordinaten ihre Berechtigung. Sie werden für die Beleuchtung benötigt (hier allerdings nur die der sichtbaren Punkte) und viele Datenstrukturen, die die Bestimmung des sichtbaren Teils der Szene wesentlich effizienter machen, arbeiten auf den WC-Koordinaten.


prev up inhalt next