DE102020108358A1 - Wiedergeben von szenen mit einer kombination aus strahlverfolgung und rasterung - Google Patents

Wiedergeben von szenen mit einer kombination aus strahlverfolgung und rasterung Download PDF

Info

Publication number
DE102020108358A1
DE102020108358A1 DE102020108358.0A DE102020108358A DE102020108358A1 DE 102020108358 A1 DE102020108358 A1 DE 102020108358A1 DE 102020108358 A DE102020108358 A DE 102020108358A DE 102020108358 A1 DE102020108358 A1 DE 102020108358A1
Authority
DE
Germany
Prior art keywords
rendering
scene
display objects
objects
procedure
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.)
Pending
Application number
DE102020108358.0A
Other languages
English (en)
Inventor
Christoph KUBISCH
Ziyad Hakura
Manuel Kraemer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102020108358A1 publication Critical patent/DE102020108358A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)

Abstract

Die Offenbarung richtet sich auf Verfahren und Vorgänge zum Wiedergeben einer komplexen Szene unter Verwendung einer Kombination aus Strahlabtastung und Rasterung. Die Verfahren und Vorgänge können in einem Videotreiber oder einer Softwarebibliothek umgesetzt werden. Ein Entwickler einer Anwendung kann Informationen an einen Anwendungsprogrammierschnittstellen-(API)-Aufruf bereitstellen, als ob eine herkömmliche Strahlabtastungs-API aufgerufen wird. Die Verfahren und Vorgänge können die Szene unter Verwendung einer Vielzahl von Parametern analysieren, um eine Gruppierung von Objekten innerhalb der Szene zu bestimmen. Der Rasterungsalgorithmus kann von Strahlabtastungs-Beschleunigungsstrukturen abgerufene Grundkörperballungsdaten als Eingabe verwenden. Jede Gruppe von Objekten kann mit einem eigenen Gleichgewicht von Strahlabtastung und Rasterung wiedergegeben werden, um eine Wiedergabeleistung zu verbessern und gleichzeitig ein angestrebtes visuelles Qualitätsniveau zu gewährleisten.

