DE112009000180T5 - Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance - Google Patents
Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance Download PDFInfo
- Publication number
- DE112009000180T5 DE112009000180T5 DE112009000180T DE112009000180T DE112009000180T5 DE 112009000180 T5 DE112009000180 T5 DE 112009000180T5 DE 112009000180 T DE112009000180 T DE 112009000180T DE 112009000180 T DE112009000180 T DE 112009000180T DE 112009000180 T5 DE112009000180 T5 DE 112009000180T5
- Authority
- DE
- Germany
- Prior art keywords
- culling
- representation
- base primitive
- vertex
- primitive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004590 computer program Methods 0.000 title claims description 7
- 230000008569 process Effects 0.000 claims abstract description 35
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 4
- 238000012360 testing method Methods 0.000 description 20
- 239000012634 fragment Substances 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000035699 permeability Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
Empfangen einer ersten Darstellung eines Basisprimitivs,
Liefern eines ersten Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind,
Ausführen des Satzes von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung einer begrenzten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs, und
Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang.
Description
- Technisches Gebiet der Erfindung
- Die vorliegende Erfindung betrifft digital dargestellte Grafiken und insbesondere ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt zum Verbessern der Performance zum Erzeugen von digital dargestellten Grafiken.
- Hintergrund der Erfindung
- Digital dargestellte Grafiken, wie Computergrafiken, werden in der Performance laufend verbessert. In den 1980er und 1990er Jahren sind Anzeigeadapter für Computer und Spielkonsolen mit Grafikbeschleunigern erschienen, welche die zentrale Rechnereinheit (CPU) von der Grafikerzeugung entlasten. Anfänglich boten die Anzeigeadapter eine Beschleunigung für zweidimensionale Grafiken, aber schließlich umfassten diese auch eine Unterstützung für beschleunigte dreidimensionale Grafiken. Moderne Anzeigeadapter benutzen eine Rechnereinheit, die häufig als Grafikrechnereinheit (GPU) bezeichnet wird.
- Aufgrund der Komplexität von dreidimensionalen Grafiken verwenden GPUs heutzutage einen signifikanten Anteil ihrer Rechnerleistung zum Ausführen von Berechnungen, die sich auf dreidimensionale Grafiken beziehen.
- Ein fortbestehendes Problem von Anzeigeadaptern ist die Performance. Es gibt ständig neue Anwendungen und Spiele, die höhere Bildfrequenzen (gerenderte Bildschirmanzeigen pro Sekunde), höhere Auflösungen und eine höhere Anzeigequalität erfordern, was zu der Notwendigkeit führt, dass jedes Anzeigebild in einer kürzestmöglichen Zeit gerendert werden sollte. Mit anderen Worten ausgedrückt, es ist immer wichtig, die Performance zu erhöhen.
- Ein bekannter Weg zur Erhöhung der Performance ist die Erhöhung der Rechnerleistung der GPUs durch Ermöglichen von höheren Taktungen, Befehlsverknüpfungen (Pipeline) oder Ausschöpfen paralleler Berechnungen. Dies erzeugt jedoch oft mehr Wärme, was zu einer höheren Leistungsaufnahme und zu einem höheren Lüftergeräusch zum Kühlen der GPU führt. Leistungsaufnahme und Wärme sind die Hauptbeschränkungen und der Bottleneck für mobile Vorrichtungen. Ferner gibt es Beschränkungen für die Taktgeschwindigkeit jeder GPU.
- Demzufolge besteht immer noch ein Problem mit Unzulänglichkeiten bei der Verbesserung der Performance bei digital dargestellten Grafiken.
- Zusammenfassung der Erfindung
- Im Hinblick auf das oben Gesagte ist es ein Ziel der Erfindung, die oben diskutierten Probleme zu lösen oder wenigstens zu reduzieren.
- Allgemein werden die Ziele durch die beigefügten unabhängigen Patentansprüche gelöst.
- Gemäß einem ersten Aspekt wird die vorliegende Erfindung durch ein Verfahren zum Verbessern der Permformance zur Erzeugung von digital dargestellten Grafiken realisiert. Das Verfahren umfasst Folgendes: Empfangen einer ersten Darstellung eines Basisprimitivs; Liefern eines Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind; Ausführen des Satzes von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung einer beschränkten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs; und Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang. Das Ausführen von Culling an den Basisprimitiven ist insofern von Vorteil, dass Basisprimitive und Darstellungen von Basisprimitiven am Anfang der Grafikpipeline ausgeschieden werden können, was zu Performancesteigerungen führt. Ferner werden eine Vielzahl von Oberflächen, die in dem vollständig gerenderten Bild nicht sichtbar sind, in dem Vorgang nicht weitergeleitet, was auch zu Performacesteigerungen führt. In anderen Worten ausgedrückt, das Durchführen eines Culling an vollständigen Basisprimitiven ist insofern von Vorteil, dass eine Tessellation von der Mehrzahl der nicht sichtbaren Oberflächen vermieden wird, was zu Performancesteigerungen führt.
- In Computergrafiken umfasst ein Vertex Daten, die zu einem Ort im Raum gehören. Beispielsweise kann ein Vertex alle Daten aufweisen, die zu einer Ecke eines Primitivs gehören. Diese Vertizes sind nicht nur mit drei räumlichen Koordinaten verknüpft, sondern auch mit anderen grafischen Informationen, die notwendig sind, um Objekte richtig zu rendern, wie z. B. Farben, Reflexionseigenschaften, Oberflächenbeschaffenheiten und Flächennormale.
- Ein verbundener Satz von Vertizes kann benutzt werden, um ein Primitiv zu definieren. Ein Primitiv kann z. B. ein Dreieck, ein Viereck, ein Polygon oder eine andere geometrische Form sein, oder alternativ kann ein Primitiv z. B. eine Oberfläche oder ein Punkt im Raum sein. Ein Primitiv, das als ein Dreieck dargestellt ist, besitzt z. B. drei Vertizes und ein Viereck besitzt vier Vertizes.
- Das Verfahren kann Folgendes umfassen: Auswählen eines ersten Vertizes aus der ersten Darstellung des Basisprimitivs, Ausführen eines Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind, auf einer ersten Darstellung des wenigstens einen Vertex, um eine zweite Darstellung des wenigstens einen Vertex zu liefern, und Unterziehen der zweiten Darstellung des wenigstens einen Vertex einem Culling-Vorgang, wobei eine Ausgabe des Culling-Vorgangs eine Entscheidung umfasst, den wenigstens einen Vertex zu cullen, oder eine Entscheidung umfasst, den wenigstens einen Vertex nicht zu cullen, und im Fall der Ausgabe, das der Culling-Vorgang eine Entscheidung umfasst, den wenigstens einen Vertex zu cullen, Ausführen von Folgendem: Das Empfangen der ersten Darstellung des Basisprimitivs, das Liefern eines Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind, das Ausführen des Satzes von Anweisungen auf der ersten Darstellung des Basisprimitivs unter Verwendung einer beschränkten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs, und das Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang. Dies ist von Vorteil, da es zu Performancesteigerungen führt. Wenn beispielsweise die Ausgabe des Culling-Vorgangs eine Entscheidung ist, den wenigstens einen Vertex nicht zu cullen, führt dies zu einem Verfahren, das weniger kapazitätsverbrauchend ist im Vergleich zu einem Verfahren gemäß dem ersten Aspekt.
- Das Verfahren kann ein Bestimmen eines Begrenzungsvolumens, welches die zweite Darstellung des Basisprimitivs einschließt, und ein Unterziehen des Begrenzungsvolumens einem Culling-Vorgang umfassen. Dies ist von Vorteil insofern, dass keine vorbestimmten Grenzen vorgesehen werden müssen und das Begrenzungsvolumen automatisch bestimmt wird.
- Das Verfahren kann einen Tessellation-Vorgang umfassen, wobei der Tessellation-Vorgang auf der Ausgabe des Culling-Vorgangs beruht. Somit wird das Culling vor der Tessellation ausgeführt. Das Ausführen der Tessellation nach dem Culling führt zu Leistungserhöhungen, da weniger Basisprimitive tesselliert werden, und ist daher von Vorteil. Der Culling-Vorgang könnte der Culling-Vorgang sein, dem die zweite Darstellung unterzogen wird, und/oder der Culling-Vorgang, dem das Begrenzungsvolumen unterzogen wird.
- Das Verfahren kann umfassen, dass der Culling-Vorgang ersetzbar ist. Dies ist von Vorteil insofern, dass der Culling-Vorgang beispielsweise durch einen Benutzer geändert werden kann. Das Merkmal, dass der Culling-Vorgang ersetzbar ist, bezieht sich auf alle Ausführungsformen des ersten Aspekts.
- Das Verfahren kann umfassen, dass die beschränkte Arithmetik wenigstens eines aus folgender Gruppe ist: Taylor-Arithmetik, Intervall-Arithmetik und affine Arithmetik. Dies ist insofern von Vorteil, dass das Verfahren flexibel ist und verschiedene Arten von beschränkten Arithmetiken unterstützt und nicht auf eine Art von beschränkter Arithmetik beschränkt ist. Es ist bevorzugt, Taylor-Modelle zu benutzen, da gekrümmte Flächen und Unterteilungsschemata, die bei einer Tessellation häufig benutzt werden, oft auf Polynomen beruhen. Ein anderer Vorteil ist, dass Polynomberechnungen durch Taylor-Modelle exakt dargestellt werden können (vorausgesetzt, dass sie eine genügend hohe Ordnung aufweisen), was zu sehr engen Grenzen führt.
- Das Verfahren kann umfassen, dass die Bestimmung des Begrenzungsvolumens ferner ein Berechnen eines Minimum und eines Maximum der zweiten Darstellung umfasst. Dies ist insofern von Vorteil, dass es ein schneller Weg ist, um das Begrenzungsvolumen zu bestimmen.
- Das Verfahren kann umfassen, dass die zweite Darstellung eine Positionsgrenze und/oder eine Normalgrenze ist. Die Positionsgrenze und die Normalgrenze können benutzt werden, um z. B. die Position oder den Bereich der ersten Darstellung des Basisprimitivs zu bestimmen. Ein weiterer Vorteil ist, dass die Positionsgrenze und Normalgrenze automatisch bestimmt werden.
- Das Verfahren kann umfassen, dass das Ausführen des Satzes von Anweisungen ferner Folgendes umfasst: Ableiten eines zweiten Satzes von Anweisungen aus dem ersten Satz von Anweisungen, die mit der Vertexpositionsbestimmung verknüpft sind, und Ausführen des zweiten Satzes von Anweisungen zum Liefern einer Normalgrenze. Dies ist insoweit vorteilhaft, dass der zweite Satz von Anweisungen automatisch abgeleitet wird und ferner die Normalgrenze automatisch berechnet wird.
- Das Verfahren kann umfassen, dass das Aussetzen des Begrenzungsvolumens dem Culling-Vorgang ferner ein Ausführen von wenigstens einem des Folgenden umfasst: Aussetzen des Begrenzungsvolumens einem View Frustum Culling; Aussetzen des Begrenzungsvolumens einem Back-Face Culling und Aussetzen des Begrenzungsvolumens einem Occlusion Culling. Ein Vorteil von diesem ist, dass viele verschiedene Culling-Techniken einsetzbar sind.
- Das Verfahren kann umfassen, dass das Aussetzen der zweiten Darstellung (die eine Positionsgrenze oder Normalgrenze ist) einem Culling-Vorgang ferner das Ausführen von wenigstens einem von Folgendem umfasst: Aussetzen der Positionsgrenze einem View Frustum Culling, Aussetzen der Positionsgrenze oder Normalgrenze einem Back-Face Culling und Aussetzen der Positionsgrenze einem Occlusion Culling. Ein Vorteil davon ist, dass viele verschiedene Culling-Techniken einsetzbar sind.
- Das Verfahren kann umfassen, dass eine Ausgabe des Culling-Vorgangs eine Entscheidung zum Verwerfen des Basisprimitivs und/oder einen Tessellationsfaktor umfassen kann. Dies ist von Vorteil, weil das Verwerfen eines Basisprimitivs impliziert, dass ein Basisprimitiv weniger zu rendern ist, was die Performance erhöht. Der Tessellationsfaktor kann anzeigen, dass das Basisprimitiv nicht tesselliert werden muss, was zu einer Performancesteigerung führt.
- Das Verfahren kann ein Ausführen eines Tessellation-Vorgangs umfassen für den Fall, dass das Ergebnis des Culling-Vorgangs einen Tessellationsfaktor umfasst. Dies ist insofern von Vorteil, dass die Performance für jedes Basisprimitiv erhöht wird, das nicht tesselliert oder weniger tesselliert wird. Wenn die Ausgabe des Culling-Vorgangs eine Entscheidung ist, das Basisprimitiv zu verwerfen, wird kein Tessellation-Vorgang durchgeführt.
- Gemäß einem zweiten Aspekt wird die Erfindung durch eine Vorrichtung realisiert, die dafür geeignet ist, digital dargestellte Grafiken zu erzeugen, und eine Schaltung zum Verbessern der Performance zur Erzeugung von digital dargestellten Grafiken umfasst. Diese Schaltung ist eingerichtet zum: Empfangen einer ersten Darstellung eines Basisprimitivs; Liefern eines Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind; Ausführen des Satzes von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung einer begrenzten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs; und Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang.
- Es ist zu beachten, dass der zweite Aspekt der Erfindung mit einer beliebigen Kombination von Merkmalen, die beliebigen Merkmalen des ersten Aspekts der Erfindung entsprechen, ausgeführt werden kann.
- Die Vorteile des ersten Aspekts treffen gleichermaßen auf den zweiten Aspekt zu.
- Gemäß einem dritten Aspekt wird die Erfindung durch ein Computerprogrammprodukt realisiert, welches einen Computerprogrammcode umfasst, der auf einem computerlesbaren Medium gespeichert ist und der, wenn er auf einem Prozessor ausgeführt wird, ein Verfahren gemäß dem ersten Aspekt der Erfindung ausführt. Die Vorteile des ersten Aspekts treffen gleichermaßen für den dritten Aspekt der Erfindung zu.
- Weitere Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus der nachfolgenden detaillierten Beschreibung, aus den beigefügten Ansprüchen, sowie aus den Zeichnungen deutlich.
- Allgemein sind alle Begriffe, die in den Ansprüchen verwendet werden, entsprechend ihrer gewöhnlichen Bedeutung auf dem technischen Gebiet zu interpretieren sofern nicht ausdrücklich etwas Anderes hier definiert wird. Alle Bezugnahmen auf „ein, eine oder der, die oder das [Element, Vorrichtung, Komponente, Einrichtung, Schritt, usw.]” sind weit als Bezug auf wenigstens ein Beispiel des Elements, der Vorrichtung, der Komponente, der Einrichtung, dem Schritt usw. zu interpretieren sofern nicht ausdrücklich etwas anderes behauptet ist. Die Schritte jeglicher Verfahren, die hier offenbart werden, müssen nicht in exakt der offenbarten Abfolge ausgeführt werden, sofern dies nicht ausdrücklich behauptet ist.
- Kurze Beschreibung der Zeichnungen
- Weitere Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung einer gegenwärtig bevorzugten Ausführungsform mit Bezug auf die beigefügten Zeichnungen deutlich, in denen Folgendes dargestellt ist:
-
1 ist ein Blockdiagramm, welches darstellt, wie verschiedene Einheiten in einem Anzeigeadapter gemäß dem Stand der Technik zusammenwirken. -
2a ist ein Blockdiagramm, welches darstellt, wie verschiedene Einheiten in einer Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung zusammenwirken können. -
2b ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
2c ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
2d ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
2e ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
2f ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
2g ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
2h ist ein Blockdiagramm, welches eine Ausführungsform der vorliegenden Erfindung darstellt. -
3a und3b sind Ablaufdiagramme, welche Culling-Vorgänge von Basisprimitiven zeigen, die in der Vorrichtung der2a bis2d ausgeführt werden können. -
4 stellt schematisch Culling-Vorgänge von Basisprimitiven der3a –b dar. -
5 zeigt eine Übersichtsarchitektur eines typischen Computers für allgemeine Zwecke, welcher die Vorrichtung der2a –d enthält. - Detaillierte Beschreibung einer Ausführungsform
- Die vorliegende Erfindung wird nun nachfolgend vollständig mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen verschiedene Ausführungsformen der Erfindungen gezeigt sind. Diese Erfindung kann jedoch in vielen verschiedenen Formen ausgeführt werden und sollte nicht so ausgelegt werden, dass sie auf den Satz der nachfolgenden Ausführungsform eingeschränkt ist. Vielmehr werden diese Ausführungsformen im Wege eines Beispiels angegeben, so dass diese Offenbarung genau und vollständig wird und den Umfang der Erfindung den Fachleuten vollständig vermittelt. Gleiche Bezugszeichen bezeichnen durchgängig gleiche Elemente.
-
1 ist ein Blockdiagramm, welches anzeigt, wie verschiedene Einheiten in einem herkömmlichen Anzeigeadapter, der einem Fachmann bekannt ist, miteinander zusammenwirken. Ein Anzeigeadapter gemäß dem Stand der Technik kann einen Tessellator120 , einen Vertex-Schattierer130 , eine Dreieckstraversaleinheit140 und einen Fragmentschattierer150 umfassen. Die Einheiten des Anzeigeadapters nach dem Stand der Technik sind dem Fachmann gut bekannt. - Die Eingabe
110 in den Tessellator120 ist ein Basisprimitiv, welches ein Dreieck, ein Viereck oder eine andere geometrische Form sein kann. Tessellation impliziert, dass viele kleinere häufig verbundene Primitive erzeugt werden. Beispielsweise wird in dem Tessellator120 ein Basisdreieck (d. h. das Basisprimitiv) in 100 × 100 kleinere, verbundene Dreiecke, die das Basisdreieck überdecken, tesselliert. Die Position der Vertizes dieser kleineren Dreiecke kann anschließend in der Vertexschattierereinheit130 berechnet werden, so dass eine gekrümmte Oberfläche gebildet wird. - Verschiedene Arten von Tessellation existieren, z. B. eine uniforme Tessellation, eine fraktionelle Tessellation und eine adaptive Tessellation.
- Die Vertexschattierereinheit
130 empfängt baryzentrische Koordinaten für jeden Vertex von dem Tessellator120 und berechnet z. B. die Position p(u, v) des Vertex als eine Funktion der baryzentrischen Koordinaten (u, v). - Die Dreieckstraversaleinheit
140 ist dafür verantwortlich, Polygone wie durch einen verbundenen Kontroller angewiesen aufzubauen. Obgleich beliebige Polygone benutzt werden können, werden üblicherweise Dreiecke verwendet. Für jedes Polygon dividiert die Dreieckstraversaleinheit140 das zu rendernde Polygon in eine oder mehrere Kacheln (tiles), wobei jede Kachel wenigstens zum Teil von dem Polygon überlappt wird. Im Allgemeinen ist eine Kachel eine Gruppe von Fragmenten. Eine Kachel ist ein zweidimensionales Rechteck, das eine Anzahl von Fragmenten enthält. Jedes dieser Fragmente entspricht einem Pixel und enthält alle Daten, die erforderlich sind, um das Pixel zu rendern und zu überprüfen, ob das Pixel auf dem Bildschirm gerendert werden sollte. Eine übliche Größe einer Kachel ist 8 × 8 Fragmente, obgleich beliebige Kachelgrößen im Umfang der Erfindung liegen. - Eine weitere wichtige Aufgabe der Dreieckstraversaleinheit
140 ist es, die Fragmente zu finden, die innerhalb des geometrischen Primitivs (z. B. Dreieck) gerendert werden. Dies kann durch verschiedene Techniken erfolgen, wobei die Techniken den Fachleuten bekannt sind. - Der Fragmentschattierer
150 fuhrt ein Fragmentschattiererprogramm für jedes Fragment, das durch diesen durchläuft, aus. Jedes dieser Fragmente entspricht einem Pixel und enthält Daten, die notwendig sind, um das Pixel zu rendern und zu überprüfen, ob das Pixel auf dem Bildschirm gerendert werden sollte. Die Fragmentdaten umfassen Rasterpositionen, Tiefe, Farbe, Texturkoordinaten, Schablone, Alpha (zum Mischen verwendet) usw. Für jedes Pixel können mehrere Fragmentsample existieren. - Die Fragmente werden weiter bearbeitet, um z. B. eine vorhergehend bestimmte Farbe mit Texturen zu kombinieren, sowie um Effekte wie z. B. Nebel hinzuzufügen und, wenn möglich, Fragmente zu identifizieren, die nicht gerendert werden müssen, d. h. Fragment-Culling.
- Der Fragmentschattierer
150 kann ferner einen Tiefentest, einen Alpha-Test und ein Mischen durchführen, bevor die Fragmente in Zielpuffer geschrieben werden. - Die Ausgabe
150 von dem Anzeigeadapter nach dem Stand der Technik kann auf einer Anzeige angezeigt werden. - Es ist zu verstehen, dass von hier an die vorliegende Erfindung beschrieben wird.
- Verschiedene Ausführungsformen einer Vorrichtung, die dafür eingerichtet ist, digital dargestellte Grafiken gemäß der Erfindung zu erzeugen, werden nachfolgend mit Bezug auf die
2 beschrieben. Die Vorrichtung umfasst eine Schaltung zum Verbessern der Performance zum Erzeugen von digital dargestellten Grafiken. Diese Vorrichtung kann als ein Anzeigeadapter ausgeführt werden und wird nachfolgend als ein Anzeigeadapter bezeichnet. - Die
2a ist ein Blockdiagramm, welches eine Ausführungsform eines Grafikadapters205 gemäß der vorliegenden Erfindung darstellt. Der Anzeigeadapter205 umfasst eine Schaltung zum Verbessern der Performance zur Erzeugung digital dargestellter Grafiken, die eine Basisprimitiv-Cullingeinheit212 bildet. - Die Eingabe
210 der Basisprimitiv-Cullingeinheit212 wird zuerst durch ein Basisprimitiv dargestellt. Ein geometrisches Primitiv auf dem Gebiet der Computergrafiken wird üblicherweise als atomare geometrische Objekte interpretiert, welche das System handhaben kann, z. B. Zeichnen oder Speichern. Alle anderen Grafikelemente werden aus diesen Primitiven aufgebaut. - Das Basisprimitiv ist eine geeignete geometrische Darstellung, die in viele kleinere geometrische Primitive, wie Dreiecke, tesselliert werden kann. Ein Basisprimitiv ist nicht tesselliert. Beispiele von Basisprimitiven sind Dreiecke, Vierecke, Linien, Kurven, Bézier-Oberflächen usw.
- Polygone werden unter Verwendung eines verbundenen Satzes von Vertizes definiert. Ein Dreieck besitzt z. B. drei Vertizes und ein Viereck besitzt vier Vertizes. In Computergrafiken sind die Vertizes nicht nur mit drei räumlichen Koordinaten verknpüft, sonder auch mit anderen grafischen Informationen, die notwendig sind, um das Objekt richtig zu rendern, wie z. B. Farben, Reflexionseigenschaften, Texturen und Oberflächennormale.
- Eine erste Darstellung von Basisprimitiven kann ein Satz von Attributen sein. Der Satz von Attributen kann z. B. eines aus der Gruppe sein, die Kontrollpunkt, Vertexposition, Normale, Texturkoordinate usw. umfasst. Beispielsweise kann ein Dreieck unter Verwendung von drei Vertexpositionen und ein vierseitiges Polygon unter Verwendung von vier Vertexpositionen beschrieben werden. Jeder Vertexposition können außerdem andere Attributen zugeordnet sein, wie Normale und Texturkoordinaten. Ein anderes Beispiel ist ein Bézier-Dreieck oder Patch, welches unter Verwendung eines Satzes von Vertexpositionen und Kontrollpunkten beschrieben werden kann.
- In der Basisprimitiv-Cullingeinheit
212 wird ein Culling auf Basis von Primitiven oder von Darstellungen von Basisprimitiven durchgeführt. Die Ausgabe222 aus der Basis-Cullingeinheit kann sein, dass das Basisprimitiv zu verwerfen ist. In einer anderen Ausführungsform kann eine Ausgabe222 sein, dass ein Tesselllationfaktor erzeugt wird. Dieser Tessellationsfaktor kann auf einen Wert gesetzt werden, der anzeigt, dass das Basisprimitiv zu verwerfen ist. Alternativ kann der Tessellationsfaktor auf einen Wert gesetzt werden, der anzeigt, dass das Basisprimitiv nicht verworfen werden könnte. Ferner kann der Tessellationsfaktor auf einen Wert gesetzt werden, der anzeigt, dass das Basisprimitiv nicht zu tessellieren ist, grob zu tessellieren ist oder mit einer geringeren Rate zu tessellieren ist. - Die Details und Effekte des Basisprimitiv-Culling werden weiter in Verbindung mit den
3a und3b unten beschrieben. - Die Ausgabe
224 von dem Anzeigeadapter205 kann auf einer Anzeige angezeigt werden. - In einer anderen Ausführungsform (vgl.
2b ) kann der Anzeigeadapter225 eine Basisprimitiv-Cullingeinheit212 und einen Tessellator214 umfassen. Der Tessellator214 kann von dem gleichen Typ sein wie der Tessellator120 , der mit Bezug auf1 oben beschrieben wurde. - Die Basisprimitv-Cullingeinheit
212 , die Eingabe210 an die Basisprimitv-Cullingeinheit212 und die Ausgabe224 von dem Anzeigeadapter205 wurden vorhergehend in Verbindung mit2a beschrieben. - Wenn der Tessellator
214 aus der Basisprimitiv-Cullingeinheit212 ein Basisprimitiv erhält und ein Tessellationsfaktor anzeigt, dass das Basisprimitiv nicht zu tessellieren ist, tesselliert der Tessellator das Basisprimitiv nicht. Wenn der Tessellator214 von der Basisprimitiv-Cullingeinheit212 ein Basisprimitiv empfangt, jedoch keinen Tessellationsfaktor empfängt, der anzeigt, dass das Basisprimitiv nicht zu tessellieren ist, tesselliert der Tessellator214 das Basisprimitiv. - Die
2c ist ein Blockdiagramm, welches darstellt, wie verschiedene Einheiten in dem Anzeigeadapter205 in einer Ausführungsform der vorliegenden Erfindung zusammenwirken können. Der Anzeigeadapter205 umfasst eine Basisprimitv-Cullingeinheit212 , einen Tessellator214 , einen Vertexschattierer216 , eine Dreiecktraversaleinheit218 und einen Fragmentenschattierer220 . Die Einheiten214 ,216 ,218 und220 können vom gleichen Typ sein, wie jene, die in Bezug auf1 oben beschrieben wurden. - Die Basisprimitiv-Cullingeinheit
212 , die Eingabe210 an die Basisprimitiv-Cullingeinheit212 und die Ausgabe224 von dem Anzeigeadapter205 wurden vorhergehend in Verbindung mit der2a beschrieben. - In einer weiteren Ausführungsform (vgl.
2d ) umfasst der Anzeigeadapter205 eine Basisprimitiv-Cullingeinheit212 , einen Tessellator214 , einen Vertexschattierer216 , eine Dreiecktraversaleinheit218 , eine programmierbare Cullingeinheit (PCU)226 und einen Fragmentenschattierer220 . Die Einheiten214 ,216 ,218 und220 können der gleiche oder ähnliche Typ sein, wie jene, die oben in Bezug auf1 beschrieben wurden. Die Basisprimitiv-Cullingeinheit212 , die Eingabe210 an die Basisprimitiv-Cullingeinheit212 und die Ausgabe224 von dem Basisadapter205 wurden vorhergehend in Verbindung mit2a beschrieben. - In der programmierbaren Cullingeinheit
226 wird ein Culling auf Kacheln entsprechend einem ersetzbaren Cullingprogramm ausgeführt, welches auch als ein ersetzbares Cullingmodul bekannt ist. Die Details dieses Cullingprogramms und die Effekte werden in mehr Details in der nicht veröffentlichten schwedischen PatentanmeldungSE0700162-1 - Der Anzeigeadapter
205 der2a kann ferner eine Basisprimitiv-Prüfeinheit211 umfassen (siehe2e ). Die Basisprimitiv-Prüfeinheit211 ist dafür eingerichtet, um zu überprüfen, ob wenigstens ein Vertex des Basisprimitivs nicht gecullt werden kann. Wenigstens ein Vertex von dem Basisprimitiv wird ausgewählt. Der wenigstens eine Vertex kann eines der Vertizes des Basisprimitivs oder der Mittelpunkt des Basisprimitivs sein. Wenn der wenigstens eine Vertex des Basisprimitivs nicht gecullt werden kann, impliziert dies, dass Basisprimitiv nicht gecullt werden kann, und dann ist es besser, das Culling des Basisprimitivs in der Basisprimitiv-Cullingeinheit212 nicht auszuführen, da ein Basisprimitiv-Culling Kapazitäten erfordert. - Wie in
2f gezeigt ist, kann der Anzeigeadapter205 der2b ferner eine Basisprimitiv-Prüfeinheit211 umfassen. Ferner kann der Anzeigeadapter205 der2c eine Basisprimitiv-Prüfeinheit211 umfassen (siehe2g ). Der Anzeigeadapter205 der2d kann eine Basisprimitiv-Prüfeinheit211 umfassen (siehe2h ). -
3a zeigt ein Ablaufdiagramm für ein Basisprimitiv-Cullingprogramm, das in der Basisprimitiv-Cullingeinheit212 der2a , b, c und d ausgeführt werden kann. - Im Schritt
310 wird eine erste Darstellung eines Basisprimitivs empfangen. - Im Schritt
320 wird ein Satz von Anweisungen geliefert. Dieser gelieferte Satz von Anweisungen ist mit einer Vertexpositionsbestimmung verknüpft. Vertexpositionen werden z. B. unter Verwendung von baryzentrischen Koordinaten für jeden Vertex als p(u, v) berechnet, wie in Verbindung mit der Vertex-Schattierereinheit216 beschrieben. Der Satz von Anweisungen wird abgeleitet oder empfangen von einem Vertex-Schattiererprogramm, das in der Vertexschattierereinheit216 ausgeführt werden kann. Der Satz von Anweisungen wird anschließend analysiert und alle Anweisungen, die benutzt werden, um die Vertexposition zu berechnen, die arithmetischen Anweisungen, werden isoliert. Die Anweisungen werden neu definiert zum Ausführen in einer begrenzten Arithmetik, z. B. einer Taylor-Arithmetik, einer Intervall-Arithmetik, einer affinen Arithmetik oder einer anderen geeigneten Arithmetik, die einem Fachmann bekannt ist. In einer Ausführungsform werden die Anweisungen zum Ausführen an Taylor-Modellen (anstellen von Fließkommazahlen) neu definiert und die Eingabe zu den neuen Instruktionen wird neu definiert, so dass sie als Taylor-Modelle vorliegen. - Eine kurze Beschreibung der Taylor-Modelle folgt, um dem Verständnis der folgenden Schritte zu dienen.
-
- Bei einer n + 1-mal differenzierbaren Funktion f(u), wobei u ∊ [u0, u1], setzt sich das Taylor-Modell von f aus einem Taylor-Polynom Tf und einem Intervallrestglied ȓf zusammen. Ein Taylor-Modell n-ter Ordnung, das hier als f ~ bezeichnet wird, über den Bereich u ∊ [u0, u1] ist dann: wobeidas Taylor-Polynom ist undist der Intervallrestglied.
- Diese Darstellung wird als Taylor-Modell bezeichnet und ist eine konservative Abdeckung der Funktion f über dem Bereich u ∊[u0, u1]. Es ist auch möglich, die Arithmetikoperatoren auf Taylor-Modellen zu definieren, wobei das Ergebnis ebenso eine konservative Abdeckung ist (ein anderes Taylor-Modell). Als ein einfaches Beispiel wird angenommen, dass f + g berechnet werden soll und dass diese Funktionen als Taylor-Modelle f = (Tf, r ~f) und g ~ = (Tg, r ~g) dargestellt sind. Das Taylor-Modell der Summe ist dann (Tf + Tg, ȓf + ȓg). Komplexere Operationen wie Multiplikationen, Sin, Log, Exp, Kehrwert usw. können auch abgeleitet werden. Details der Implementierung für diese Operationen sind in Berz, M., und Hofstätter, G. 1998, Computation and Application of Taylor Polynominals with Interval Remainder Sounds, Reliable Computing, 4, 1, 83–97 beschrieben.
- Die baryzentrischen Koordinaten können als ein Taylor-Modell neu definiert werden, z. B. wie folgt: ba ~ry(u, v) = (u, v, 1 – u – v).
- Im Schritt
330 wird der gelieferte Satz von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung der begrenzten Arithmetik ausgeführt. Die Ausgabe dieser Ausführung des Satzes von Anweisungen ist eine zweite Darstellung des Basisprimitivs. - Die zweite Darstellung des Basisprimitivs kann ein Taylor-Modell sein und kann eine Polynomnäherung der Vertexpositionsattribute sein. Genauer ausgedrückt kann die Ausgabe vom Schritt
330 Positionsgrenzen sein: p ~(u, v) = (p ~x, p ~v, p ~z, p ~w), welche vier Taylor-Modelle sind. Für eine einzelne Komponente, z. B. x, kann dies in der Powerbasis wie folgt dargestellt werden (das Restglied ȓf wurde zur Klarheit weggelassen): - Die begrenzte Arithmetik, die im Schritt
330 verwendet wird, kann z. B. eine Taylor-Arithmetik, eine Intervall-Arithmetik, eine affine Arithmetik oder eine andere geeignete Arithmetik sein, die einem Fachmann bekannt ist. -
-
- In einer Ausführungsform kann der Schritt
330 , in welchem der Satz von Anweisungen ausgeführt wird, den Schritt331 in3b umfassen. Der Schritt331 umfasst ein Ableiten eines zweiten Satzes von Anweisungen aus dem ersten Satz von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind. Der zweite Satz von Anweisungen wird von einem Vertexschattiererprogramm empfangen, das in der Vertexschattierereinheit216 ausgeführt wird, wobei die Anweisungen analysiert werden und alle Anweisungen, welche benutzt werden, um die Vertexposition zu berechnen, die Arithmetikanweisungen, werden isoliert. Die Anweisungen werden zum Anwenden auf Taylor-Modellen (anstelle von Fließkommazahlen) neu definiert und die Eingabe an die neuen Anweisungen wird in Taylor-Modellen neu definiert. Der zweite Satz von Anweisungen wird anschließend ausgeführt, um Normalgrenzen zu liefern. - Ein Begrenzungsvolumen für einen Satz von Objekten ist ein geschlossenes Volumen, das vollständig die Einheit der Objekte in dem Satz begrenzt. Begrenzungsvolumen können von verschiedenen Formen haben, z. B. Boxen wie Quader oder Rechtecke, Kugeln, Zylinder, Polytope und konvexe Hüllen.
- In einer Ausführungsform wird ein Begrenzungsvolumen, das die zweite Darstellung des Basisprimitivs einschließt, bestimmt (Schritt
350 in3b ) und das Begrenzungsvolumen wird einem Culling-Vorgang unterzogen. Der Culling-Vorgang wird weiter in Verbindung mit Schritt340 beschrieben. - Das erfinderische Begrenzungsvolumen ist ein dichtes Begrenzungsvolumen. Das Begrenzungsvolumen, welches dicht ist, impliziert, dass die Fläche oder das Volumen des Begrenzungsvolumens so klein wie möglich ist, jedoch immer noch die zweite Darstellung des Basisprimitivs vollständig einschließt.
- In einer Ausführungsform wird das Begrenzungsvolumen durch Berechnen eines Minimum und eines Maximum der zweiten Darstellung berechnet (Schritt
351 ). - Die zweite Darstellung des Basisprimitivs kann ein Taylor-Polynom in Potenzform sein.
- Ein Weg zum Bestimmen des Begrenzungsvolumens kann durch Berechnen der Ableitungen der Taylor-Polgnome und somit durch Finden des Minimum und Maximum der zweiten Darstellung erfolgen.
- Ein anderer Weg zum Bestimmen des Begrenzungsvolumens kann wie folgt sein. Die Taylor-Polynome werden in Bernstein-Form konvertiert. Aufgrund der Tatsache, dass die Eigenschaft der konvexen Hülle der Bernstein-Basis garantiert, dass die tatsächliche Oberfläche oder Kurve des Polynoms innerhalb der konvexen Hülle der Kontrollpunkte liegt, die in der Bernstein-Basis erlangt werden, wird das Begrenzungsvolumen durch Auffinden des minimalen und maximalen Kontrollpunktwertes in jeder Dimension berechnet. Das Umwandeln der Gleichung (3) in Berstein-Basis ergibt: wobeiBernstein-Polgnome in dem bivariaten Fall über einen Dreiecksbereich sind. Diese Umwandlung wird unter Verwendung der folgenden Formel ausgeführt, wobei die Formel in Hungerbühler, R., und Garloff, J. 1998, Bounds for the Range of a Bivariate Polynominal over a Triangle, Reliable Computing, 4, 1, 3–13 beschrieben ist:
- Zum Berechnen der Begrenzungsbox werden einfach der minimale und maximale Wert über alle pij für jede Dimension x, y, z und w berechnet. Dies ergibt eine Begrenzungsbox b ^ = (b ^x, b ^y, b ^z, b ^w) im Clip-Raum, wobei jedes Element ein Intervall ist, z. B.
- Im Schritt
340 wird die zweite Darstellung des Basisprimitivs einem Culling-Vorgang unterzogen. - Das Culling wird ausgeführt, um das Zeichnen von Objekten oder Teilen von Objekten zu vermeiden, die nicht zu sehen sind.
- GPUs aus dem Stand der Technik führen Culling an tessellierten Polygonen aus. Die vorliegende Erfindung führt das Culling aus, bevor eine Tessellation auch nur stattgefunden hat, was zu einer Performanceerhöhung führt.
- In diesem Ansatz werden die Positionsgrenzen, die Normalgrenzen und das Begrenzungsvolumen, wie oben abgeleitet, verwendet, um verschiedene Culling-Techniken auf das Basisprimitiv anzuwenden.
- In einer Ausführungsform wird ein View Frustum Culling ausgeführt unter Verwendung der Positionsgrenzen oder des Begrenzungsvolumens (Schritt
341 in3b ). - In einer Ausführungsform wird ein Back-Face Culling ausgeführt unter Verwendung von der Normalbegrenzung, der Positionsbegrenzung und/oder des Begrenzungsvolumens (Schritt
342 in3b ). - In einer Ausführungsform wird ein Occlusion Culling ausgeführt unter Verwendung der Positionsgrenzen oder des Begrenzungsvolumens (Schritt
343 in3b ). - In einer Ausführungsform wird wenigstens einer der Schritt
341 bis343 ausgeführt. - Die Culling-Techniken, die unten offenbart werden, sind nicht als eine Begrenzung konstruiert, sie liefern jedoch einen beispielhaften Weg. Es ist für einen Fachmann offensichtlich, dass Back-Face Culling, Occlusion Culling und View Frustum Culling ausfgeführt werden kann unter Verwendung anderer Techniken, als jene, die unten beschrieben sind.
- View Frustum Culling ist eine Culling-Technik, die auf der Tatsache beruht, dass nur Objekte zu zeichnen sind, die sichtbar sind, d. h. Objekte, die innerhalb des aktuellen Sichtkegels liegen. Der Sichtkegel (View Frustum) kann definiert sein als der Bereich im Raum in der Modellwelt, der auf dem Bildschirm erscheint. Ein Zeichnen von Objekten außerhalb des Kegels wäre eine Verschwendung von Zeit und Ressourcen, da sie ohnehin nicht sichtbar sind. Wenn ein Objekt vollständig außerhalb des Sichtkegels liegt, kann es nicht sichtbar sein und kann verworfen werden.
- In einer Ausführungsform werden die Positionsgrenzen des Begrenzungsvolumens gegenüber den Ebenen des Sichtkegels getestet. Da das Begrenzungsvolumen b ^ im Clip-Raum homogen ist, kann der Test in dem Clip-Raum ausgeführt werden. Eine Standardoptimierung für Flächen-Box-Tests kann verwendet werden, bei denen nur eine einzelne Ecke des Begrenzungsvolumens – das Begrenzungsvolumen ist die Begrenzungsbox – verwendet wird, um die Flächengleichung zu berechnen. Jeder Flächentest läuft auf eine Addition und einen Vergleich hinaus. Wenn beispielsweise das Volumen außerhalb der linken Fläche liegt, wird der Flächentest ausgeführt unter Verwendung von:Das Testen kann auch ausgeführt werden unter Verwendung der Positionsgrenzen: p ~(u, v) = (p ~x, p ~y, p ~z, p ~w). Da diese Tests zeit- und ressourceneffizient sind, ist es von Vorteil, den Sichtkegeltest als ersten Test zu nehmen.
- Back-Face Culling verwirft Objekte, die von dem Betrachter weg weisen, d. h. der Normalvektor der Objekte ist in einer Richtung von dem Betrachter weg gerichtet. Diese Objekte werden nicht sichtbar sein und es besteht daher keine Notwendigkeit, diese zu zeichnen.
- Für einen Punkt p(u, v) auf einer Oberfläche wird das Back-Face Culling im Allgemeinen wie folgt berechnet:
c = p(u, v)·n(u, v) (8) c - In einer anderen Ausführungsform werden Intervallgrenzen für die Normalen berechnet zum Überprüfen, ob die Back-Face-Bedingung erfüllt ist.
- Der Test kann auch ausgeführt werden unter Verwendung der Positionsgrenzen p ~(u, v) = (p ~x, p ~v, p ~z, p ~w) oder alternativ des Begrenzungsvolumens.
- Occlusion Culling impliziert, dass Objekte, die verdeckt sind, verworfen werden. Im Folgenden wird Occlusion Culling für eine Begrenzungsbox beschrieben, es ist jedoch für einen Fachmann naheliegend, dass es auch möglich ist, Occlusion Culling auch auf andern Arten von Begrenzungsvolumen durchzuführen.
- Die Technik des Occlusion Culling ist sehr ähnlich zu einer hierarchischen Tiefenpufferung mit der Ausnahme, dass nur ein extra Level in der Tiefenpufferung benutzt wird (8×8 Pixelkacheln). Der maximale Tiefenwert Z
tile / max box / min tile / max box / min tile / max - In einer anderen Ausführungsform kann das Testen auch unter Verwendung der Positionsgrenzen p ~(u, v) = (p ~x, p ~v, p ~z, p ~w) ausgeführt werden.
- In einer Ausführungsform ist der Culling-Vorgang ersetzbar. Dies impliziert, dass die Basisprimitv-Cullingeinheit
212 mit einem benutzerdefinierten Culling-Vorgang ausgerüstet sein kann. - Der Schritt
340 (und350 ), der einen Culling-Vorgang ausführt, kann verschiedene Ausgaben aufweisen. In einer Ausführungsform kann eine Ausgabe des Culling-Vorgangs sein, dass das Basisprimitiv zu verwerfen ist. In einer anderen Ausführungsform kann die Ausgabe des Culling-Vorgangs sein, dass ein Tessellationsfaktor erzeugt wird. Dieser Tessellationsfaktor kann auf einen Wert gesetzt werden, der anzeigt, dass das Basisprimitv zu verwerfen ist. Alternativ kann der Tessellationsfaktor auf einen Wert gesetzt werden, der anzeigt, dass das Basisprimitiv nicht verworfen werden könnte. Ferner kann der Tessellationsfaktor auf einen Wert gesetzt werden, der anzeigt, dass das Basisprimitiv nicht zu tessellieren ist. - In einer Ausführungsform wird nach dem Schritt
340 (und dem Schritt350 ), welcher einen Culling-Vorgang ausführt, die Ausgabe der Ausführung des Culling-Vorgangs an den Tessellator212 gesendet. Ein Tessellationsvorgang wird ausgeführt (Schritt360 in3b ). Wenn der Tessellator214 ein Basisprimitiv und einen Tessellationsfaktor empfängt, der anzeigt, dass das Basisprimitiv nicht zu tessellieren ist, tesselliert der Tessellator das Basisprimitiv nicht. - Wenn der Tessellator
212 ein Basisprimitiv empfängt, das in dem Culling-Vorgang nicht verworfen wurde, jedoch keinen Tessellationsfaktor empfängt, der anzeigt, dass das Basisprimitiv nicht zu tessellieren ist, tesselliert der Tessellator214 das Basisprimitiv. - Die Schritte, die in Verbindung mit der
3a und3b beschrieben wurden, können in der Vorrichtung205 der Erfindung ausgeführt werden. -
4 stellt die Ergebnisse der Schritte der3a und3b dar.4a zeigt ein Basisprimitiv in der Form eines Basisdreiecks405 .4b zeigt die resultierende erzeugte Fläche410 über dem Basisdreieck405 , die durch die Vertexschattierereinheit216 (und der Tessellationsfrequenz) bestimmt wird. In4c wird das Basisdreieck405 in einer Taylor-Form ausgedrückt (Polynom415 und Restglied420 ,425 ), wodurch eine konservative Näherung der Oberfläche410 erlangt wird. In4d wird das Taylor-Polynom in Bernstein-Form430 für eine effiziente Bereichsbegrenzung (unter Verwendung der Eigenschaft der konvexen Hülle) erweitert. In4e wird das Intervallrestglied420 ,425 von dem Taylor-Modell zu dem Bernstein-Grenzen430 addiert, wodurch konservative Oberflächengrenzen445 ,450 erlangt werden. -
5 zeigt eine Übersichtsarchitektur eines typischen Computers für allgemeine Zwecke583 , der einen Anzeigeadapter205 der2 enthält. Der Computer583 besitzt einen Controller570 , wie eine CPU, der in der Lage ist, Softwarebefehle auszuführen. Der Controller570 ist mit einem flüchtigen Speicher571 verbunden, wie einem Random Access Memory (RAM) und einem Anzeigeadapter500 , wobei der Anzeigeadapter dem Anzeigeadapter205 der2 entspricht. Der Anzeigeadapter500 ist wiederum mit einer Anzeige576 verbunden, wie einem CRT-Monitor, einem LCD-Monitor usw. Der Controller570 ist außerdem mit einem Permanentspeicher573 , wie einer Festplatte oder einem Flashspeicher, und einem optischen Speicher574 , wie einem Leser und/oder Schreiber von optischen Medien, wie CD, DVD, HD-DVD oder Blu-ray, verbunden. Eine Netzwerkschnittstelle581 ist außerdem mit dem Controller570 verbunden, um einen Zugang zu einem Netzwerk582 bereitzustellen, wie einem Local Area Network, einem Wide Area Network (z. B. Internet), einem Wireless Local Area Network oder einem Wireless Metropolitan Area Network. Durch eine Peripherieschnittstelle577 , z. B. einer USB-Schnittstelle, Wireless Universal Series Bus, Firewire, RS232 Serial, Centronics Parallel, PS/2, kann der Controller570 mit einer Maus578 , einer Tastatur579 oder anderen Peripheriegeräten580 , einschließlich eines Joysticks, eines Druckers, eines Scanners usw., kommunizieren. - Es ist zu verstehen, dass, obgleich ein Computer für allgemeine Zwecke zum Aufnehmen der Erfindung beschrieben wurde, die Erfindung ebenso in anderen Umgebungen enthalten sein kann, in der digitale Grafiken und insbesondere dreidimensionale Grafiken verwendet werden, z. B. Spielkonsolen, Handys, MP3-Player usw.
- Diese Erfindung kann ferner in sehr viel allgemeineren Architekturen enthalten sein. Die Architektur kann z. B. aus vielen kleinen Prozessorkernen bestehen, die jede Art von Programm ausführen können. Dies impliziert eine Art von Software-GPU im Unterschied zu mehr Hardware-centric GPUs.
- Die Erfindung wurde vorhergehend hauptsächlich mit Bezug auf einige Ausführungsformen beschrieben. Wie jedoch leicht durch einen Fachmann zu erkennen ist, sind andere Ausführungsformen als diejenigen, die oben beschrieben wurden, gleichermaßen innerhalb des Umfangs der Erfindung möglich, der durch die beigefügten Patentansprüche definiert ist.
- Zusammenfassung
- Ein Verfahren zum Verbessern der Performance zum Erzeugen von digital dargestellten Grafiken. Das Verfahren umfasst: Empfangen einer ersten Darstellung eines Basisprimitivs; Liefern eines ersten Satzes von Anweisungen, die einer Vertexpositionsbestimmung zugeordnet sind; Ausführen des empfangenen Satzes von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung einer begrenzten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs, und Unterziehen der zweite der Darstellung des Basisprimitivs einem Culling-Vorgang. Eine entsprechende Vorrichtung und ein Computerprogrammprodukt werden ebenso dargestellt.
- ZITATE ENTHALTEN IN DER BESCHREIBUNG
- Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
- Zitierte Patentliteratur
-
- SE 0700162-1 [0070]
- Zitierte Nicht-Patentliteratur
-
- Berz, M., und Hofstätter, G. 1998, Computation and Application of Taylor Polynominals with Interval Remainder Sounds, Reliable Computing, 4, 1, 83–97 [0079]
- Hungerbühler, R., und Garloff, J. 1998, Bounds for the Range of a Bivariate Polynominal over a Triangle, Reliable Computing, 4, 1, 3–13 [0093]
Claims (15)
- Verfahren zum Verbessern der Performance zum Erzeugen von digital dargestellten Grafiken, wobei das Verfahren Folgendes umfasst: Empfangen einer ersten Darstellung eines Basisprimitivs, Liefern eines ersten Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind, Ausführen des Satzes von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung einer begrenzten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs, und Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang.
- Verfahren nach Anspruch 1, das weiterhin Folgendes umfasst: Auswählen von wenigstens einem Vertex aus der ersten Darstellung des Basisprimitivs, Ausführen eines Satzes von Anweisungen, die mit einer Basispositionsbestimmung verknüpft sind, an der ersten Darstellung des wenigstens einen Vertex zum Liefern einer zweiten Darstellung des wenigstens einen Vertex, und Unterziehen der zweiten Darstellung des wenigstens einen Vertex einem Culling-Vorgang, wobei eine Ausgabe des Culling-Vorgangs wenigstens eines von Folgendem umfasst: eine Entscheidung, den wenigstens einen Vertex zu cullen, und eine Entscheidung, den wenigstens einen Vertex nicht zu cullen, und falls die Ausgabe des Culling-Vorgangs eine Entscheidung umfasst, den wenigstens einen Vertex zu cullen, Folgendes durchzuführen: das Empfangen der ersten Darstellung des Basisprimitivs, das Liefern eines Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind, das Ausführen des Satzes von Anweisungen auf der ersten Darstellung des Basisprimitivs unter Verwendung einer begrenzten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs, und das Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang.
- Verfahren nach einem der Ansprüche 1 bis 2, das weiterhin Folgendes umfasst: Bestimmen eines Begrenzungsvolumens, welches die zweite Darstellung des Basisprimitivs einschließt, und Unterziehen des Begrenzungsvolumens einem Culling-Vorgang.
- Verfahren nach einem der Ansprüche 1 bis 3, das weiterhin Folgendes umfasst: Ausführen eines Tessellationsvorgangs, wobei der Tessellationsvorgang auf der Ausgabe des Culling-Vorgangs beruht.
- Verfahren nach einem der Ansprüche 1 bis 4, wobei der Culling-Vorgang ersetzbar ist.
- Verfahren nach einem der Ansprüche 1 bis 5, wobei die begrenzte Arithmetik wenigstens eine aus der Gruppe von Taylor-Arithmetik, Intervall-Arithmetik und affiner Arithmetik ist.
- Verfahren nach Anspruch 3, wobei das Bestimmen des Begrenzungsvolumens weiterhin ein Berechnen eines Minimums und eines Maximums der zweiten Darstellung umfasst.
- Verfahren nach einem der Ansprüche 1 bis 7, wobei die zweite Darstellung eine Positionsgrenze und/oder eine Normalgrenze ist.
- Verfahren nach Anspruch 1, wobei das Ausführen des Satzes von Anweisungen ferner Folgendes umfasst: Ableiten eines zweiten Satzes von Anweisungen aus dem ersten Satz von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind, und Ausführen des zweiten Satzes von Anweisungen zum Liefern einer Normalgrenze.
- Verfahren nach Anspruch 3, wobei das Unterziehen des Begrenzungsvolumens dem Culling-Vorgang weiterhin ein Ausführen von wenigstens einem des Folgenden umfasst: Unterziehen des Begrenzungsvolumens einem View Frustum Culling, Unterziehen des Begrenzungsvolumens einem Back-Face Culling, und Unterziehen des Begrenzungsvolumens einem Occlusion Culling.
- Verfahren nach Anspruch 8, wobei das Unterziehen der zweiten Darstellung dem Culling-Vorgang ferner das Ausführen von wenigstens einem des Folgenden umfasst: Unterziehen der Positionsgrenze einem View Frustum Culling, Unterziehen der Positionsgrenze oder der Normalgrenze einem Back-Face Culling, und Unterziehen der Positionsgrenze einem Occlusion Culling.
- Verfahren nach Anspruch 1 bis 11, wobei eine Ausgabe des Culling-Vorgangs eines von Folgendem umfasst: eine Entscheidung, das Basisprimitiv zu verwerfen, und einen Tessellationsfaktor.
- Verfahren nach Anspruch 12, das weiterhin ein Ausführen eines Tessellationsvorgangs umfasst, wenn die Ausgabe des Culling-Vorgangs einen Tessellationsfaktor umfasst.
- Vorrichtung, die dafür eingerichtet ist, digital dargestellte Grafiken zu erzeugen, mit einer Schaltung zur Verbesserung der Performance zum Erzeugen von digital dargestellten Grafiken, wobei die Schaltung eingerichtet ist zum: Empfangen einer ersten Darstellung eines Basisprimitivs, Liefern eines ersten Satzes von Anweisungen, die mit einer Vertexpositionsbestimmung verknüpft sind, Ausführen des Satzes von Anweisungen an der ersten Darstellung des Basisprimitivs unter Verwendung einer begrenzten Arithmetik zum Liefern einer zweiten Darstellung des Basisprimitivs, und Unterziehen der zweiten Darstellung des Basisprimitivs einem Culling-Vorgang.
- Computerprogrammprodukt, welches Computerprogrammcode umfasst, der auf einem computerlesbaren Speichermedium gespeichert ist und der, wenn er von einem Prozessor ausgeführt wird, das Verfahren nach einem der Ansprüche 1 bis 13 durchführt.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0800165A SE532399C2 (sv) | 2008-01-23 | 2008-01-23 | Förfarande, apparat och datorprogramprodukt för s kapande av digitalt representerad grafik |
SE0800165-3 | 2008-01-23 | ||
US6263508P | 2008-01-29 | 2008-01-29 | |
SE61/062635 | 2008-01-29 | ||
SE0801742-8 | 2008-07-30 | ||
SE0801742A SE0801742L (sv) | 2008-07-30 | 2008-07-30 | Förfarande, apparat och datorprogramprodukt för förbättrad grafikprestanda |
PCT/SE2009/000022 WO2009093956A1 (en) | 2008-01-23 | 2009-01-23 | Method, apparatus, and computer program product for improved graphics performance |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112009000180T5 true DE112009000180T5 (de) | 2011-03-31 |
Family
ID=40901330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112009000180T Ceased DE112009000180T5 (de) | 2008-01-23 | 2009-01-23 | Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance |
Country Status (7)
Country | Link |
---|---|
US (4) | US9947130B2 (de) |
JP (2) | JP2011510396A (de) |
CN (1) | CN102016928B (de) |
DE (1) | DE112009000180T5 (de) |
GB (1) | GB2468994B (de) |
HK (1) | HK1156428A1 (de) |
WO (1) | WO2009093956A1 (de) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010048093A2 (en) * | 2008-10-20 | 2010-04-29 | Intel Corporation | Graphics processing using culling on groups of vertices |
US8542492B2 (en) * | 2009-12-10 | 2013-09-24 | Richard Anthony Dunn, JR. | Scalable up and down nesting integrated electronic enclosures with form factors including asteroids and/or dumbbells and/or approximated tessellation(s)/tiling(s) or combinations thereof with thermal management, wiring, sliding fit, manual and/or automated full range vertical to horizontal positioning, access and structural systems for individual modules and intra-and inter-planar stacks, columns, rows, arrays and associated infrastructures |
US8144147B2 (en) * | 2010-04-07 | 2012-03-27 | Intel Corporation | Hierarchical bounding of displaced parametric surfaces |
GB201007348D0 (en) | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US20110285736A1 (en) | 2010-05-21 | 2011-11-24 | Kilgard Mark J | Decomposing cubic bèzier segments for tessellation-free stencil filling |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US9619853B2 (en) | 2012-08-09 | 2017-04-11 | Qualcomm Incorporated | GPU-accelerated path rendering |
US9275498B2 (en) * | 2012-08-09 | 2016-03-01 | Qualcomm Incorporated | GPU-accelerated path rendering |
GB2509113B (en) | 2012-12-20 | 2017-04-26 | Imagination Tech Ltd | Tessellating patches of surface data in tile based computer graphics rendering |
US9483861B2 (en) * | 2013-03-15 | 2016-11-01 | Qualcomm Incorporated | Tile-based rendering |
KR102109130B1 (ko) | 2013-08-12 | 2020-05-08 | 삼성전자주식회사 | 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들 |
KR102066533B1 (ko) | 2013-11-19 | 2020-01-16 | 삼성전자 주식회사 | 도메인 쉐이딩 방법과 이를 수행하는 장치들 |
GB2526359B (en) * | 2014-05-23 | 2020-07-22 | Advanced Risc Mach Ltd | Graphics processing systems |
WO2016105218A1 (en) * | 2014-12-23 | 2016-06-30 | Intel Corporation | Facilitating culling of composite objects in graphics processing units when such objects produce no visible change in graphics images |
US20160259404A1 (en) | 2015-03-05 | 2016-09-08 | Magic Leap, Inc. | Systems and methods for augmented reality |
US10838207B2 (en) | 2015-03-05 | 2020-11-17 | Magic Leap, Inc. | Systems and methods for augmented reality |
US10180734B2 (en) | 2015-03-05 | 2019-01-15 | Magic Leap, Inc. | Systems and methods for augmented reality |
KR102381945B1 (ko) | 2015-11-18 | 2022-04-01 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 |
US10909711B2 (en) | 2015-12-04 | 2021-02-02 | Magic Leap, Inc. | Relocalization systems and methods |
KR102626821B1 (ko) | 2016-08-02 | 2024-01-18 | 매직 립, 인코포레이티드 | 고정-거리 가상 및 증강 현실 시스템들 및 방법들 |
US10812936B2 (en) | 2017-01-23 | 2020-10-20 | Magic Leap, Inc. | Localization determination for mixed reality systems |
JP7009495B2 (ja) | 2017-03-17 | 2022-01-25 | マジック リープ, インコーポレイテッド | 多ソース仮想コンテンツ合成を伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法 |
CN110431599B (zh) | 2017-03-17 | 2022-04-12 | 奇跃公司 | 具有虚拟内容扭曲的混合现实系统及使用该系统生成虚拟内容的方法 |
JP7009494B2 (ja) | 2017-03-17 | 2022-01-25 | マジック リープ, インコーポレイテッド | カラー仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツ生成する方法 |
US10614611B2 (en) * | 2017-04-07 | 2020-04-07 | Intel Corporation | Apparatus and method for implementing bounding volume hierarchy (BVH) operations on tesselation hardware |
US10373365B2 (en) * | 2017-04-10 | 2019-08-06 | Intel Corporation | Topology shader technology |
EP3827584A4 (de) | 2018-07-23 | 2021-09-08 | Magic Leap, Inc. | Intrafeld-subcode-timing in feldsequenziellen anzeigen |
JP7304934B2 (ja) | 2018-07-23 | 2023-07-07 | マジック リープ, インコーポレイテッド | 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法 |
US10831503B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Saving and restoring machine state between multiple executions of an instruction |
US10831478B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Sort and merge instruction for a general-purpose processor |
US10831502B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Migration of partially completed instructions |
US10832465B2 (en) * | 2018-12-13 | 2020-11-10 | Advanced Micro Devices, Inc. | Use of workgroups in pixel shader |
US20220319091A1 (en) * | 2021-03-31 | 2022-10-06 | Advanced Micro Devices, Inc. | Post-depth visibility collection with two level binning |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2271260A (en) * | 1992-10-02 | 1994-04-06 | Canon Res Ct Europe Ltd | Processing image data |
GB9716251D0 (en) * | 1997-08-01 | 1997-10-08 | Philips Electronics Nv | Attribute interpolation in 3d graphics |
JP2975336B2 (ja) * | 1998-01-09 | 1999-11-10 | コナミ株式会社 | 3次元ビデオゲームにおける衝突検出方法及びこれを用いたビデオゲーム装置並びに3次元ビデオゲームにおける衝突検出プログラムを記録したコンピュータ読み取り可能な媒体 |
US6717578B1 (en) * | 1998-02-17 | 2004-04-06 | Sun Microsystems, Inc. | Graphics system with a variable-resolution sample buffer |
US6359629B1 (en) * | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
US7068272B1 (en) | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
US6462740B1 (en) * | 1999-07-30 | 2002-10-08 | Silicon Graphics, Inc. | System for in-scene cloth modification |
JP4253190B2 (ja) | 2001-02-01 | 2009-04-08 | メンタル イメージズ ゲーエムベーハー | 細分表面における滑らかな特徴線の生成 |
JP4803909B2 (ja) * | 2001-06-21 | 2011-10-26 | 株式会社バンダイナムコゲームス | 画像生成システム、プログラム及び情報記憶媒体 |
US6809738B2 (en) * | 2001-12-21 | 2004-10-26 | Vrcontext S.A. | Performing memory management operations to provide displays of complex virtual environments |
US20030117398A1 (en) * | 2001-12-21 | 2003-06-26 | Hubrecht Alain Yves Nestor | Systems and methods for rendering frames of complex virtual environments |
NZ540742A (en) * | 2002-11-15 | 2007-10-26 | Sunfish Studio Inc | Visible surface determination system & methodology in computer graphics using interval analysis |
US20050122338A1 (en) * | 2003-12-05 | 2005-06-09 | Michael Hong | Apparatus and method for rendering graphics primitives using a multi-pass rendering approach |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
JP4683623B2 (ja) * | 2005-05-10 | 2011-05-18 | 株式会社ディジタルメディアプロフェッショナル | 幾何演算装置 |
JP4717622B2 (ja) * | 2005-12-15 | 2011-07-06 | 株式会社バンダイナムコゲームス | プログラム、情報記録媒体および画像生成システム |
JP4116648B2 (ja) * | 2006-05-22 | 2008-07-09 | 株式会社ソニー・コンピュータエンタテインメント | オクルージョンカリング方法および描画処理装置 |
US7847798B1 (en) * | 2006-10-24 | 2010-12-07 | Adobe Systems Incorporated | Clipping and culling artwork using a graphics processing unit |
CN1949272A (zh) * | 2006-11-23 | 2007-04-18 | 北京航空航天大学 | 基于视域剔除和图像缓存技术的复杂场景快速绘制方法 |
EP2122577B1 (de) | 2007-01-24 | 2018-03-07 | Swiftfoot Graphics Ab | Verfahren, anzeigeadapter und computerprogramm für verbesserte graphikleistung durch anwendung eines austauschbaren sortierungsprogramms |
US7948489B1 (en) * | 2007-05-30 | 2011-05-24 | Adobe Systems Incorporated | Minimizing tessellation of surfaces |
CN100568289C (zh) * | 2007-07-13 | 2009-12-09 | 威盛电子股份有限公司 | 计算机绘图元素描绘方法及装置 |
US8044971B2 (en) * | 2008-01-31 | 2011-10-25 | Arm Norway As | Methods of and apparatus for processing computer graphics |
-
2009
- 2009-01-23 US US12/864,113 patent/US9947130B2/en active Active
- 2009-01-23 DE DE112009000180T patent/DE112009000180T5/de not_active Ceased
- 2009-01-23 CN CN200980103541.4A patent/CN102016928B/zh not_active Expired - Fee Related
- 2009-01-23 GB GB1012145.7A patent/GB2468994B/en not_active Expired - Fee Related
- 2009-01-23 WO PCT/SE2009/000022 patent/WO2009093956A1/en active Application Filing
- 2009-01-23 JP JP2010543083A patent/JP2011510396A/ja active Pending
-
2011
- 2011-10-07 HK HK11110654.3A patent/HK1156428A1/xx not_active IP Right Cessation
-
2012
- 2012-09-24 JP JP2012209479A patent/JP5518967B2/ja active Active
-
2016
- 2016-12-31 US US15/396,569 patent/US10373370B2/en active Active
-
2019
- 2019-01-15 US US16/248,712 patent/US11361498B2/en active Active
- 2019-01-15 US US16/248,713 patent/US11222462B2/en active Active
Non-Patent Citations (2)
Title |
---|
Berz, M., und Hofstätter, G. 1998, Computation and Application of Taylor Polynominals with Interval Remainder Sounds, Reliable Computing, 4, 1, 83-97 |
Hungerbühler, R., und Garloff, J. 1998, Bounds for the Range of a Bivariate Polynominal over a Triangle, Reliable Computing, 4, 1, 3-13 |
Also Published As
Publication number | Publication date |
---|---|
HK1156428A1 (en) | 2012-06-08 |
JP5518967B2 (ja) | 2014-06-11 |
US20110018874A1 (en) | 2011-01-27 |
WO2009093956A1 (en) | 2009-07-30 |
JP2011510396A (ja) | 2011-03-31 |
JP2012252725A (ja) | 2012-12-20 |
US11361498B2 (en) | 2022-06-14 |
US11222462B2 (en) | 2022-01-11 |
US10373370B2 (en) | 2019-08-06 |
CN102016928A (zh) | 2011-04-13 |
WO2009093956A8 (en) | 2010-09-10 |
GB201012145D0 (en) | 2010-09-01 |
US9947130B2 (en) | 2018-04-17 |
CN102016928B (zh) | 2014-01-08 |
US20170109921A1 (en) | 2017-04-20 |
GB2468994B (en) | 2012-11-28 |
US20190172253A1 (en) | 2019-06-06 |
GB2468994A (en) | 2010-09-29 |
US20190172254A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112009000180T5 (de) | Verfahren, Vorrichtung und Computerprogrammprodukt für eine verbesserte Grafikperformance | |
DE102013114090B4 (de) | Konservative Rasterung von Primitiven unter Benutzung eines Fehler-Terms | |
DE102015113797B4 (de) | Relative Kodierung für eine blockbasierte Begrenzungsvolumenhierarchie | |
US9779536B2 (en) | Graphics processing | |
DE69322575T2 (de) | Verfahren und Gerät zur Wiedergabe von abgeglichenen NURB Oberflächen | |
DE102018113845A1 (de) | Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten | |
DE69716877T2 (de) | System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem | |
DE102015113240A1 (de) | System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters | |
DE102013114176A1 (de) | Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik | |
DE102018114286A1 (de) | Durchführen einer Traversierungs-Stack-Komprimierung | |
DE102011016347A1 (de) | Hierarchisches Umgrenzen von verschobenen parametrischen Flächen | |
DE102017108096A1 (de) | System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung | |
DE102013114373A1 (de) | Konsistente Vertex-Einrastung für Rendering mit variabler Auflösung | |
DE102010048486A1 (de) | Bildverarbeitungstechniken | |
DE112013005255T5 (de) | Bedarfsweise Geometrie- und Beschleunigungsstrukturerzeugung | |
CN104933749B (zh) | 图形图元的裁剪 | |
DE112009004418T5 (de) | Tessellator, dessen Tessellationszeit mit dem Tessellationsumfang linear steigt | |
DE102013022257A1 (de) | Programmierbares Mischen in mehrsträngigen Verarbeitungseinheiten | |
DE602004003111T2 (de) | Tiefen-basiertes Antialiasing | |
DE102013018445A1 (de) | Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit | |
DE102013020613A1 (de) | Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung | |
DE112012002623T5 (de) | Verfahren zum Simulieren der Bearbeitung von Objekten durch Bewegung eines Werkzeugs, und System und Computerprogrammprodukt für dieses | |
DE102020121814A1 (de) | Vorrichtung und Verfahren zum Verwenden von Dreieckspaaren und gemeinsam genutzten Transformationsschaltungen zum Verbessern der Strahlverfolgungsleistung | |
DE102017109472A1 (de) | Stereo-mehrfach-projektion implementiert unter verwendung einer graphikverarbeitungs-pipeline | |
DE112009002383T5 (de) | Grafikverarbeitung unter Verwendung von Culling auf Gruppen von Vertices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R081 | Change of applicant/patentee |
Owner name: INTEL CORPORATION, SANTA CLARA, US Free format text: FORMER OWNER: SWIFT-FOOT GRAPHICS AB, LUND, SE Effective date: 20110412 |
|
R016 | Response to examination communication | ||
R130 | Divisional application to |
Ref document number: 112009005583 Country of ref document: DE Ref document number: 112009005559 Country of ref document: DE |
|
R130 | Divisional application to |
Ref document number: 112009005583 Country of ref document: DE Ref document number: 112009005559 Country of ref document: DE |
|
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |