Muss ich mir Gedanken über Quad-basiertes Rendern in realen Szenarien machen?

9

Die meiste Zeit in den ersten Kapiteln eines zufälligen Buches über Raster- und Rendering-Techniken finde ich einige Sätze über ein dreieckbasiertes Rendering-System und ein Quad-basiertes Rendering-System.

Ich bin noch nie auf eine Quad-basierte GPU oder Pipeline gestoßen. Muss ich mir darüber Sorgen machen, wenn ich mit OpenGL 3.0+ zu tun habe, oder handelt es sich nur um Legacy-Inhalte?

user827992
quelle

Antworten:

9

Nein, tust du nicht. Alle Standard-GPUs der aktuellen Generation verwenden (und verwenden seit einiger Zeit) ausschließlich dreieckbasierte Rasterisierungsmethoden. Obwohl ältere Versionen von OpenGL den GL_QUADSRendering-Modus unterstützen, wurden diese von Standard-GPUs in Dreiecke konvertiert. Es ist wahrscheinlich, dass dies GL_QUADSin den frühen 80ern oder 90ern nur zu einer tatsächlichen Quadrilaterial-basierten Rasterung auf esoterischer akademischer Hardware oder Hardware führte, die für High-End-Offline-3D-Rendering verwendet wurde (ich habe keine Beweise, die diese Behauptung stützen, ich postuliere nur).

Das Betrachten des Vierecks (und im Allgemeinen einer anderen Polygonrasterung als der Dreiecksrasterung) kann jedoch immer noch lehrreich und daher nützlich sein, indem einfach eine andere Perspektive der Dinge bereitgestellt wird. Die damit verbundenen Algorithmen sind interessant und haben manchmal noch Anwendungen, die über die Grafikprogrammierung hinausgehen. Ich habe einmal eine Edge-Walking-Polygon-Rasterisierungstechnik verwendet, um beispielsweise eine vereinfachte gefälschte 2D-Wassersimulation zu implementieren.

Dies kann Ihnen auch dabei helfen, zu verstehen, warum eine Dreiecksrasterung vorzuziehen ist, teilweise aufgrund der möglicherweise nicht planaren Natur anderer Polygone als Dreiecke und aufgrund einiger der resultierenden Optimierungen, die Sie mit Dreiecken vornehmen können.


quelle
7

Wenn Sie eine Rendering-API verwenden, müssen Sie sich nur darum kümmern, worüber Sie sich Sorgen machen müssen. OpenGL sagt nichts über Quad-basierte oder Dreieck-basierte Rendering-Systeme aus. Sie müssen sich also nicht darum kümmern.

In jedem Fall verwenden alle GPUs für Endverbraucher Dreiecke und keine Quads.

Nicol Bolas
quelle
Ich bin verwirrt. Warum also in einem OpenGL-Buch darüber sprechen, wenn die OpenGL-API auf der Annahme basiert, dass das Modell aus Dreiecken besteht?
user827992
4
@ user827992: Frag mich nicht; Viele Bücher enthalten überflüssige Informationen. Sie haben noch nie gesagt, in welchem ​​"zufälligen Buch" Sie es gefunden haben. War es tatsächlich ein Buch über OpenGL oder war es ein Buch über Grafiken, die OpenGL verwenden?
Nicol Bolas