Description

  • TECHNISCHES FACHGEBIET
  • Diese Anmeldung richtet sich allgemein auf eine Szenenwiedergabe und im Besonderen auf eine Szenenwiedergabe, die sowohl Strahlabtastung als auch Rasterung verwendet.
  • HINTERGRUND
  • Das Wiedergeben komplexer Szenen mit vielen Objekten kann einen erheblichen Anteil einer Verarbeitungszeit beanspruchen. Die komplexen Szenen können aus verschiedenen Softwareanwendungen stammen, wie etwa aus rechnergestützten Zeichenprogrammen, Video-/Bildbearbeitungsprogrammen und Spielen. Für den Wiedergabevorgang können verschiedene Methoden, wie etwa Rasterung oder Strahlabtastung, angewendet werden. Mithilfe dieser Methoden erstellen Entwickler oft funktionsspezifische Code-Module, die als Schnittstelle zu den verschiedenen Wiedergabealgorithmen dienen und steuern, welcher dieser Algorithmen verwendet wird. Darüber hinaus gibt es viele Bibliotheken, Videotreiber, Hardwareschaltungen und andere damit zusammenhängende Software- und Hardwarekombinationen von verschiedenen Anbietern und Entwicklern, die von der gewählten Wiedergabemethode unterstützt werden müssten.
  • ZUSAMMENFASSUNG
  • Die Offenbarung stellt ein Verfahren zur Wiedergabe einer aktuellen Szene auf einem Rechensystem mit einer GPU bereit. In einer Ausführungsform umfasst das Verfahren: (1) Bestimmen eines ersten Verdeckerobjektsatzes aus Szenendaten der aktuellen Szene unter Verwendung eines Strahlabtastungsalgorithmus, (2) Identifizieren eines zweiten Verdeckerobjektsatzes, wobei der zweite Verdeckerobjektsatz in einer zuvor wiedergegebenen Szene als sichtbar markiert ist, (3) Aufbauen eines Wiedergabebefehlspuffers unter Verwendung der ersten und zweiten Verdeckerobjektsätze, wobei der Wiedergabebefehlspuffer Strahlabtastungs- und Rasterungsalgorithmen identifiziert, (4) Wiedergeben erster Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, des Wiedergabebefehlspuffers und der GPU, (5) Prüfen einer Verdeckung eines dritten Objektsatzes unter Verwendung der ersten und zweiten Verdeckerobjektsätze und der ersten Anzeigeobjekte, (6) Wiedergeben zweiter Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, von Ergebnissen vom Prüfen von Verdeckung des dritten Objektsatzes und (7) Wiedergeben der aktuellen Szene unter Verwendung der ersten und zweiten Anzeigeobjekte.
  • In einem anderen Aspekt wird ein Rechnerprogrammprodukt offengelegt, das eine Reihe von Betriebsanweisungen aufweist, die auf einem nichtflüchtigen rechnerlesbaren Medium gespeichert sind, das bei Ausführung durch ein Datenverarbeitungsgerät dieses anweist, Schritte zur Wiedergabe einer aktuellen Szene auf einem Rechensystem mit GPU durchzuführen. In einer Ausführungsform umfassen die Schritte: (1) Bestimmen eines ersten Verdeckerobjektsatzes aus Szenendaten der aktuellen Szene unter Verwendung eines Strahlabtastungsalgorithmus, (2) Identifizieren eines zweiten Verdeckerobjektsatzes, wobei der zweite Verdeckerobjektsatz in einer zuvor wiedergegebenen Szene als sichtbar markiert ist, (3) Aufbauen eines Wiedergabebefehlspuffers unter Verwendung der ersten und zweiten Verdeckerobjektsätze, wobei der Wiedergabebefehlspuffer Strahlabtastungs- und Rasterungsalgorithmen identifiziert, (4) Wiedergeben erster Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, des Wiedergabebefehlspuffers und der GPU, (5) Prüfen einer Verdeckung eines dritten Objektsatzes unter Verwendung der ersten und zweiten Verdeckerobjektsätze und der ersten Anzeigeobjekte, (6) Wiedergeben zweiter Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, Ergebnissen vom Prüfen einer Verdeckung des dritten Objektsatzes und eines Rasterungsalgorithmus, der Grundkörperballungsdaten von Strahlabtastungs-Beschleunigungsstrukturen abruft, und (7) Wiedergeben der aktuellen Szene unter Verwendung der ersten und zweiten Anzeigeobjektsätze.
  • In einem weiteren Aspekt wird ein System zum Wiedergeben einer Szene auf einem Rechensystem offengelegt. In einer Ausführungsform umfasst das System (1) einen Szenenwiedergeber, der dazu imstande ist, die Szene wiederzugeben und umfasst: (1A) einen Objektanalysator, der dazu imstande ist, die Szene zu analysieren, die zu verwendenden Wiedergabemethoden zu bestimmen und mindestens eine Strahlabtastungs-Beschleunigungsstruktur zu erzeugen, (1B) einen Wiedergabebefehlspuffer, der dazu imstande ist, Wiedergabebefehle und -schritte zu bestimmen und Strahlabtastungsalgorithmen und Rasterungsalgorithmen zur Verwendung mit der Szene auszuwählen, wobei der Wiedergabebefehlspuffer eine Ausgabe des Objektanalysators verwendet, und (1C) einen Wiedergabeprozessor, der dazu imstande ist, die Strahlabtastungs- und die Rasterungsalgorithmen dazu zu verwenden, die Szene wiederzugeben, wobei der Wiedergabeprozessor durch eine Ausgabe des Wiedergabebefehlspuffers gelenkt wird, und wobei die Rasterungsalgorithmen Grundkörperballungsdaten von den Strahlabtastungs-Beschleunigungsstrukturen abrufen.
  • Figurenliste
  • Es wird nun auf die folgenden Beschreibungen in Verbindung mit den begleitenden Zeichnungen verwiesen, in denen:
    • 1 eine Veranschaulichung eines Blockdiagramms eines Beispiel-Szenenwiedergabesystems ist;
    • 2A eine Veranschaulichung eines Diagramms eines Beispiel-Strahlabtastungs- und Rasterungs-Wiedergabeablaufs ist;
    • 2B eine Veranschaulichung von Diagrammen mit Beispielen für strahlabtastungs-, mesh - und meshlet-segmentierten Objekten ist;
    • 2C eine Veranschaulichung eines Diagramms einer Beispiel-Strahlabtastungs-Beschleunigungsstruktur ist;
    • 3A eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens ist, das einen kombinierten Strahlabtastungs- und Rasterungs-Wiedergabevorgang verwendet;
    • 3B eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens ist, das auf 3A aufbaut, um eine Szene für ein Wiedergeben vorzubereiten;
    • 3C eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens ist, das auf 3A aufbaut, um eine Szene strahlabzutasten, um Verdecker aufzufinden;
    • 3D eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens ist, das auf 3A aufbaut, um Informationen für Wiedergabebefehlspuffer aufzubauen;
    • 3E eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens ist, das auf 3A aufbaut, um Verdeckerobjekte wiederzugeben; und
    • 3F eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens ist, das auf 3A aufbaut, um eine Verdeckung aller Objekte zu prüfen.
  • DETAILLIERTE BESCHREIBUNG
  • Anders als bei einer Zeichnung oder einem Gemälde, bei welchen ein einzelner Farbpunkt an der Stelle zurückbleibt, an der ein Pinsel die Leinwand berührt, werden rechnererzeugte Szenen unter Verwendung von Objekten erstellt oder definiert, die miteinander kombiniert werden, um die Szene auszubilden. Zum Beispiel kann eine Szene durch die Objekte eines Autos, eines Baumes und eines Schildes definiert werden, die in der Szene inbegriffen sind. Das Auto selbst kann durch Objekte wie Türen, Fenster, Autogriffe und Reifen weiter definiert werden. Ein Rechner kann jedes der Objekte innerhalb der Szene unter Verwendung der Beleuchtung, der Schattierung, der Tiefenbemaßung und anderer Szenenmerkmale, die vom Benutzer definiert werden, erzeugen. So können die Autofenster mit den reflektierenden Eigenschaften von Glas und die Autoreifen mit der stumpfen Färbung von schwarzem Gummi wiedergegeben werden.
  • Eine Softwareanwendung oder ein Rechnerprogramm, wie etwa ein Videospiel, kann die Objekte innerhalb der Szene speichern und manipulieren, um eine als Wiedergabe bezeichnete zweidimensionale Ansicht der Szene zu erzeugen, die angezeigt werden kann. Wiedergeben der einzelnen Objekte kann je nach Komplexität der Szene einen beträchtlichen Teil der Rechnerzeit beanspruchen. Die Komplexität kann zum Beispiel abhängig von der Anzahl von Objekten, die wiedergegeben werden müssen, der Menge an Details, die für jedes Objekt erforderlich sind, und den Arten von Bildeffekten, die angewendet werden sollen, wie Schatten, Reflexionen, Beleuchtung und Rauch oder Nebel, variieren.
  • Wiedergeben einer Szene kann eine Rasterung genannte Methode verwenden, bei der Vektoren, d.h. Linien und Kurven, anstelle von Punkten oder Pixeln verwendet werden, um die Szene zu definieren. Diese Vektoren können in ein Format konvertiert werden, das auf einem Monitor angezeigt, gedruckt oder an andere Systeme ausgegeben werden kann, wie etwa unter Verwendung der üblichen Branchenbildformate BMP, JPG und GIF. Vektoren sind verwendbar zur Beschreibung einer Szene und können von einem Rechensystem unter Anwendung verschiedener mathematischer Algorithmen leicht manipuliert werden. Zum Beispiel kann die Szene durch Manipulieren der Vektoren, die die Szene definieren, vergrößert oder verkleinert werden, wobei die visuelle Qualität der Szene erhalten bleibt.
  • Eine weitere Wiedergabemethode ist Strahlabtastung, bei der Strahlen von Oberflächenpunkten eines Objekts zu Lichtquellen der Szene gezeichnet werden. Strahlabtastung kann für die Beleuchtung einer Szene verwendbar sein durch korrektes Ausgleichen, wie eine Lichtquelle die der Lichtquelle zugewandten Oberflächen eines Objekts aufhellt und die von der Lichtquelle abgewandten Oberflächen verdunkelt. Strahlabtastung kann auch zum Erzeugen von Reflexionen und anderen visuellen Merkmalen verwendet werden. Strahlabtastung kann langsamer als Rasterung sein, wenn aus der Ansichtsperspektive der Szene, z.B. der Kameraperspektive, ausgesandte primäre Strahlen verfolgt werden, aber kann einen einfacheren Ansatz bieten, da die erforderlichen globalen Daten, wie etwa Schattierer, Geometrien und Instanzen, im Voraus von den Entwicklern bereitgestellt werden.
  • Strahlabtastung kann ein Verfolgen von beliebigen Punkten ermöglichen, wie es für globale Beleuchtungseffekte erforderlich ist. Typischerweise können zusätzliche Algorithmen und Berechnungen bei der Integration von strahlabgetasteten Objekten mit gerasterten Objekten erforderlich sein, wenn diese gerasterten Objekte einen Tiefenpuffer verwenden. Der Tiefenpuffer speichert Informationen darüber, wie weit jeder Punkt von der Kameraperspektive entfernt ist. Sie kann auch dazu verwendet werden, um festzustellen, ob ein Punkt oder ein Objekt durch ein anderes Objekt blockiert wird. Da ein blockiertes Objekt oder ein blockierter Punkt nicht gesehen werden kann, muss er nicht wiedergegeben werden, was Bearbeitungszeit sparen kann. Zum Beispiel muss eine Blume hinter dem Autoreifen nicht wiedergegeben werden, da der Reifen die gesamte Sicht auf die Blume blockiert.
  • Beim Wiedergeben müssen bestimmte Anwendungen eine Ziel-Wiedergabezeit einer Szene einhalten oder unterschreiten. Das Nichterreichen einer Ziel-Wiedergabezeit kann dazu führen, dass die Anwendung für einen Benutzer unbrauchbar wird oder die Qualität der Anwendung erheblich beeinträchtigt wird. Wenn zum Beispiel eine Ziel-Wiedergabezeit nicht erreicht wird, kann ein Benutzer, der Virtual-Reality (VR)-, Augmented-Reality- (AR)- oder Mixed-Reality (MR)-Anwendungen verwendet, visuelle Artefakte erleben, wie z.B. Sprunghaftigkeit in der Szene oder Zeitverzögerungen zwischen den Szenendarstellungen, die die Anwendung schwer bedienbar machen. Ein Verkürzen der Wiedergabezeit einer Szene kann jedoch zu einem Verlust an Details und visueller Qualität der Szene führen. So oder so ist ein Nutzererlebnis nachteilig. Es wäre vorteilhaft, diese Szenen im Vergleich zu derzeitigen Methoden schneller wiedergeben zu können und gleichzeitig die Verringerung der visuellen Qualität zu minimieren.
  • Diese Offenbarung bietet ein Verfahren, bei dem Strahlabtastung mit Rasterung kombiniert und ausgeglichen wird, um die Zeit zum Wiedergeben einer Szene zu reduzieren und gleichzeitig ein Ziel-Niveau an visueller Qualität zu bewahren. Strahlabtastung kann zuerst ausgeführt werden, um Bilddaten zu erzeugen, die als Beschleunigungsstruktur bezeichnet werden. Die Rasterung kann dann Informationen aus der Strahlabtastungs-Beschleunigungsstruktur nutzen, um die operative Effizienz der Rasterung zu verbessern.
  • Ein Einsatz von Strahlabtastung kann die operative Effizienz der Rasterung verbessern, ohne die Nachteile bestehender Verfahren und Methoden, die manchmal zum Wiedergeben eingesetzt werden. Um zum Beispiel beim Wiedergeben einer Szene zufriedenstellende Iterationszeiten zu bewahren kann Vorverarbeitung verwendet werden, dies jedoch mit Kosten bezüglich erforderlicher Systemressourcen. Ein anderes Verfahren, um zufriedenstellende Iterationszeiten zu bewahren, besteht darin, die verwendeten Details zu reduzieren, dies jedoch mit Kosten bezüglich einer visuellen Qualität. Für Rasterungspipelines kann die Verwendung von Verdeckungsauslese nützlich sein, um ein Wiedergeben von Szenen zu beschleunigen. Verdeckungsauslese kann jedoch für den Entwickler eine erhebliche Komplexität bei ordnungsgemäßer Umsetzung hinzufügen, insbesondere im Zusammenhang mit dynamischen Veränderungen innerhalb der Szene.
  • Aktuelle Ansätze zum Durchführen von Verdeckungsauslese mit Rasterung können ein Verfolgen des Verlaufs von Szenenobjekten in zuvor wiedergegebenen Einzelbildern umfassen. Mit diesem Verfahren werden Objekte wiedergegeben, wenn sie im letzten wiedergegebenen Einzelbild sichtbar waren; sodann wird für die verbleibenden Objekte in der Szene eine Prüfung durchgeführt, um sicherzustellen, dass die verbleibenden Objekte ebenfalls sichtbar sind. Verlaufsverfolgung kann eine beschwerlicher in verschiedene Hardware- und Softwarelösungen integrierbare Lösung sein.
  • Auf feinerer Granularität und nicht nur auf Zeichenaufrufen beruhende Auslese von Objekten kann auf Rechen-Schattierern beruhen, die ein chipexternes Herausschreiben ausgelesener Dreiecksindexpuffer umfassen. Dieses Verfahren kann Vorteile von Mesh- oder Meshlet-Task-Schattierern, die eine effiziente pipelineinterne Auslese ermöglichen, nicht nutzen. Meshlets sind Abschnitte eines Bildes, auf die ein Mesh-Schattieren angewendet wird. Meshlets können potenzielle Optimierungen bei Komprimierung von Geometrie oder bei Ballungs-Auslese aufweisen.
  • Darüber hinaus kann es auch ein Problem bei Unterstützung proprietärer Technologien geben, die in den Wiedergeber integriert sind, wie etwa Anwendungsprogrammierschnittstellen-(API)-Erweiterungen oder -Bibliotheken, die Optimierungsstrategien vor Wettbewerbern schützen. In bestimmten Märkten, zum Beispiel dem professionellen CAD-Markt, kann eine langfristige Pflege der Treiber und anderer Softwarekomponenten hinderlich sein.
  • Diese Offenbarung sieht vor, dass die Szene unter teilweiser Verwendung der Beschleunigungsstrukturen, die für Strahlabtastung existieren, d.h. Strahlabtastungs-Beschleunigungsstrukturen, gerastert werden kann, sodass segmentierte Abschnitte der Szenengeometrie in den Strahlabtastungs-Beschleunigungsstrukturen gespeichert werden. Die segmentierten Geometrieabschnitte können Grundkörperballungen sein, d.h. ein Satz von Begrenzungsformen, der ein geometrischer Platzhalter für das oder die Objekte sein kann, die für ein Wiedergeben in Betracht gezogen werden. Die Grundkörperballung kann wesentlich schneller wiedergegeben werden als das vertretene Objekt, daher können auch verschiedene Analysen, wie etwa Verdeckung, wesentlich schneller durchgeführt werden.
  • Eines oder mehrere der Objekte können verdeckt sein, in welchem Fall das Wiedergeben für das verdeckte Objekt oder einen Teil des verdeckten Objekts übersprungen wird. Über Strahlabtastung oder Volumenschnitt der Platzhalter-Darstellung, z.B. Begrenzungsformen innerhalb der Begrenzungsvolumenshierarchie (BVH), kann eine Anordnung der Batches von vorne nach hinten, z.B. Wellenverarbeitung oder -iterationen, extrahiert werden. Jede Iteration kann einen Verdeckungserkennungsalgorithmus, einen Sichtbarkeitstest oder einen Sichtbarkeitsparameter aus dem zuvor wiedergegebenen Einzelbild verwenden. Die Verwendung eines Algorithmus in der Iteration schließt die Verwendung eines abweichenden Algorithmus in einer nachfolgenden Iteration nicht aus.
  • Die Eingabe für den Rasterungsalgorithmus können Dreiecke oder andere geometrische Formen aus konventionellen Vertex-Index-Puffern sein, oder die Eingabe kann aus den Strahlabtastungs-Beschleunigungsstrukturen abgerufen werden. Der Rastervorgang von Objekten in der Szene kann den Rasterungsalgorithmus verwenden, um einen Optimierungsvorgang auszuwählen. Eine Optimierungsmöglichkeit kann darin bestehen, einzelne Grundkörper konventionell aus den Vertex-Index-Puffern abzurufen. Eine weitere Optimierungsmöglichkeit kann darin bestehen, Grundkörperballungsdaten unter Verwendung von komprimierten oder unkomprimierten Ballungsdaten aus Strahlabtastungs-Beschleunigungsstrukturen abzurufen. Zum Beispiel können Strahlabtastungs-Beschleunigungsstrukturen während einer ersten Iteration dazu verwendet werden, die mit dieser Struktur verfügbare räumliche Sortierung auszunutzen. Während einer zweiten oder nachfolgenden Iteration können Geometrieabschnitte, die bereits in den Strahlabtastungs-Beschleunigungsstrukturen gespeichert sind, abgerufen werden, um Komprimierung zu nutzen, die Mesh-Schattierer-Fähigkeiten (d.h. Mesh-Schattierer-Pipeline) zu nutzen, aus Grundkörperballungen zu rastern und andere Wiedergabevorteile zu nutzen.
  • Nach Rastern der Serie von segmentierten Abschnitten kann eine global zugängliche hierarchische Z-Puffer-(HiZ)-Datenstruktur, d.h. eine Textur-Mipmap (Mip)-Kette, aktualisiert werden. Die HiZ-Datenstruktur kann in späteren iterativen Zeichnungen dazu verwendet werden, die segmentierten Abschnitte auf mehreren Ebenen zu verwerfen, wie etwa nach Anwenden von Vorprüfungen auf die Objekte. Die HiZ-Datenstruktur kann auch dazu verwendet werden, ein weiteres Durchgehen der Objekte in späteren Iterationen zu verhindern. Innerhalb jeder Iteration kann eine Teilmenge der Objekte der Szene wiedergegeben werden, indem Anzeigeobjekte erzeugt werden. Das Wiedergeben der kombinierten Iterationen erzeugt das endgültige Szenen- oder Einzelbild. Ein Objekt kann in einer Iteration übersprungen, teilweise wiedergegeben oder vollständig wiedergegeben werden.
  • Der für die Szenenverarbeitung verwendete Prozessor kann Objekte auf mehreren Ebenen von Grundkörpern unter Verwendung des Meshlet-Task-Schattierers auslesen, wobei das Auslesen je Zeichenaufruf oder je Gruppe erfolgt. Die HiZ-Datenstruktur kann asynchron zu einem Wiedergeben aktualisiert werden, um ein Warten auf den vollständigen Abschluss des aktuellen Wiedergabeschrittes zu vermeiden, z.B. eine Leerlaufwarte-(WFI)-Bedingung. Die vorliegende Offenbarung kombiniert die räumliche Effizienz von Strahlabtastung, die keine Verarbeitung von verdeckten Oberflächenpunkten erfordert, mit der Datenparalleleffizienz von Rasterung. Rasterung kann es ermöglichen, mehrere Grundkörper und mehrere Pixel parallel zu verarbeiten, um die Gesamtleistung zu verbessern. Verdeckte Oberflächenpunkte können Teil eines verdeckten Objekts sein, das teilweise oder vollständig verdeckt sein kann.
  • Die hier vorgestellten Verfahren können in einem Treiber, einer Bibliothek oder anderen Codestellen in Software oder Hardware integriert werden. Es kann eine API verwendet werden, die die durch die Verfahren bereitgestellte Funktionalität kapselt. Für eine Grafikschnittstelle kann eine API verwendet werden, die eine zwanglose Reihung von Zeichenaufrufen und Grundkörpern ermöglicht. Es kann auch eine API verwendet werden, die ein Verfahren zum Bereitstellen von Szenenbeschreibungsinformationen für einen wesentlichen Abschnitt der Geometrie der Szene kapselt. Allgemein kann die API in einem Videotreiber für eine Grafikverarbeitungseinheit (GPU) umgesetzt oder gekapselt werden, der ein akzeptables Leistungsansprechen auf eine Wiedergabeanforderung bereitstellen kann, wobei verschiedene allgemeine und spezifische Prozessoren dazu verwendet werden können, die Lösungen umzusetzen.
  • Die hier offengelegten Verfahren und Vorgänge können als eine Black-Box-Lösung umgesetzt werden, bei der die Entscheidungen, Algorithmen und Vorgänge hinter dem API-Aufruf verborgen sind. Dies kann die Nutzungsbedingungen für Entwickler erleichtern, da sie die zu nutzenden Optimierungen nicht spezifizieren müssen. Die Black-Box-Natur dieser Lösung ermöglicht auch eine schrittweise Verbesserung der Technologie, wie etwa ein Ausgleichen des Übergangs zwischen Strahlabtastungs- oder Rasterungsansätzen, ohne Änderungen oder Anpassungen von anderen abhängigen Softwarevorgängen oder von Entwicklern zu erfordern. Ein Beispiel für den Übergangsausgleich ist ein Umschalten von Verdeckungsauslese zwischen Strahlabtastung und Rasterung, wie durch das Verfahren bestimmt.
  • Darüber hinaus können weitere Verbesserungen bei der Verwendung der Rasterung über Meshlets umgesetzt werden, die Geometriekompression ermöglichen. Hardwarebeschleunigung und räumliche Datenstrukturen können dazu genutzt werden, die Leistung zu steigern, ohne dass die aufrufende Anwendung diese spezifischen Merkmale spezifiziert. Der Leistungsvorteil gegenüber nativer Rasterung kann bei größeren Datensätzen erheblich sein, z.B. wurde eine 5-fache Leistungssteigerung mit dem Meshlet-Ansatz erzielt. Diese Leistung ist für den Anwender leicht zu beobachten und ergibt eine Zeitersparnis für den Anwender.
  • Sich nun den Abbildungen zuwendend veranschaulicht 1 ein Blockdiagramm eines Beispiel-Szenenwiedergabesystems 100. Szenenwiedergabesystem 100 umfasst einen Szenenwiedergeber 110 und ein Ansichtssystem 120. Szenenwiedergeber 110 umfasst einen Objektanalysator 112, einen Wiedergabebefehlspuffer 114 und einen Wiedergabeprozessor 116. Szenendaten, wie sie von einer Anwendung, zum Beispiel einer CAD-Anwendung, einer Spielanwendung oder einem Videobearbeitungsprogramm, bereitgestellt werden, können an den Szenenwiedergeber 110 übermittelt und zur Verarbeitung empfangen werden. Die Szenendaten, d.h. Szeneninformationen, können von einer API des für die Videoverarbeitung verwendeten Videotreibers entgegengenommen werden.
  • Der Objektanalysator 112 bewertet und analysiert die empfangenen Szenendaten und kann daraus Strahlabtastungs-Beschleunigungsstrukturen und Rasterungsbeschleunigungsstrukturen erzeugen. Ein Beispiel für eine Strahlabtastungs-Beschleunigungsstruktur ist in 2C angegeben. Die Rasterungsbeschleunigungsstrukturen können mehrere logische Dreiecke aufweisende Objekte aus den Szenendaten in mehrere Zeichenaufrufe segmentieren, um die Optimierung einer Verdeckungsprüfung zu verbessern. Für den Segmentierungsvorgang kann der Objektanalysator 112 Strahlabtastungs-Raumballung zum Bestimmen der Segmentierungspunkte nutzen, da die Ballungen eine gröbere Granularität haben können als die Strahlabtastungs-Blattknoten. Eine Verwendung der gröberen Granularitätsballungen eines Objekts, z.B. eines vereinfachten Umrisses eines Objekts in einer oder mehreren Ansichtsperspektiven, kann eine schnellere Berechnungszeit ergeben, als wenn eine detaillierte Version des Objekts verwendet würde. Die detailliert aufgelöste Version des Objekts kann zum Wiedergeben der Szene verwendet werden, nachdem die anderen Berechnungen, wie etwa Verdeckung, abgeschlossen wurden (siehe 2C für eine Beispiel-Strahlabtastungs-Raumballung).
  • Nachdem der Objektanalysator 112 den Analysevorgang durchgeführt hat, können Objekte als sichtbar oder nicht sichtbar gekennzeichnet werden, und Strahlabtastung kann zur Bestimmung verdeckender Objekte, d.h. von Objekten, die andere Objekte verdecken, verwendet werden. Verarbeitung innerhalb des Szenenwiedergebers 110 geht dann zum Wiedergabebefehlspuffer 114 über. Der Wiedergabebefehlspuffer 114 kann Objekte sortieren, spezifische Wiedergabebefehle erzeugen und geeignete, für jeden Wiedergabeschritt zu verwendende Algorithmen auswählen, wie etwa den Schattierer-Algorithmus. Der Wiedergabeprozessor 116 nimmt die auf diese Weise durch den Wiedergabebefehlspuffer 114 angezeigten Objekte entgegen und rendert sie.
  • Der Wiedergabeprozessor 116 kann die Objekte durch einen iterativen Vorgang wiedergeben. Sobald eine erste Iteration abgeschlossen ist, fließt der Wiedergabevorgang zurück in den Wiedergabebefehlspuffer 114, um eine oder mehrere weitere Iterationen zu verarbeiten, wobei jede Iteration aufeinanderfolgende Objektschichten aufbaut. Die Objektschichten können auf verschiedene Weise gereiht werden, wie etwa um den Wiedergabevorgang zu optimieren, sodass sichtbare Teile von Objekten wiedergegeben werden während verdeckte Objekte oder Abschnitte davon nicht wiedergegeben werden. Wenn die eine oder mehreren Iterationen abgeschlossen sind, kann die wiedergegebene Szene in einen Einzelbildspeicher ausgegeben und an das Ansichtssystem 120 übermittelt werden. Das Ansichtssystem 120 stellt die wiedergegebenen Szenen zur Ansicht bereit und kann zum Beispiel eine Anzeige, ein Projektor, ein Drucker, ein Speichergerät oder andere Arten von Vorrichtungen sein, die mit Szenendaten umgehen können.
  • In 1 wird das Szenenwiedergabesystem 100 in einer auf der Funktionalität beruhenden logischen Ansicht beschrieben. Das Szenenwiedergabesystem 100 kann auf einem Rechensystem unter Verwendung eines allgemeinen Prozessors umgesetzt werden, wie etwa einer Zentralverarbeitungseinheit (CPU), einer GPU, oder anderer Arten von Prozessoreinheiten. Mehr als ein Prozessor und mehr als ein Prozessortyp können in verschiedenen Kombinationen eingesetzt werden, um die hier beschriebenen Vorgänge umzusetzen. Die Komponenten des Szenenwiedergebers 110 können zusammen oder getrennt umgesetzt werden, zum Beispiel kann der Objektanalysator 112 in einem Rechenzentrum umgesetzt werden, während der Wiedergabebefehlspuffer 114 und der Wiedergabeprozessor 116 lokal beim Benutzer umgesetzt werden. Darüber hinaus kann der Szenenwiedergeber 110 Teil eines Rechensystems mit Ansichtssystem 120 sein, davon getrennt und dazu benachbart sein oder davon getrennt und entfernt sein. Zum Beispiel kann der Szenenwiedergeber 110 Teil eines Rechenzentrums, eines Cloud-Verarbeitungssystems oder eines Servers sein, und das Ansichtssystem kann nutzerlokal sein.
  • 2A veranschaulicht ein Ablaufdiagramm eines Beispiels eines Verfahrens zur Strahlabtastungs- und Rasterungs-Wiedergabe 202. Strahlabtastungs- und Rasterungs-Wiedergabe 202 umfasst Szenenaufbau 230, Szenenaktualisierung 232 und Szenenwiedergabe 234. Im Szenenaufbau 230 wird eine Gruppe von Objekten als Gruppe und nicht einzeln analysiert. Je nach Komplexität der wiedergegebenen Szene kann es eine oder mehrere Gruppen von Objekten geben, die analysiert werden. In Szenenaktualisierung 232 wird die Gruppe von Objekten auf verschiedene Faktoren wie Sichtbarkeit und Verdeckung hin analysiert. Die Wiedergabebefehle können dann bestimmt werden. In Szenenwiedergabe 234 werden die Wiedergabebefehle ausgeführt, um die Szene oder einen Abschnitt der Szene wiederzugeben. Die Strahlabtastungs- und Rasterungs-Wiedergabe 202 kann für weitere Iterationen wiederholt werden. Die Strahlabtastungs- und Rasterungs-Wiedergabe 202 oder zumindest ein Teil davon kann durch den Szenenwiedergeber 100 durchgeführt werden.
  • 2B veranschaulicht Diagramme, die für eine Segmentierung eines Beispielobjekts auf drei verschiedene Arten stehen. Dargestellt sind ein strahlabtastungssegmentiertes Objekt 252, ein mesh-segmentiertes Objekt 254 und ein meshlet-segmentiertes Objekt 256. Das strahlabtastungs-segmentierte Objekt 252 demonstriert Strahlabtastung unter Verwendung von BVH. Das mesh-segmentierte Objekt 254 demonstriert die Segmentierung unter Verwendung von mesh-definierten Dreiecken. Mesh-segmentiertes Objekt 254 zeigt, genauer gesagt, eine unterteilte Netzfigur, bei der das räumlich geteilte Netz in Teilnetze unterteilt ist, um eine Verdeckungsauslesegranularität zu verbessern. Meshlet-segmentiertes Objekt 256 demonstriert eine Verwendung von Meshlet-Segmentierung. Wie in 1 für den Objektanalysator 112 beschrieben kann die Meshlet-Segmentierung Grundkörper, d.h. grobgranulare Ballungsobjekte bei Verarbeitung von Szenenberechnungen und feingranulare, d.h. hochauflösende Ballungsobjekte zum Wiedergeben durch eine Geometriepipeline während einer Rasterung verwenden.
  • 2C ist eine Veranschaulichung eines Diagramms einer Beispiel-Strahlabtastungs-Beschleunigungsstruktur 260. Die Strahlabtastungs-Beschleunigungsstruktur 260 wird mit dem konventionellen Blattknoten 262 und dem BVH-Blattknoten 264 demonstriert. Blattknoten 262 kann ein niedrig aufgelöstes Objektbild sein und kann zum Verbessern der Leistung des Wiedergabevorganges verwendet werden. Blattknoten 264 kann ein voll aufgelöstes Objektbild umfassen und kann BVH verwenden und eine exakte Dreiecksprüfung jedes Objekts umgehen.
  • 3A ist eine Veranschaulichung eines Ablaufdiagramms eines Beispiels von kombinierter Strahlabtastungs- und Rasterungs-Wiedergabemethode 301, die nach den Prinzipien der Offenbarung durchgeführt wird. Zumindest ein Teil des Verfahrens 301 kann von einer GPU ausgeführt werden. In einigen Beispielen kann das Verfahren 301 durch den Szenenwiedergeber 100 ausgeführt werden. Verfahren 301 startet in einem Schritt 309, bei dem der Szenenwiedergabevorgang beginnt.
  • In einem Schritt 310 werden Szenendaten entgegengenommen. Die Szenendaten können über einen API-Aufruf entgegengenommen werden. Der API-Aufruf kann der gleiche oder ein äquivalenter Aufruf sein wie ein API-Strahlabtastungs-Zeichenaufruf. Die Szenendaten können Objektdaten wie Position, Entfernung von der Ansichtsperspektive und Ausrichtung für jedes Objekt in oder in der Nähe der Szene umfassen sowie Szeneneigenschaften wie Lichteffekte, Schatten und andere Szeneneigenschaften. Darüber hinaus können in einigen Aspekten Informationen über das vorhergehend wiedergegebene Einzelbild der Szene bereitgestellt werden, wie etwa das Ausmaß der Objektveränderung innerhalb der Szene, wie etwa Objektausrichtung oder -positionsänderung.
  • Weiter zu einem Entscheidungsschritt 315 fortschreitend wird eine Erstanalyse durchgeführt, um festzustellen, ob Änderungen für die aktuelle Szene Objekte gegenüber der zuvor wiedergegebenen Szene wesentlich verändert haben. Wenn das Ergebnis ,Ja' ist, dann schreitet das Verfahren 301 zu einem Schritt 320 fort. Im Schritt 320 können Strahlabtastungsverfahren angewendet werden, um einen ersten Verdeckerobjektsatz in der aktuellen Szene zu finden. Zum Entscheidungsschritt 315 zurückkehrend schreitet das Verfahren 301 zu einem Schritt 328 fort, wenn das Ergebnis ,Nein' lautet. In Schritt 328 werden Objekte, die in der vorhergehend wiedergegebenen Szene als sichtbar markiert wurden, in der aktuellen Szene weiterhin als sichtbar markiert.
  • Nachdem die Schritte 320 oder 328 abgeschlossen sind, schreitet das Verfahren 301 zu Schritt 330 fort. Im Schritt 330 werden Wiedergabebefehlspufferinformationen erzeugt. Die Wiedergabebefehlspufferinformationen werden unter Verwendung der in den Schritten 310, 320 und 328 gewonnenen Informationen erzeugt. In einem Schritt 335 wird ein erster Verdeckerobjektsatz mit einer niedrigeren Auflösung wiedergegeben als eine Zielauflösung. Die Zielauflösung kann zum Beispiel die eines ersten Satzes von Anzeigeobjekten sein. Wiedergeben mit einer niedrigeren Auflösung kann verwendet werden, um die Geschwindigkeit des Wiedergabevorgangs zu erhöhen. In einem Schritt 340 wird eine Verdeckung der aktuell wiedergegebenen Objekte (eines aktuell wiedergegebenen Objektsatzes) geprüft. Objekte, die durch die Prüfung als nicht sichtbar erachtet werden, werden als solche gekennzeichnet. Ein Sichtbarkeitstest kann dazu verwendet werden, auf Verdeckung zu prüfen. Objekte, die nun als nicht sichtbar gekennzeichnet sind, können aus der weiteren Bearbeitung entfernt werden. Zusätzlich kann ein zuvor verdecktes Objekt, das nun sichtbar ist, dem Wiedergabevorgang hinzugefügt werden.
  • In einem Schritt 345 wird ein neuer Satz von Wiedergabebefehlen erzeugt. Der neue Satz von Wiedergabebefehlen kann in den Puffern für Wiedergabebefehle gespeichert werden. Die Ergebnisse der Verdeckungsprüfungen in Schritt 340 können dazu verwendet werden, den neuen Satz von Wiedergabebefehlen zu erzeugen. In einem Schritt 350 können die verbleibenden sichtbaren Objekte, wie etwa ein zweiter Verdeckerobjektsatz, mit der Zielauflösung wiedergegeben werden. Wiedergeben der verbleibenden sichtbaren Objekte erzeugt einen zweiten Satz von Anzeigeobjekten. Darüber hinaus können auch beliebige Korrekturen an den vorhergehend wiedergegebenen Objekten vorgenommen werden. Das Verfahren 301 schreitet zu einem Schritt 370 fort und endet. Die Ausgabe des Verfahrens 301 liefert Rastertiefe- und Farbtiefe-Szenendaten, die geeignet sind zum Senden an einen Bildpuffer zur Anzeige, an eine Bild- oder Bilddatei, einen Drucker oder eine andere Vorrichtung, die imstande ist, mit Szenendaten umzugehen.
  • Entscheidungsschritt 315 und die Schritte 320 bis 335 können als erste Iteration 360 und die Schritte 340 bis 350 können als zweite Iteration 362 gruppiert werden. Zusätzliche Objektiterationen können mit dem Verfahren 301 hinzugefügt werden. Zum Beispiel können die ersten beiden Iterationen dazu verwendet werden, niedrig aufgelöste Objekte, z.B. vereinfachte Objekte, zu erzeugen, und eine dritte Iteration kann dazu verwendet werden, eine hoch aufgelöste Version der Objekte zu erzeugen. Zusätzlich kann eine dritte Iteration verwendet werden, wenn Objekte gruppiert und unter Verwendung eines Tiefenpuffers wiedergegeben werden, d.h. Tiefensalzen.
  • 3B ist eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens 302, das auf 3A aufbaut, um eine Szene zum Wiedergeben vorzubereiten. Das Verfahren 302 erweitert den Schritt 310 des Verfahrens 301. Ausgehend von Schritt 310 umfasst Verfahren 302 eine Szenenvorbereitung in Schritt 311. Szenenvorbereitung in Schritt 311 kann zwei zusätzliche Verarbeitungsschritte einleiten. Im Schritt 312 werden Strahlabtastungs-Beschleunigungsstrukturen erzeugt. In einigen Beispielen können konventionelle Methoden dazu verwendet werden, die Strahlabtastungs-Beschleunigungsstrukturen zu erzeugen. Im Schritt 313 werden Rasterungsbeschleunigungsstrukturen erzeugt. Das Verfahren 302 schreitet dann zum Entscheidungsschritt 315 des Verfahrens 301 fort.
  • In einigen Aspekten können Schritte 312 und 313 parallel ausgeführt werden. In anderen Aspekten kann Schritt 312 zuerst ausgeführt und die Ergebnisse als Eingabe für Schritt 313 verwendet werden. Objekte, die mit vielen Dreiecken definiert sind, können in mehrere Zeichenaufrufe segmentiert werden, sodass die Strahlabtastungs-Beschleunigungsstrukturen parallel verarbeitet werden können, wie etwa auf einer GPU. Die mehreren Zeichenaufrufe können die Optimierung einer Verdeckungsprüfungsgranularität verbessern. In Aspekten, in denen die Rasterungsbeschleunigungsstrukturen eine räumliche Ballung von Strahlabtastungs-Beschleunigungsstrukturen als Eingabe nutzen, können die Rasterbeschleunigungsstrukturen im Vergleich zu den Strahlabtastungs-Blattknoten eine gröbere Granularität zum Speichern jedes Objekts nutzen, was eine Rechenzeit bei Verarbeitung jedes Objekts und Interaktionen des Objekts mit anderen Objekten, wie etwa durch Verdeckung und Reflexionen, verbessern kann.
  • 3C ist eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens 303, das auf 3A aufbaut, um eine Szene strahlabzutasten, um Verdeckungen aufzufinden, wie etwa den ersten Verdeckerobjektsatz. Verfahren 303 erweitert den Schritt 320. Ausgehend von Schritt 320 wird in einem Schritt 321 eine Optimierungsauswahl getroffen. Die Optimierungsauswahl kann gute Verdecker bestimmen, wie etwa wo ein Schattieren übersprungen werden kann und wo niedrig aufgelöstes, z.B. vereinfacht darstellendes, Wiedergeben zur Leistungssteigerung genutzt werden kann. Die Optimierungsauswahl von Schritt 321 wählt auch den nächsten auszuführenden Schritt aus. Zum Beispiel können ein oder mehrere Algorithmen zur nächsten Ausführung ausgewählt werden. Zwei solcher Algorithmen werden in Verfahren 303 als Schritt 323 für Geometrie-Strahlabtasten und Schritt 324 für Szenen-Strahlabtasten demonstriert. In dem Schritt 323 kann Geometrie-Strahlabtasten die nächstliegenden Objekte zurückgeben und die Objektbezeichner zurückgeben. Für diesen Schritt können Methoden für niedrige Auflösung verwendet werden. In dem Schritt 324 kann Szenen-Strahlabtasten bis zur Ebene der Blattknoten genutzt werden, was den exakten Dreieckstest umgeht. Dieser Schritt kann die BVH-Analyse verwenden. Das Verfahren 303 schreitet dann zu dem Schritt 330 des Verfahrens 301 fort.
  • 3D ist eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens 304, das auf 3A aufbaut, um Informationen für Wiedergabebefehlspuffer zu erstellen. Schritt 330 schreitet zu einem Schritt 331 fort, ähnlich kann Schritt 345 zu Schritt 331 fortschreiten, wo ein Einteil- und Sortiervorgang Objekte auf ihrem jeweiligen Zustand und ihren Kriterien beruhend gruppieren kann, wie etwa durch Verwendung eines Tiefenparameters oder eines Sichtbarkeitsparameters.
  • In einem Schritt 332 können Wiedergabepufferbefehle erzeugt und im Wiedergabebefehlspuffer gespeichert werden. Zum Beispiel kann eine Festlegung erfolgen, welcher Schattierer-Typ für diese Szene verwendet werden soll. Darüber hinaus kann festgelegt werden, welche Objekte in einer ersten Iteration wiedergegeben werden sollen, wie etwa der erste Verdeckerobjektsatz zum Erzeugen der ersten Anzeigeobjekte, und welche Objekte in einer zweiten Iteration wiedergegeben werden können, wie etwa der zweite Verdeckerobjektsatz zum Erzeugen der zweiten Anzeigeobjekte. Es können auch Festlegungen getroffen werden, um die Strahlabtastungs- und Rasterungsvorgänge auszugleichen und zu kombinieren, um den gesamten Wiedergabevorgang zu optimieren. Beim Wiedergeben der ersten Anzeigeobjekte können andere (oder teilweise gleiche) Strahlabtastungs- und Rasterungsalgorithmen verwendet werden als beim Wiedergeben der zweiten Anzeigeobjekte. Das Verfahren 304 schreitet dann zu dem Schritt 335 des Verfahrens 301 fort.
  • 3E ist eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens 306 und Verfahrens 307, die auf 3A aufbauen, um Verdeckungsobjekte wiederzugeben. Verfahren 306 und 307 folgen ähnlichen Verarbeitungsschritten, jedoch an unterschiedlichen Stellen im Vorgangsablauf. Verfahren 306 geht vom Schritt 335 zu einem Entscheidungsschritt 336 über. In ähnlicher Weise geht das Verfahren 307 vom Schritt 350 zum Entscheidungsschritt 336 über. Diese Schritte können als ein Vorgang umgesetzt werden, oder es können für Verfahren 306 und Verfahren 307 jeweils separate Vorgänge erstellt werden. In dem Entscheidungsschritt 336 können Optimierungsmethoden ausgeglichen werden. Der Vorgang kann bestimmen, ob Strahlabtastung oder Rasterung für die zu verarbeitende Objektgruppe am besten geeignet ist. Auf dem Ergebnis des Entscheidungsschrittes 336 beruhend kann das Verfahren zu einem Schritt 337 oder einem Schritt 338 fortschreiten.
  • In dem Schritt 337 kann Strahlabtastung für Objekte mit einer hohen Dreiecksdichte im Verhältnis zum verfügbaren Bildschirmraum, d.h. der Auflösung der Zielausgabe, eingesetzt werden. Die Geometrie-Pipeline des Rasterers kann auf Strahlabtastungs-Beschleunigungsstrukturen zugreifen, um segmentierte Geometrieabschnitte, wie etwa Dreiecks- und Knoten-Positionsdaten, abzurufen, um Speicherplatz zu sparen. Ballungen von Objekten werden durch BVH aus den Strahlabtastungs-Beschleunigungsstrukturen bestimmt. Tiefenparameter und Dreiecksballungen werden durch Verwendung des BVH-Algorithmus vermieden. In dem Schritt 338 kann zum Wiedergeben der Objekte eine Rasterung verwendet werden. Konventionelle Mesh- oder Meshiet-Datenstrukturen können dazu verwendet werden, das Wiedergeben für Rasterung zu optimieren.
  • Nachdem Schritt 337 oder 338 abgeschlossen sind, schreitet das Verfahren zu Schritt 339 fort. In dem Schritt 339 können auf einem Tiefenparameter für die Objekte beruhend zusammengesetzte Objektinformationen erzeugt werden. Zusammengesetzte Bildinformationen können auf den Tiefenparametern von Pixeln für die Objekte beruhend erzeugt werden. Die Pixel und ihre Tiefeninformation können entweder durch Rasterungs- oder Strahlabtastungsverfahren erzeugt werden. Zum Beispiel kann eine Strahlabtastung an einem Punkt beginnen, für den die Kameraursprungsperspektive steht, und am Rasterungstiefenpuffer enden. Wenn der Strahlabtaster eine Oberfläche eines Objekts schneidet, kann der Strahlabtaster die Tiefen- und Farbwerte dieses Pixels aktualisieren. Der Strahlabtaster-Vorgang kann vor, nach oder gleichzeitig mit dem Rasterungsvorgang ablaufen, solange die Tiefen-/Farbpufferpaarung konsistent beibehalten wird. Das Verfahren 306 schreitet dann zum Schritt 340 des Verfahrens 301 fort, und Verfahren 307 schreitet dann zum Schritt 370 des Verfahrens 301 fort.
  • 3F ist eine Veranschaulichung eines Ablaufdiagramms eines Beispielverfahrens 308, das auf 3A aufbaut, um eine Verdeckung aller Objekte zu prüfen. Verfahren 308 erweitert Schritt 340. Ausgehend von Schritt 340 erfolgt ein Schritt 341. In dem Schritt 341 kann eine HiZ-Pyramide erzeugt werden. In dem Schritt 342 kann eine Platzhalter-Geometrie in objektsegmentierten Abschnitten oder Gruppen gerastert werden, und sichtbare Objekte können für die weitere Verarbeitung als solche gekennzeichnet werden.
  • Schritt 342 kann die Objekte auch auf Vorprüfungen, z.B. Sichtbarkeitsprüfungen, beruhend bewerten. Rasterung kann für bestimmte Objekte umgangen werden, wenn sie die Vorprüfungen während der Geometriestufe nicht bestehen, z.B. kann der Sichtbarkeitsparameter für Objekte in einem Objektsatz auf unwahr gesetzt werden. Vollständige Rasterung kann bei Grundkörperobjekten übersprungen werden, wenn einige der Pixel den Tiefentest bestehen. Rasterung für diesen Schritt kann für ein vereinfachtes Platzhalter-Objekt abgeschlossen werden, das durch eine Begrenzungsform definiert ist, zum Beispiel einen Begrenzungsrahmen, eine Begrenzungssphäre oder eine andere definierte Form. Die Geometriestufe kann die geometrische Verarbeitung des Platzhalter-Objekts in der Rasterungspipeline sein. Die Vorprüfungen können dazu verwendet werden, um festzustellen, ob das Platzhalter-Objekt sichtbar ist. Wenn die Ergebnisse der Vorprüfungen die Sichtbarkeit nicht festellen können, dann kann die Platzhalter-Objektrasterung verwendet werden, um die Sichtbarkeit des Objekts zu bestimmen.
  • Die Vorprüfungen, oder Sichtbarkeitsprüfungen, können je Begrenzungsform ausgewertet werden. Die Tests können umfassen: (1) Prüfen, ob die transformierte Begrenzungsform in dem Kegelstumpf, d.h. in dem dreidimensionalen Bereich, der auf dem Bildschirm sichtbar ist, liegt; (2) Prüfen, ob die transformierte Begrenzungsform größer als die minimale Pixelgröße ist; (3) Prüfen, ob die nächste transformierte Begrenzungsform weiter entfernt ist als der gespeicherte HiZ „far mip“ ist; (4) Prüfen, ob sich das Objekt innerhalb des Kameranahbereichsvolumens befindet; (5) Prüfen, ob einige Begrenzungsformpunkte, die nahe der Kameraursprungsperspektive liegen, näher als der gespeicherte HiZ „near mip“-Wert sind. Prüfung 5 kann durch Pseudocode-Auflistung 1 dargestellt werden.
  • Auflistung 1: Beispiel eines verallgemeinerten Vorprüfungs-Pseudocodes für nahe HiZ-Mip-Werte
    projectedPoint = doProjection(boundingPoint);
    trivialAccept = projectedPoint.z < textureLookup (HiZnear, projectedPoint.xy);
  • Typischerweise kann ein HiZ-Mip die fernste, d.h. ferne Tiefe der Pixelfläche umfassen, die ein Texel in dem Mip repräsentiert. Eine näheste, d.h. nahe Tiefe der Pixelfläche, die ein Texel in dem Mip darstellt, kann ebenfalls gespeichert werden. Die Prüfungen 3 und 5 können das Platzhalter-Objekt schnell abweisen, wenn das Objekt weiter als der am weitesten entfernte Wert in dem Mip ist, oder das Platzhalter-Objekt akzeptieren, wenn das Objekt näher als der näheste Wert in dem Mip ist. Der Sichtbarkeitsparameter für jedes Objekt kann entsprechend den Ergebnissen dieser Prüfungen eingestellt werden. Die Rasterung kann für nicht sichtbare Objekte übersprungen werden. Weitere Analyse und Bewertung kann für Platzhalter-Objekte erforderlich sein, die auf oder zwischen den am weitesten entfernten und den nächstgelegenen Wert in dem Mip fallen. Das Verfahren 308 schreitet dann zum Schritt 345 des Verfahrens 301 fort.
  • Ein Abschnitt der oben beschriebenen Apparate, Systeme oder Verfahren kann in verschiedenen digitalen Datenprozessoren oder Rechnern verkörpert sein oder durch diese ausgeführt werden, wobei die Rechner zum Ausführen eines oder mehrerer Schritte der Verfahren programmiert sind oder ausführbare Programme mit Sequenzen von Software-Anweisungen speichern. Die Software-Anweisungen solcher Programme können für Algorithmen stehen und in maschinenausführbarer Form auf nichtflüchtigen digitalen Datenspeichermedien, z.B. magnetischen oder optischen Platten, Wahlfreizugriffsspeicher (RAM), magnetischen Festplatten, Flash-Speichern und/oder Nur-Lese-Speicher (ROM), kodiert werden, um verschiedenen Arten von digitalen Datenprozessoren oder Rechnern zu ermöglichen, einen, mehrere oder alle Schritte eines oder mehrerer der oben beschriebenen Verfahren oder Funktionen, Systemen oder Apparate auszuführen.
  • Teile der offengelegten Ausführungsformen können sich auf Rechnerspeicherprodukte mit einem nichtflüchtigen rechnerlesbaren Medium beziehen, auf dem sich Programmcode zum Durchführen verschiedener rechnerumgesetzter Schritte befindet, die einen Teil eines Apparats, einer Vorrichtung verkörpern oder die Schritte eines hier dargelegten Verfahrens ausführen. „Nichtflüchtig“ bezieht sich hier auf alle rechnerlesbaren Medien mit Ausnahme von flüchtigen, sich ausbreitenden Signalen. Beispiele für nichtflüchtige rechnerlesbare Medien umfassen ohne Beschränkung: magnetische Medien wie etwa Festplatten, Disketten und Magnetband; optische Medien wie etwa CD-ROM-Disks; magnetooptische Medien wie etwa floptische Disks; und Hardware-Vorrichtungen, die speziell zum Speichern und Ausführen von Programmcode eingerichtet sind, wie etwa ROM- und RAM-Vorrichtungen. Beispiele für Programmcode umfassen sowohl Maschinencode, wie er etwa von einem Compiler erzeugt wird, und Dateien mit höherstufigem Code, der von dem Rechner unter Verwendung eines Interpreters ausgeführt werden kann.
  • Bei der Auslegung der Offenbarung sollten alle Begriffe in der breitestmöglichen kontextkonformen Art und Weise interpretiert werden. Insbesondere sollten die Begriffe „umfasst“ und „umfassend“ so interpretiert werden, dass sie sich auf Elemente, Komponenten oder Schritte in einer nicht ausschließlichen Weise beziehen, was anzeigt, dass die referenzierten Elemente, Komponenten oder Schritte vorhanden sein oder verwendet oder mit anderen Elementen, Komponenten oder Schritten kombiniert werden können, auf die nicht ausdrücklich Bezug genommen wird.
  • Fachleute auf dem Gebiet dieser Anmeldung werden anerkennen, dass andere und weitere Ergänzungen, Streichungen, Ersetzungen und Änderungen an den beschriebenen Ausführungsformen vorgenommen werden können. Es sollte auch verstanden werden, dass die hier verwendete Terminologie nur dem Zweck der Beschreibung bestimmter Ausführungsformen dient und nicht einschränkend sein soll, da der Geltungsbereich der vorliegenden Offenbarung nur durch die Ansprüche begrenzt werden wird. Sofern nicht anders definiert haben alle hier verwendeten technischen und wissenschaftlichen Begriffe die gleiche Bedeutung, wie sie gemeinhin von einem Fachmann auf dem Gebiet dieser Offenbarung verstanden wird. Obwohl alle Verfahren und Materialien, die den hier beschriebenen ähnlich oder gleichwertig sind, auch in der Praxis oder beim Prüfen der vorliegenden Offenbarung verwendet werden können, wird hier nur eine begrenzte Anzahl der beispielhaften Verfahren und Materialien beschrieben.

