Übergabe von Scanline

Übergabe von Scanline ist ein Algorithmus für den sichtbaren Oberflächenentschluss, in der 3D-Computergrafik,

das arbeitet auf einer Reihe-für-Reihe-Basis aber nicht einer Vieleck-für-Vieleck- oder Pixel-für-Pixel-Basis. Alle zu machenden Vielecke werden zuerst durch die Spitze y Koordinate sortiert, an der sie zuerst, dann jede Reihe erscheinen oder Linie des Images scannen, wird mit der Kreuzung einer Ansehen-Linie mit den Vielecken auf der Vorderseite der sortierten Liste geschätzt, während die sortierte Liste aktualisiert wird, um nicht mehr sichtbare Vielecke zu verwerfen, weil die aktive Ansehen-Linie unten das Bild vorgebracht wird.

Der Hauptvorteil dieser Methode besteht darin, dass das Sortieren von Scheitelpunkten entlang dem normalen vom Abtastungsflugzeug die Anzahl von Vergleichen zwischen Rändern vermindert. Ein anderer Vorteil besteht darin, dass es nicht notwendig ist, die Koordinaten aller Scheitelpunkte vom Hauptgedächtnis in die Gedächtnis-Only-Arbeitsscheitelpunkte zu übersetzen, die Ränder definieren, die sich schneiden, muss die aktuelle Ansehen-Linie im aktiven Gedächtnis sein, und jeder Scheitelpunkt wird in nur einmal gelesen. Das Hauptgedächtnis ist häufig im Vergleich zur Verbindung zwischen der in einer Prozession gehenden Haupteinheit und dem Gedächtnis des geheimen Lagers sehr langsam, und so das Vermeiden von wiederzugreifenden Scheitelpunkten im Hauptgedächtnis kann eine wesentliche Beschleunigung zur Verfügung stellen.

Diese Art des Algorithmus kann mit dem Nachdenken-Modell von Phong, dem Z-Pufferalgorithmus und vielen anderen Grafiktechniken leicht integriert werden.

Algorithmus

Die übliche Methode fängt mit Rändern von geplanten Vielecken an, die in Eimer, ein pro scanline eingefügt sind; der rasterizer erhält einen aktiven Rand-Tisch (AET) aufrecht. Einträge erhalten Sorte-Verbindungen, X Koordinaten, Anstiege und Verweisungen auf die Vielecke aufrecht, die sie gebunden haben. Zu rasterize der folgende scanline werden die nicht mehr wichtigen Ränder entfernt; neue Ränder vom Y-Eimer der aktuellen scanline werden hinzugefügt, sortiert durch X Koordinate eingefügt. Die aktiven Rand-Tabelleneinträge haben X und andere erhöhte Parameter-Information.

Aktive Rand-Tabelleneinträge werden in einer X-Sorted-Liste durch die Luftblase-Sorte aufrechterhalten, eine Änderung bewirkend, wenn sich 2 Ränder treffen.

Nach dem Aktualisieren von Rändern wird der aktive Rand-Tisch in X Ordnung überquert, nur die sichtbaren Spannen auszustrahlen, einen Z-sorted aktiven Spanne-Tisch aufrechterhaltend, einfügend und die Oberflächen löschend, wenn Ränder durchquert werden.

Varianten

Eine Hybride dazwischen und Z-Pufferung beseitigt das aktive Rand-Tabellensortieren, und stattdessen rasterizes ein scanline auf einmal in einen Z-Puffer, aktive Vieleck-Spannen von einem scanline bis das folgende aufrechterhaltend.

In einer anderen Variante ist ein ID-Puffer rasterized in einer Zwischenstufe, aufgeschobene Schattierung der resultierenden sichtbaren Pixel erlaubend.

Geschichte

Die erste Veröffentlichung des scanline Übergabe der Technik war wahrscheinlich durch Wylie, Romney, Evans und Erdahl 1967.

Andere frühe Entwicklungen des scanline Übergabe der Methode waren durch Bouknight 1969, und Newell, Newell und Sancha 1972. Viel von der frühen Arbeit an diesen Methoden wurde in der Grafikgruppe von Ivan Sutherland an der Universität Utahs, und an der Gesellschaft von Evans & Sutherland in Salt Lake City getan.

Verwenden Sie in der Echtzeitübergabe

