Skip to main content

Was ist ein OpenGL Schatten?

Eine offene Grafikbibliothek (OpenGL ) Schatten ist eine visuelle Näherung in einem dreidimensionalen (3D) OpenGL Szene, wie ein Schatten im wirklichen Leben unter ähnlichen Beleuchtungsbedingungen gegossen werden würde.Schatten sind eine komplexe visuelle Funktion, die in OpenGL , vor allem, weil es keine angeborene Unterstützung für das Gießen von Schatten in einer Szene gibt.Stattdessen gibt es eine Vielzahl von Techniken, mit denen Schatten aus den Objekten und Geometrie in einer Szene mit verschiedenen Tools erstellt werden kann, z.Karten.In den meisten Fällen die Qualität, Genauigkeit und Geschwindigkeit von OpenGL Das Schattenrendering steht in direktem Zusammenhang mit der Verarbeitungsleistung und dem Speicher der Grafikhardware in einem Computer oder Gerät.Einige der beliebtesten Methoden zur Implementierung eines OpenGL Shadow umfasst Schattenvolumina, Shadow Mapping und Strahlenverfolgung.

Erstellen einer Anwendung mit OpenGL Schattenunterstützung erfordert mathematisches Wissen und ein tiefes Verständnis dafür, wie OpenGL Arbeiten.OpenGL wird weitgehend verwendet, um 3D -Szenen zu erstellen, die in Echtzeit dynamisch und gerendert werden. Daher müssen die Algorithmen, die zum Erstellen von Schatten verwendet werdenin der Grafikpipeline verursacht, die zum Rendering verwendet wird.Aus diesen Gründen ist die grundlegendste Methode zum Erstellen eines Schattens, der als Strahlenverfolgung bezeichnet wird, häufig für vollständige 3D -Szenen unpraktisch, da er sehr lange dauern kann.Ebene oder Position der Kamera durch eine Szene an die Oberfläche eines Objekts und berechnet dann die Farbe der Oberfläche basierend auf der Position einer oder mehrerer Lichtquellen und anderer Faktoren.Während des Rasters, bei dem die 3D-Szene auf eine zweidimensionale (2D) Oberfläche gezogen wird, damit sie angezeigt werden kannOberflächeneigenschaften müssen möglicherweise mehrmals die gleichen Pixel bewerten.Dies bedeutet Echtzeit-Strahlenverfolgung, obwohl sie Schatten genau wiedergeben würde, ist normalerweise nicht praktikabel.

Eine andere Methode, mit der ein OpenGL reg verwendet werden kann.Schatten ist als Schattenzuordnung bekannt.Diese Methode verwendet den Tiefen- oder Schablonenpuffer, um eine Szene aus dem Winkel der Lichtquelle als eine Reihe von Entfernungen von der Lichtquelle zu den Oberflächen verschiedener Objekte innerhalb der Szene zu rendern.Die Szene wird dann ein zweites Mal aus dem richtigen Betrachtungswinkel gerendert und prüft, ob jedes Pixel innerhalb eines bestimmten Abstandsbereichs innerhalb des Puffers fällt, was angibt, ob das Pixel beleuchtet oder beschattet ist.Die Verwendung von Schattenzuordnung kann Speicherintensiv sein und mit Szenen mit mehr als einer Lichtquelle mehrere Karten aus mehreren Winkeln erstellen.Schatten, der genauer ist als bei einigen anderen Methoden, aber seine eigenen Probleme präsentiert.Ein Schattenvolumen ist im Wesentlichen ein unsichtbares Stück Geometrie in einer Szene, die von der beleuchteten Oberfläche eines Objekts von der Lichtquelle entfernt ist.Dieses Volumen kann gegen andere Objekte überprüft werden, um festzustellen, ob sie in den Schatten der Oberfläche fallen, aus dem das Volumen entstanden ist.Dieses Verfahren kann sehr komplex sein und letztendlich visuelle Artefakte erstellen, wenn sie für die Geschwindigkeit optimiert werden.