Claims (22)

  1. Verfahren zum Wiedergeben einer aktuellen Szene auf einem Rechensystem mit einer Grafikverarbeitungseinheit (GPU), umfassend: Bestimmen eines ersten Verdeckerobjektsatzes aus Szenendaten der aktuellen Szene unter Verwendung eines Strahlabtastungsalgorithmus; Identifizieren eines zweiten Verdeckerobjektsatzes, wobei der zweite Verdeckerobjektsatz in einer vorhergehend wiedergegebenen Szene als sichtbar markiert wurde; Erstellen eines Wiedergabebefehlspuffers unter Verwendung der ersten und zweiten Verdeckerobjektsätze, wobei der Wiedergabebefehlspuffer Strahlabtastungs- und Rasterungsalgorithmen identifiziert; Wiedergeben erster Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, des Wiedergabebefehlspuffers und der GPU; Prüfen von Verdeckung eines dritten Objektsatzes unter Verwendung der ersten und zweiten Verdeckerobjektsätze und der ersten Anzeigeobjekte; Wiedergeben zweiter Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze und von Ergebnissen der Prüfens von Verdeckung des dritten Objektsatzes; und Wiedergeben der aktuellen Szene unter Verwendung der ersten und zweiten Anzeigeobjekte.
  2. Verfahren wie in Anspruch 1 angegeben, wobei das Erstellen des Wiedergabebefehlspuffers und das Wiedergeben der zweiten Anzeigeobjekte für mehr als eine Iteration wiederholt werden.
  3. Verfahren wie in Anspruch 1 oder Anspruch 2 angegeben, wobei das Wiedergeben der ersten Anzeigeobjekte eine Strahlabtastung zur Tiefensalzung von Objektpunkten verwendet und die ersten Anzeigeobjekte unter Verwendung vereinfachter Darstellungen wiedergegeben werden.
  4. Verfahren wie in einem der Ansprüche 1 bis 3 angegeben, wobei das Wiedergeben der ersten Anzeigeobjekte Hardwarebeschleunigung und räumliche Datenstrukturen verwendet.
  5. Verfahren wie in einem der Ansprüche 1 bis 4 angegeben, wobei das Verfahren als eine Anwendungsprogrammierschnittstelle für Strahlabtastungszeichnen gekapselt ist.
  6. Verfahren wie in einem der Ansprüche 1 bis 5 angegeben, wobei das Prüfen von Überdeckung des dritten Objektsatzes eine oder mehrere Sichtbarkeitsprüfungen umfasst.
  7. Verfahren wie in Anspruch 6 angegeben, wobei die Sichtbarkeitsprüfungen einen Sichtbarkeitsparameter für jedes Objekt in dem dritten Objektsatz bestimmen und das Wiedergeben der zweiten Anzeigeobjekte die Sichtbarkeitsparameter verwendet.
  8. Verfahren wie in einem der Ansprüche 1 bis 7 angegeben, wobei das Wiedergeben der ersten Anzeigeobjekte eine Strahlabtastung für Objekte in den ersten und zweiten Verdeckerobjektsätzen mit einer hohen Dreiecksdichte relativ zum verfügbaren Bildschirmraum verwendet.
  9. Verfahren wie in einem der Ansprüche 1 bis 8 angegeben, wobei das Wiedergeben der zweiten Anzeigeobjekte eine Geometrie-Pipeline eines Rasterers verwendet, um auf Strahlabtastungs-Beschleunigungsstrukturen zum Abrufen von Geometrieabschnitten zuzugreifen.
  10. Verfahren wie in einem der Ansprüche 1 bis 9 angegeben, wobei das Wiedergeben der zweiten Anzeigeobjekte die Rasterungsalgorithmen verwendet, die Grundkörperballungsdaten von Strahlabtastungs-Beschleunigungsstrukturen abrufen.
  11. Rechnerprogrammprodukt mit einer Reihe von auf einem nichtflüchtigen rechnerlesbaren Medium gespeicherten Arbeitsanweisungen, das eine Datenverarbeitungsvorrichtung, wenn es dadurch ausgeführt wird, dazu anleitet, Schritte durchzuführen, um eine aktuelle Szene auf einem Rechensystem mit einer Grafikverarbeitungseinheit (GPU) wiederzugeben, wobei die Schritte umfassen: Bestimmen eines ersten Verdeckerobjektsatzes aus Szenendaten der aktuellen Szene unter Verwendung eines Strahlabtastungsalgorithmus; Identifizieren eines zweiten Verdeckerobjektsatzes, wobei der zweite Verdeckerobjektsatz in einer zuvor wiedergegebenen Szene als sichtbar markiert wurde; Erstellen eines Wiedergabebefehlspuffers unter Verwendung der ersten und zweiten Verdeckerobjektsätze, wobei der Wiedergabebefehlspuffer Strahlabtastungs- und Rasterungsalgorithmen identifiziert; Wiedergeben erster Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, des Wiedergabebefehlspuffers und der GPU; Prüfen von Verdeckung eines dritten Objektsatzes unter Verwendung der ersten und zweiten Verdeckerobjektsätze und der ersten Anzeigeobjekte; Wiedergeben zweiter Anzeigeobjekte unter Verwendung der ersten und zweiten Verdeckerobjektsätze, von Ergebnissen aus der Prüfung von Verdeckung des dritten Objektsatzes und eines Rasterungsalgorithmus, der Grundkörperballungsdaten von Strahlabtastungs-Beschleunigungsstrukturen abruft; und Wiedergeben der aktuellen Szene unter Verwendung der ersten und zweiten Anzeigeobjekte.
  12. Rechnerprogrammprodukt wie in Anspruch 11 angegeben, wobei das Erstellen des Wiedergabebefehlspuffers und das Wiedergeben der zweiten Anzeigeobjekte für mehr als eine Iteration von Szenenverarbeitung der aktuellen Szene wiederholt werden.
  13. Rechnerprogrammprodukt wie in Anspruch 11 oder Anspruch 12 angegeben, wobei das Wiedergeben der ersten Anzeigeobjekte ein Strahlabtasten zum Tiefensalzen von Objektpunkten verwendet, und wobei die ersten Anzeigeobjekte unter Verwendung vereinfachter Darstellungen wiedergegeben werden.
  14. Rechnerprogrammprodukt wie in einem der Ansprüche 11 bis 13 angegeben, wobei das Wiedergeben der ersten Anzeigeobjekte Hardwarebeschleunigung und räumliche Datenstrukturen verwendet.
  15. Rechnerprogrammprodukt wie in einem der Ansprüche 11 bis 14 angegeben, wobei das Prüfen von Verdeckung des dritten Objektsatzes eine oder mehrere Sichtbarkeitsprüfungen umfasst.
  16. Rechnerprogrammprodukt wie in Anspruch 15 angegeben, wobei die Sichtbarkeitsprüfungen einen Sichtbarkeitsparameter für jedes Objekt in dem dritten Objektsatz bestimmen und das Wiedergeben der zweiten Anzeigeobjekte die Sichtbarkeitsparameter verwendet.
  17. Rechnerprogrammprodukt wie in einem der Ansprüche 11 bis 16 angegeben, wobei das Wiedergeben der ersten Anzeigeobjekte eine Strahlabtastung für Objekte in den ersten und zweiten Verdeckerobjektsätzen mit einer hohen Dreiecksdichte relativ zum verfügbaren Bildschirmraum verwendet.
  18. Rechnerprogrammprodukt wie in einem der Ansprüche 11 bis 17 angegeben, wobei das Wiedergeben der zweiten Anzeigeobjekte eine Geometrie-Pipeline eines Rasterers verwendet, um auf Strahlabtastungs-Beschleunigungsstrukturen zuzugreifen, um Geometrieabschnitte abzurufen.
  19. Rechnerprogrammprodukt wie in einem der Ansprüche 11 bis 18 angegeben, wobei die Schritte in einem Videotreiber der GPU gekapselt sind.
  20. System zum Wiedergeben einer Szene auf einem Rechensystem, umfassend: einen Szenenwiedergeber, der dazu imstande ist, die Szene wiederzugeben, umfassend: einen Objektanalysator, der dazu imstande ist, die Szene zu analysieren, die zu verwendenden Wiedergabemethoden zu bestimmen und mindestens eine Strahlabtastungs-Beschleunigungsstruktur zu erzeugen; einen Wiedergabebefehlspuffer, der dazu imstande ist, Wiedergabebefehle und -schritte zu bestimmen und Strahlabtastungsalgorithmen und Rasterungsalgorithmen zur Verwendung mit der Szene auszuwählen, wobei der Wiedergabebefehlspuffer eine Ausgabe des Objektanalysators verwendet; und einen Wiedergabeprozessor, der dazu imstande ist, die Strahlabtastungs- und die Rasterungsalgorithmen zum Wiedergeben der Szene zu verwenden, wobei der Wiedergabeprozessor durch eine Ausgabe aus dem Wiedergabebefehlspuffer angeleitet wird, und wobei die Rasterungsalgorithmen Grundkörperballungsdaten von den Strahlabtastungs-Beschleunigungsstrukturen abrufen.
  21. System wie in Anspruch 20 angegeben, ferner umfassend einem Szenenentgegennehmer, der dazu imstande ist, Informationen der Szene entgegenzunehmen; und ein Ansichtssystem, das dazu imstande ist, die Szene anzuzeigen, zu projizieren, zu speichern oder zu drucken.
  22. System wie in Anspruch 20 oder Anspruch 21 angegeben, wobei der Szenenwiedergeber mindestens eine Grafikverarbeitungseinheit (GPU) verwendet.