Die frühe Linie von Evans & Sutherland ESIG von Bildgeneratoren (IGs) hat die Technik in der Hardware 'im Fluge' verwendet, zu erzeugen stellt eine Rasterlinie auf einmal ohne einen framebuffer dar, das Bedürfnis nach dann dem kostspieligen Gedächtnis sparend. Spätere Varianten haben eine hybride Annäherung verwendet.

Der Nintendo DS ist die letzte Hardware, um 3D-Szenen auf diese Weise mit der Auswahl zu machen, die rasterized Images in VRAM zu verstecken.

Die in Spielmaschinen der 1980er Jahre überwiegende Elfe-Hardware kann als eine einfache 2. Form der Scanline-Übergabe betrachtet werden.

Die Technik wurde im ersten Beben-Motor für die Softwareübergabe von Umgebungen verwendet (aber das Bewegen von Gegenständen war Z-buffered übertrieben). Statische Landschaft hat das BSP-abgeleitete Sortieren für den Vorrang verwendet. Es hat sich besser erwiesen als die Typ-Algorithmen von Z-buffer/painter an behandelnden Szenen der hohen Tiefe-Kompliziertheit mit kostspieligen Pixel-Operationen (d. h. perspektiverichtige ohne Hardware kartografisch darstellende Textur helfen). Dieser Gebrauch ist der weit verbreiteten Adoption von Z-buffer-based GPUs jetzt üblich in PCs vorangegangen.

Sony hat mit der Software scanline renderers auf einem zweiten Zellverarbeiter während der Entwicklung von PlayStation 3, vor dem Festsetzen auf einer herkömmlichen CPU/GPU Einordnung experimentiert.

Ähnliche Techniken

Ein ähnlicher Grundsatz wird in der mit Ziegeln gedeckten Übergabe (am berühmtesten PowerVR 3D-Span) verwendet; d. h. Primitive werden in den Schirm-Raum sortiert, haben dann im schnellen Gedächtnis auf dem Span, ein Ziegel auf einmal gemacht. Der Dreamcast hat eine Weise für rasterizing eine Reihe von Ziegeln auf einmal für den direkten Raster scanout zur Verfügung gestellt, das Bedürfnis nach einem ganzen framebuffer, etwas im Geist der Hardware scanline Übergabe sparend.

Eine Software rasterizers verwendet 'Spanne-Pufferung' (oder 'Einschluss-Pufferung'), in dem eine Liste von sortierten, abgehackten Spannen in scanline Eimern versorgt werden. Primitive würden zu diesem datastructure, vorher rasterizing nur die sichtbaren Pixel in einer Endbühne nacheinander hinzugefügt.

Vergleich mit dem Z-Pufferalgorithmus

Der Hauptvorteil von scanline, der über die Z-Pufferung macht, besteht darin, dass sichtbare Pixel nur jemals einmal — ein Vorteil für den Fall der hohen Entschlossenheit oder teuren allmählich übergehenden Berechnung bearbeitet werden.

In modernen Z-Puffersystemen können ähnliche Vorteile durch den rauen verkehrt herum das Sortieren gewonnen werden (sich dem 'Rückmaler-Algorithmus' nähernd), früher Z-reject (in Verbindung mit hierarchischem Z), und weniger allgemeine aufgeschobene auf programmierbarem GPUs mögliche Übergabe-Techniken.

Techniken von Scanline, die am Raster arbeiten, haben den Nachteil, dass Überlastung anmutig nicht behandelt wird.

Wie man

betrachtet, klettert die Technik gut als die Zahl von Primitiver-Zunahmen nicht. Das ist wegen der Größe des Zwischengliedes datastructures erforderlich während der Übergabe — der die Größe eines Z-Puffers für eine komplizierte Szene überschreiten kann.

Folglich, in zeitgenössischen interaktiven Grafikanwendungen, ist der Z-Puffer allgegenwärtig geworden. Der Z-Puffer erlaubt größeren Volumina von Primitiven, geradlinig in der Parallele überquert, gewissermaßen zur modernen Hardware freundlich zu werden. Umgestaltete Koordinaten, Attribut-Anstiege brauchen usw. den Grafikspan nie zu verlassen; nur die sichtbaren Pixel und Tiefe-Werte werden versorgt.

Siehe auch

Links


Der Algorithmus des Malers / Lucius Cornelius Cinna
Impressum & Datenschutz