Gehen wir von folgender Szene aus (der Pfeil markiert die Blickrichtung, beide Quader sollen sich auf der gleichen Höhe befinden):
Der dem Betrachter näherstehende Quader besitzt den folgenden Umriss (dick eingezeichnet):
Aus diesem Umriss lässt sich nun das Shadow Frustum bilden:
Es ist zu sehen, dass sich der zweite Quader vollständig innerhalb des Frustums befindet. Er kann daher bedenkenlos ignoriert werden.
Damit haben wir nun die wichtigsten Techniken beisammen, um zu bestimmen, ob ein Objekt oder Dreieck sichtbar ist oder ignoriert werden kann. Noch eine Anmerkung zur ursprünglichen Leserfrage: die Frage war auch, ob bei sich bewegenden Objekten die Bewegungsinformation in die Verdeckungstests mit einbezogen werden kann, etwa, indem anhand der Bewegungsinformationen abgeleitet wird, dass sich ein Objekt längere Zeit hinter einem anderen befinden wird und daher für die nächsten Bilder gar nicht mehr berücksichtigt werden muss. Ich könnte mir vorstellen, dass es möglich wäre, diese Information zu erfassen und zu berücksichtigen; ich vermute aber, dass der Aufwand hierfür nicht im Verhältnis zum Geschwindigkeitsgewinn steht. Das Prüfen etwa, ob sich ein Objekt innerhalb eines Shadow Frustums befindet, ist relativ einfach machbar; der eigentlich teure Schritt ist die Erstellung des Frustums. Da dieses aber vermutlich ohnehin für jedes Bild berechnet werden muss, ist der Geschwindigkeitsgewinn hier einfach zu niedrig, als dass es sich lohnen würde.
Der nächste Artikel zu diesem Thema wird sich um ein ähnliches Thema drehen und sich mit der Frage beschäftigen, wie man mit Dreiecken umgeht, die sich (teilweise) verdecken, aber von denen nicht eins eindeutig aussortiert werden kann, so dass beide gezeichnet werden müssen. Außerdem wird das in diesem Artikel unterschlagene Thema der Transparenz eine Rolle spielen. Seid gespannt!
Kommentare (2)