DE102020108358.0A 2019-05-23 2020-03-26 Wiedergeben von szenen mit einer kombination aus strahlverfolgung und rasterung Pending DE102020108358A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/420,996 US10853994B1 (en) 2019-05-23 2019-05-23 Rendering scenes using a combination of raytracing and rasterization
US16/420,996 2019-05-23

Publications (1)

Publication Number Publication Date
DE102020108358A1 true DE102020108358A1 (de) 2020-11-26

Family

ID=73052825

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020108358.0A Pending DE102020108358A1 (de) 2019-05-23 2020-03-26 Wiedergeben von szenen mit einer kombination aus strahlverfolgung und rasterung

Country Status (3)

Country Link
US (2) US10853994B1 (de)
CN (1) CN111986304B (de)
DE (1) DE102020108358A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10853994B1 (en) * 2019-05-23 2020-12-01 Nvidia Corporation Rendering scenes using a combination of raytracing and rasterization
CN113648655A (zh) * 2021-07-21 2021-11-16 网易(杭州)网络有限公司 虚拟模型的渲染方法、装置、存储介质和电子设备
WO2024086382A1 (en) * 2022-10-21 2024-04-25 Innopeak Technology, Inc. Methods and systems for rendering video graphics using scene segmentation
CN116206035B (zh) * 2023-01-12 2023-12-01 北京百度网讯科技有限公司 人脸重建方法、装置、电子设备以及存储介质
CN117744186A (zh) * 2024-02-20 2024-03-22 广州中望龙腾软件股份有限公司 Cad光栅化方法、装置、计算机设备和存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6130670A (en) * 1997-02-20 2000-10-10 Netscape Communications Corporation Method and apparatus for providing simple generalized conservative visibility
US6259452B1 (en) 1997-04-14 2001-07-10 Massachusetts Institute Of Technology Image drawing system and method with real-time occlusion culling
US6879324B1 (en) * 1998-07-14 2005-04-12 Microsoft Corporation Regional progressive meshes
US6476806B1 (en) 1999-04-16 2002-11-05 Hewlett-Packard Company Method and apparatus for performing occlusion testing while exploiting frame to frame temporal coherence
US6952206B1 (en) 2002-08-12 2005-10-04 Nvidia Corporation Graphics application program interface system and method for accelerating graphics processing
US7289119B2 (en) 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
US7973790B2 (en) 2005-08-11 2011-07-05 Realtime Technology Ag Method for hybrid rasterization and raytracing with consistent programmable shading
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
US8253736B2 (en) 2007-01-29 2012-08-28 Microsoft Corporation Reducing occlusions in oblique views
US8717355B2 (en) 2007-12-26 2014-05-06 Koninklijke Philips N.V. Image processor for overlaying a graphics object
US8284197B2 (en) * 2008-07-11 2012-10-09 Advanced Micro Devices, Inc. Method and apparatus for rendering instance geometry
US8379022B2 (en) 2008-09-26 2013-02-19 Nvidia Corporation Fragment shader for a hybrid raytracing system and method of operation
US8570322B2 (en) * 2009-05-12 2013-10-29 Nvidia Corporation Method, system, and computer program product for efficient ray tracing of micropolygon geometry
KR20100132605A (ko) 2009-06-10 2010-12-20 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
US20110090222A1 (en) * 2009-10-15 2011-04-21 Siemens Corporation Visualization of scaring on cardiac surface
US9460546B1 (en) * 2011-03-30 2016-10-04 Nvidia Corporation Hierarchical structure for accelerating ray tracing operations in scene rendering
US9235921B2 (en) * 2011-11-08 2016-01-12 Imagination Technologies Limited Profiling ray tracing renderers
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US10186070B2 (en) * 2012-11-02 2019-01-22 Imagination Technologies Limited On demand geometry and acceleration structure creation
US9547932B2 (en) * 2013-06-10 2017-01-17 Nvidia Corporation Splitting bounding volumes of primitives
KR102164541B1 (ko) * 2013-10-22 2020-10-12 삼성전자 주식회사 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
US9607426B1 (en) * 2013-12-20 2017-03-28 Imagination Technologies Limited Asynchronous and concurrent ray tracing and rasterization rendering processes
US10083541B2 (en) 2014-03-13 2018-09-25 Imagination Technologies Limited Object illumination in hybrid rasterization and ray traced 3-D rendering
US10229526B2 (en) 2014-03-13 2019-03-12 Imagination Technologies Limited Rendering of soft shadows
KR20160047317A (ko) * 2014-10-22 2016-05-02 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
GB2537729B (en) 2015-03-03 2017-07-19 Imagination Tech Ltd Systems and methods for soft shadowing in 3-D rendering
US9906759B2 (en) * 2015-04-09 2018-02-27 Qualcomm Incorporated Combined processing and display device package for light field displays
CA3002339C (en) * 2015-10-17 2024-02-06 Arivis Ag Direct volume rendering in virtual and/or augmented reality
US9818221B2 (en) * 2016-02-25 2017-11-14 Qualcomm Incorporated Start node determination for tree traversal for shadow rays in graphics processing
KR20180069461A (ko) * 2016-12-15 2018-06-25 삼성전자주식회사 가속 구조를 생성하는 방법 및 장치
CN107256574A (zh) * 2017-05-31 2017-10-17 宝珑珠宝设计(北京)有限公司 一种真实3d实时混合渲染方法
KR102151443B1 (ko) * 2019-04-11 2020-09-03 주식회사 실리콘아츠 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
US10853994B1 (en) * 2019-05-23 2020-12-01 Nvidia Corporation Rendering scenes using a combination of raytracing and rasterization

