Was ist ein Renderziel?
Bei der Computergrafikprogrammierung ist ein Renderziel ein Bereich des Computerspeichers, in dem der nächste anzuzeigende Frame gezeichnet wird. Das am häufigsten zur Erhöhung der Rendergeschwindigkeit verwendete Renderziel befindet sich normalerweise in einem Bereich des dedizierten Speichers auf der Grafikkarte in der Nähe der Grafikverarbeitungseinheit (GPU). Obwohl das Konzept nahezu identisch ist, gibt es einige geringfügige Unterschiede in den Implementierungs- und Benennungskonventionen, die mit einem Renderziel verbunden sind. Diese hängen von der verwendeten Programmiersprache oder Bibliothek ab. Einige Sprachen bezeichnen sie als Back-Buffer, Framebuffer-Objekt oder Double-Buffer. Insbesondere in dreidimensionalen (3D) Computergrafiken ist es auch möglich, mit dem Rendertarget Texturen auf Objekte zu zeichnen, um das endgültige Anzeigebild beim Kompilieren zu optimieren. In einigen Fällen ist es möglich, mehrere Rendering-Ziele (MRTs) zu haben, wobei verschiedene Teile eines Frames auf verschiedene Oberflächen gezeichnet und dann auf dem endgültigen Ziel zusammengesetzt werden.
Die Idee eines Rendering-Ziels ähnelt dem bei der Doppelpufferung verwendeten Prozess. Ein Bild wird im Wesentlichen auf eine Oberfläche außerhalb des Bildschirms gezeichnet, die eigentlich ein Speicherbereich ist. Wenn also der nächste Frame auf ein Anzeigegerät oder einen Bildschirm gezeichnet werden soll, kann dies so schnell wie möglich erfolgen der Zeichenfunktionen wurden bereits ausgeführt. Der Unterschied zu einem Rendering-Ziel bei vielen Implementierungen besteht darin, dass der verwendete Speicherbereich auf der Grafikkarte und über Hardware oder andere Aspekte der GPU verwaltet werden kann. Dies macht sie weitaus effizienter und schneller als ein softwaregesteuertes Design mit doppelter Pufferung.
Bei der Programmierung von 3D-Computergrafiken kann ein Rendertarget verwendet werden, um das Rendern von Objekten zu optimieren, die Bilder für ihre Oberflächentexturen verwenden. Der Renderkontext befindet sich in der Grafikhardware, sodass 3D-Objekte sehr schnell gerastert werden können. Auf diese Weise können auch Spezialeffekte gezeichnet werden, wodurch sich die endgültige Szene sehr schnell in einem Backbuffer zusammensetzt, da der größte Teil der grafischen Informationen auf der Grafikkarte nur über eine kurze Strecke verschoben wird.
Die Grafikhardware, Treiber und Bibliotheken, die verwendet werden, können die Funktionsweise eines Renderziels beeinflussen. Eine spezielle Einschränkung ist die Verwendung von MRTs, bei denen die Grafikkarte festlegt, wie viele Ziele gleichzeitig verwendet werden können. Einige Karten bieten überhaupt keine Hardwareunterstützung für Renderziele, obwohl ähnliche Funktionen normalerweise mit alternativen Mitteln erzielt werden können.