Also Published As

Publication number Publication date
US10853994B1 (en) 2020-12-01
CN111986304A (zh) 2020-11-24
US11468630B2 (en) 2022-10-11
CN111986304B (zh) 2023-07-07
US20200372703A1 (en) 2020-11-26
US20210082177A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
DE102020108358A1 (de) Wiedergeben von szenen mit einer kombination aus strahlverfolgung und rasterung
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE60107130T2 (de) Sichtbarkeitsprojektion und Bildrekonstruktion für Oberflächenelemente
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
DE102019102821A1 (de) Verfahren zur behandlung von ungeordneten opak- und alphastrahl/primitiv-schnittpunkten
DE102019103058A1 (de) Verfahren für fortgesetzte begrenzungsvolumenhierarchietraversierung auf schnittpunkte ohne shader-intervention
DE69832611T2 (de) Computergrafiksystem
DE102005035012B4 (de) Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
US7164420B2 (en) Ray tracing hierarchy
DE102019103059A1 (de) Hieb- und stichfester Strahl-Dreieck-Schnittpunkt
DE102019118838A1 (de) Virtuelle photogrammetrie
DE102021205824A1 (de) Techniken zur traversierung von bei raytracing verwendeten daten
DE102021205765A1 (de) Hardwarebasierte techniken der strahlverfolgung zur effizienten darstellung und verarbeitung eines beliebigen hüllkörpers
DE102021205758A1 (de) Hardware-beschleunigung für strahlverfolgung mit transformationen in alternativen weltraum
DE112013005255T5 (de) Bedarfsweise Geometrie- und Beschleunigungsstrukturerzeugung
WO2005078665A1 (de) Vorrichtung zur photorealistischen darstellung von dynamischen komplexen dreidimensionalen szenen mittels des ray-tracing verfahrens
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102021114847A1 (de) Verbesserte techniken zum traversieren von strahlverfolgungs-beschleunigungsstrukturen
DE102010048486A1 (de) Bildverarbeitungstechniken
DE102021115353A1 (de) Strahlverfolgung-hardwarebeschleunigung zur unterstützung von bewegungsunschärfe und sich bewegender/verformender geometrie
DE60002487T2 (de) Verfahren und vorrichtung zur darstellung von bildern mit brechungen
DE102019101871A1 (de) Verfahren und Vorrichtung zum Gewinnen von Abtastpositionen von Textuieroperationen
DE102021206234A1 (de) Frühzeitige freigabe von ressourcen in strahlverfolgungs-hardware
US5889994A (en) Method for cataloging graphics primitives by rendering state

Legal Events

Date Code Title Description
R012 Request for examination validly filed