DE60033250T2 - System und Verfahren zur Darstellung mit Strahlverfolgung - Google Patents

System und Verfahren zur Darstellung mit Strahlverfolgung Download PDF

Info

Publication number
DE60033250T2
DE60033250T2 DE60033250T DE60033250T DE60033250T2 DE 60033250 T2 DE60033250 T2 DE 60033250T2 DE 60033250 T DE60033250 T DE 60033250T DE 60033250 T DE60033250 T DE 60033250T DE 60033250 T2 DE60033250 T2 DE 60033250T2
Authority
DE
Germany
Prior art keywords
blocks
memory
rays
memory level
data
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.)
Expired - Fee Related
Application number
DE60033250T
Other languages
English (en)
Other versions
DE60033250D1 (de
Inventor
Hanspeter Somerville Pfister
Kevin A. Port Jefferson Kreeger
Joseph W. Belmont Marks
Chia Arlington Shen
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE60033250D1 publication Critical patent/DE60033250D1/de
Application granted granted Critical
Publication of DE60033250T2 publication Critical patent/DE60033250T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/55Radiosity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft allgemein Strahlverfolgung und spezieller kohärente Strahlverfolgung.
  • HINTERGRUND DER ERFINDUNG
  • Systeme zur Visualisierung müssen mit vielen grafischen Komponenten umgehen, um komplexe Szenen genau darzustellen. Die Szene müsste segmentiert werden, um es dem Betrachter zu erlauben, sich auf interessierende Bereiche zu konzentrieren. Programmierbares Shading und Texture-Maps sind für komplexe Oberflächen erforderlich, und es wird wirklichkeitsnahe Beleuchtung benötigt, um eine realistische Illumination zu gestalten. Es wurde eine Anzahl von Verfahren nach bisherigem Stand der Technik entwickelt, um die Menge Zeit zu reduzieren, die zum Wiedergeben von komplexen Szenen in Qualität benötigt wird. Diese Verfahren umfassen das Culling, die verzögerte Auswertung, das Umordnen und das Caching.
  • In der Regel können die Verfahren in Abhängigkeit von der vorliegenden speziellen Visualisierungsaufgabe Hardware- oder Software-Lösungen verwenden. Software-Lösungen sind lenkbar, eignen sich jedoch nicht für Visualisierungsaufgaben in Echtzeit. Das Entwerfen von effizienten Hardware-Architekturen zum Ausführen von Visualisierungsaufgaben mit programmierbarem Inhalt ist wegen der damit verbundenen Komplexitäten äußerst schwierig. Deshalb sind die meisten Hardware-Lösungen anwendungsspezifisch.
  • Zum Beispiel wurde für umfassende Beleuchtungsverfahren weit verbreitet Strahlverfolgung genutzt, um auf dem Gebiet der Computergrafik realistische Bilder zu erzeugen. Bei dem Strahlverfolgungsverfahren werden von einem einzelnen Ansichtspunkt Strahlen erzeugt. Die Strahlen werden durch die Szene verfolgt. Wenn die Strahlen auf Szenenkomponenten treffen, werden die Strahlen wirklichkeitsgetreu reflektiert und gebrochen. Reflektierte und gebrochene Strahlen können weiter reflektiert und gebrochen werden, und so weiter. Selbstverständlich erhöht sich selbst in einfachen Szenen die Anzahl von zu verarbeitenden Strahlen exponentiell. Aus diesem Grund wurde Strahlverfolgung auf Szenen begrenzt, die nur durch Geometrie, z. B. Polygone, definiert und parametrisch geändert sind. Strahlverfolgung bei räumlichen Daten wurde allgemein als ein schwieriges Problem erkannt.
  • Zur Volumen-Visualisierung wird im Allgemeinen einfacheres Raycasting verwendet. Das Raycasting ist Strahlverfolgung ohne reflektierte oder gebrochene Strahlen. Beim Raycasting wird die Wirkung reflektierter und gebrochener Strahlen ignoriert und Versuche, eine wirklichkeitsgetreue Beleuchtung zu erzeugen, werden durch andere Verfahren behandelt. Trotzdem ist zur Visualisierung von Volumendaten das relativ einfache Raycasting rechentechnisch noch immer kostspielig. Aus diesem Grund wurde in Lösungen nach dem Stand der Technik allgemein Architekturen der Volumen-Bildberechnung für spezielle Zwecke vorgeschlagen.
  • Kürzlich wurde eine Hardware-Beschleunigung von geometrischen Strahlverfolgungs-Modellen vorgeschlagen, siehe ART auf www.artrender.com/technology/ar250.html. Der ART-Entwurf umfasste parallele Ray-Tracing-Engines, die Strahlenbündel die gesamte Strecke bis zur Beendigung verfolgen, bevor sich zum nächsten Strahlenbündel weiter bewegt wird. Die eingegebenen Szenendaten wurden im Hauptspeicher des Zentralrechners gespeichert und an die Prozessorelemente gesendet. Während das Shading-Subsystem einen programmierbaren Coprozessor enthielt, waren die Ray-Tracing-Engines praktische Ausführungen anwendungsspezifischer integrierter Schaltungen (ASIC).
  • Gunther et al. haben in „VIRIM: A Massively Parallel Processor for Real-Time Volume Visualization in Medicine" („Virtuelle Realität in der Medizin: Massiv parallele Rechner für Volumen-Visualisierung in Echtzeit in der Medizin"), Sitzungsberichte des 9. Eurographics Workshop für Grafik-Hardware, S. 103–108, 1994, Parallel-Hardware beschrieben. Ihre VIRIM-Architektur war eine Hardware-Realisierung des Heidelburg-Algorithmus für Raycasting. Die Volumendaten wurden in jedem Modul genau nachgebildet. Das VIRIM-System konnte 10 Hz für ein Volumen von 256·256·128 mit vier Modulen erreichen. Jedes Modul verwendete jedoch drei Boards bei einer Gesamtmenge von zwölf Boards.
  • Doggett et al. haben in „A Low-Cost Memory Architecture for PCI-based Interactive Volume Rendering" ("Preisgünstige Speicherarchitektur für PCI-basiertes interaktives Volumen-Rendering"), Sitzungsberichte des Eurographics Workshop für Grafik-Hardware der SIGGRAPH, S. 7–14, 1999 eine Architektur beschrieben, die Volumen-Rendering in Bildreihenfolge durchführte. Das Volumen wurde in DIMM-Speichermodulen auf dem Rendering-Board gespeichert. Jeder Abtastwert hat die für diesen Abtastwert benötigte Voxel-Umgebung erneut gelesen. Es trat keine Pufferung von Daten auf. Während das System zur Strahlenerzeugung einen digitalen Signalprozessor (DSP) enthielt, war der Rest der Pipeline ein frei programmierbares Verknüpfungsfeld (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC).
  • Pfister et al. haben in „The VolumePro Real-Time Ray-Casting System" ("Das Raycasting-System VolumePro in Echtzeit") in Sitzungsberichte der SIGGRAPH 99, S. 251–260 ein mit Pipelineverarbeitung versehenes Bildberechnungsverfahren beschrieben, das Volumen-Rendering in Echtzeit erreichte unter Verwendung von ASIC-Pipelines, die Abtastwerte entlang von Strahlen verarbeitet haben, die durch das Volumen angeordnet waren. Cube-4 nutzte ein neuartiges Speicherversatzschema zur Bereitstellung von unstrittigem Zugang zu benachbarten Voxel. Die Volumendaten wurden zur späteren Wiederverwendung in FIFO-Warteschlangen auf dem Chip zwischengespeichert.
  • In allen diesen Entwürfen wurden ASIC-Pipelines verwendet, um die große Anzahl von zum Rendern bei hohen Bildfolgefrequenzen benötigten Volumen-Abtastwerten zu verarbeiten. Das Kosten-Leistungs-Verhältnis dieser Systeme übertraf das Volumen-Rendering im Stand der Technik auf Supercomputern, Grafiksystemen für spezielle Zwecke und Grafik-Datenstationen für allgemeine Zwecke.
  • Ein anderes Visualisierungsproblem befasst sich mit Segmentierung. In einer medizinischen Anwendung wurde jeder Datenanteil per Hand segmentiert und anschließend zu einem 3D-Modell des Objekts rekonstruiert. Aktuelle handelsübliche Software stellt Tools und Schnittstellen zum Segmentieren von Anteilen jedoch nur in 2D bereit. Das Prüfen von dreidimensionalen Ergebnissen erfordert einen Modellaufbauschritt, der gegenwärtig einige Minuten zur Fertigstellung benötigt. Deutlich ist, dass dies zur Bildberechnung in Echtzeit nicht brauchbar ist. Um diese Zeit zu reduzieren, sollte Segmentierung und Bildberechnung unter Verwendung von direkten 3D Segmentierungsfunktionen und direktem Volumen-Rendering (DVR) an den Volumendaten direkt und nicht per Hand durchgeführt werden.
  • Jedoch ist eine dreidimensionale Segmentierung noch zu komplex und dynamisch, um völlig automatisiert zu werden und benötigt somit einen gewissen Grad der Benutzereingabe. Die Vorstellung wäre, den Computer für die rechnerisch kostspielige Aufgabe von Segmentierungsbearbeitung und Bildberechnung zu nutzen, während die natürlichen und komplexen kognitiven Fertigkeiten des Menschen erschlossen werden, indem dem Benutzer ermöglicht wird, die Segmentierung zu steuern, um schließlich die gewünschten Objekte herauszuziehen.
  • Einige Segmentierungsverfahren im Stand der Technik nutzen komplexe Objekterkennungsverfahren, andere stellen schwache morphologische 3D-Funktionen bereit, die zu einer Sequenz verknüpft werden können, um die gewünschte Segmentierung zu erreichen. Diese Sequenz von schwachen Funktionen wird Segmentierungsprozess genannt. Diese schwachen Funktionen umfassten gewöhnlich morphologische Operationen wie Schwellwert bilden, Erodieren, Ausweiten und Überfluten. Es wurde gezeigt, dass dieses Verfahren für die typischen Benutzer medizinischer Segmentierungssysteme intuitiv und einfach zu verwenden ist. Dem Benutzer wird ein Gefühl von Vertrauen über das Ergebnis gegeben, weil der Benutzer die Kontrolle über den Prozess hat.
  • In einem anderen System wird der Benutzer beim Segmentieren mit einem interaktiven Feedback versehen. Nachdem schwache Funktionen angewandt wurden, wurde dem Benutzer das sich ergebende segmentierte Volumen angezeigt, und der Benutzer konnte wählen, welche Funktion als nächstes durchzuführen ist. Die Ergebnisse von einer Operation unterstützten den Benutzer beim Wählen der nächsten Funktion. Darum wurde die Interaktivität jeweils auf eine schwache Funktion begrenzt. Wenn der Benutzer zur Durchführung eines bestimmten Segmentierungsproblems eine lange Sequenz von Schritten erzeugt hatte und die Auswirkung der Änderung eines Parameters an einer der schwachen Funktionen in der Mitte der Sequenz sehen wollte, dann würde das Feedback nicht dreidimensional interaktiv sein. Stattdessen wurde der Benutzer gezwungen, wiederholt jede Stufe im Prozess zu durchschreiten und jedes Mal den Parameter zu ändern. Außerdem betrug die zur Ausführung der Funktionen benötigte Zeit auf Grund der Verwendung von Prozessoren für allgemeine Zwecke zwischen 5 und 90 Sekunden, zusätzlich bis zu 10 Sekunden, um die Ergebnisse wiederzugeben.
  • Bei einem alternativen System konnte Segmentierung nur auf den drei orthogonalen Anteilen des Volumens, die zurzeit angezeigt wurden, durchgeführt werden. Weil die Segmentierung auf drei 2D-Anteile beschränkt war, konnte der gesamte Segmentierungsprozess jedes Mal vom Start durchgeführt werden. Auf diese Weise konnte der Benutzer während gleitender Kontrollen interaktives Feedback erreichen, um Parameter für Funktionen in der Mitte des Prozesses einzustellen. Leider konnte es bis zu einigen Minuten brauchen, um das Erzeugen einer 3D-Projektion des Volumens fertig zu stellen. Außerdem gab es keine analoge Lösung, um eine mit 2D verbundene Komponentenverarbeitung durchzuführen, da Bereiche in der dritten Dimension wachsen und zum ursprünglichen Anteil zurückkehren konnten. Darum wurde verbundene Komponentenbearbeitung auf langsames Feedback beschränkt.
  • Kürzlich wurde eine verteilte Verarbeitungsumgebung zur Durchführung von Sequenzen der gleichen schwachen Funktionen vorgeschlagen. Diese Lösung erkannte den hohen Grad von Datenparallelismus in Volumensegmentierung und nutzte dies aus durch Verwendung eines massiv parallelen Rechners DECmpp 12000 (Digitalreihe). Der DECmpp ist eine Ausführung des MasPar SIMD Computers mit Gittererzeugung von Prozessorelementen. Die Leistung mit diesem Rechner wurde für ein sehr kleines 963 Volumen von Abtastwerten gemessen. Die Extrapolation der Leistung für ein 2563 Volumen und schnellere Taktfrequenzen von heutiger Technologie nach dem Gesetz von Moore würde 1,14 Sekunden benötigen.
  • In jüngerer Zeit wurde vorgeschlagen, schwache Segmentierungsoperationen auf einem massiv parallelen Rechner CM-200 SIMD durchzuführen. Durch Nutzung eines Gitters von 1282 Prozessorelementen war es möglich, jede schwache Operation zwischen 0,6 und 1,3 Sekunden pro Operation auf einem 2563 Volumen durchzuführen. Selbst mit der heutigen schnelleren Technologie konnten die 0,3 bis 0,65 Sekunden je Operation schnell zu nicht interaktiven Bildfolgefrequenzen auch für eine kleine Anzahl von schwachen Tasks summieren.
  • Die Ausnutzung von Datenkohärenz durch Caching ist eine andere bekannte Technik zur Erhöhung der Effizienz in Computergrafik, siehe Sutherland et al. in „A characterization of ten hidden surface algorithms" („Charakterisierung von zehn verborgenen Oberflächenalgorithmen"), Computing Surveys, 6(1), S. 1–55, März 1974. Das Erhöhen der Kohärenz einer Berechnung kann den verwendeten Speicherumfang, die Zeit, die sie benötigt oder beides reduzieren. In Systemen, die Strahlverfolgung nutzen, kann die Kohärenz von eine Szene durchlaufenden Strahlen durch traversierte Strahlenbäume erhöht werden, um Strahlen zu kohärenten Bündeln zu verarbeiten.
  • Ähnlich können Strahlen mit gemeinsamen Ausgangspunkten zu Kegelstümpfen entwickelt werden. Dies verringert die Zeit, sich schneidende Objekte zu finden. Strahlen können umgeordnet werden, indem Raum füllende Kurven über der Bildebene genutzt werden, um die Kohärenz von hervorgebrachten Strahlen in einem tiefenorientierten Raytracer zu verbessern. Monte-Carlo-Strahlverfolgungsverfahren sind ausgelegt, um Kohärenz über allen Pegeln der Speicherhierarchie von Zwischenspeichern des Prozessors bis zur Plattenspeicherung zu verbessern.
  • Pharr et al. haben in „Rendering complex scenes with Memory-Coherent Ray Tracing" ("Bildberechnung komplexer Szenen mit speicherkohärentem Strahlverfolgungsverfahren") Sitzungs berichte der SIGGRAPH 97 S. 101–108 ein mit Caching versehenes Strahlverfolgungsverfahren beschrieben. Dort wurden auf einer Speicherplatte Strukturkacheln, Szenengeometrie, Warteschlangen-Strahlen und Bildabtastwerte gespeichert. von einer Kamera erzeugte Strahlen wurden in Gruppen unterteilt. Gruppen von Strahlen wurden abhängig davon, welche Teile der Szene im Hauptspeicher gespeichert wurden und dem Grad, wie das Verarbeiten der Strahlen die Bildberechnung vorwärts bringen würde, zur Verarbeitung aufgezeichnet. Aufgezeichnete Strahlen wurden in Warteschlangen im Hauptspeicher gespeichert. Je nach Bedarf kam Szenengeometrie zum Hauptspeicher hinzu. Alle neuen Strahlen, die während der Strahlverfolgung erzeugt wurden, wurden zu den Warteschlangen wartender Strahlen hinzugefügt. Im Wesentlichen kann dieses System als eine Speicherhierarchie mit zwei Zwischenspeicherpegeln, Speicherplatte und Hauptspeicher und einem einzelnen Prozessor gekennzeichnet werden. Dies ist im Grunde eine Softwarelösung für ein Caching-Problem. Außerdem teilt Pharr zum Zeitpunkt nur ein einzelnes Bild zu, und sein Kohärenz-Algorithmus betrifft nur die räumliche örtliche Lage.
  • Um bestimmte Vorteile zu verstärken, wurde das System so ausgelegt, dass nur eine einzelne Art von geometrischen Darstellungselementen verarbeitet wird. „Ein Unterscheidungsmerkmal unseres Raytracer ist, dass wir einen einzelnen Typ geometrischer Darstellungselemente zwischenspeichern: Dreiecke. Dies hat mehrere Vorteile. Strahlendurchdringungstests können für einen einzelnen Fall optimiert werden, wobei Speichermanagement für den geometrischen Zwischenspeicher leichter ist, weil es weniger Änderung in der zum Speichern unterschiedlicher Typen von Darstellungselementen benötigten Raummenge gibt. Es ist außerdem möglich, viele andere Teile des Bildberechnungsprogramms zu optimieren, wenn nur ein Typ von Darstellungselementen unterstützt wird. Der REYES Algorithmus nutzt entsprechend ein einzelnes internes Darstellungselement – Mikropolygone – um Shading und Sampling effizienter zu machen. Im Gegensatz zu REYES optimieren wir das System zur Handhabung großer Datenbanken von Dreiecken, wobei dies ermöglicht, dass unser System eine breite Vielfalt von gemeinsamen geometrischen Ursprüngen, einschließlich gescannter Daten, wissenschaftlicher Daten und mosaikartigen Flecken handhabt. Ein potenzieller Nachteil dieser einzelnen Darstellung ist, dass andere Typen von Darstellungselementen wie Kugeln, mehr Raum zum Speichern benötigen, nachdem sie mosaikartig gemacht wurden. Wir haben herausgefunden, dass die Vorteile einer einzelnen Darstellung diesen Nachteil aufwiegen", ebenda auf S. 102.
  • Ihr geometrischer Zwischenspeicher wurde damit organisiert, was sie „Voxel" oder geometrische Gitter zum Umschließen von Dreiecken nannten. Es ist anzumerken, dass beim Raytracing der Begriff „Voxel" eine völlig andere Bedeutung als beim Volumen-Rendering hat. Beim Volumen-Rendering ist Voxel ein einzelner Abtastwert in einer dreidimensionalen (Volumen-) Datenmenge. Um diese ganz anderen Bedeutungen zu unterscheiden, bedeutet in der nachstehenden Beschreibung der Begriff „Voxel" immer ein Volumen-Rbtastwert, und der Begriff „Block" bezieht sich auf die Körnung des Zwischenspeichers. Pharr et al. haben Dreiecke als Mengen in Blockgröße in den Cache eingespeichert. Einige wenige tausend Dreiecke pro Block ergaben ein gutes Niveau von Körnung für Caching. Sie verwendeten jedoch auch ein Beschleunigungsgitter, das wenige hundert Dreiecke für feinere Körnung enthält.
  • Zum Zweck der Ablaufplanung von zu verarbeitenden Blöcken ordneten sie jedem Block einen Kostenwert und einen Nutzenwert zu. Die Kosten basierten auf der Berechnungskomplexität der Verarbeitung des Blockes und des Nutzens, der beurteilte wie viel Fortschritt hin zur Beendigung der Berechnung gemacht werden würde. Ihr Scheduler nutzte diese Werte zum Wählen von Blöcken, um durch Auswählen des Blocks mit dem höchsten Kosten-Nutzen-Verhältnis weiter zu arbeiten.
  • WILLIAMS PL: „Visibility ordering meshed polyhedra" („Topologische Tiefensortierung") ACM Transactions on Graphics Bd. 11, Nr. 2, 1. April 1992 (1.4.1992), Seiten 103–126, XP000287421 USA beschreibt einen einfachen und effizienten Algorithmus zur Sichtbarkeitsordnung der Zellen einer beliebigen unzyklischen konvexen Menge vernetzter konvexer Polyeder. Dieser „Topologische Tiefensortierung" (MPVO Algorithmus) genannte Algorithmus ordnet die Zellen eines Netzes in linearer Zeit durch lineare Speicherung. Es werden Vorverarbeitungstechniken und/oder Modifizierungen für den MPVO Algorithmus beschrieben, die es erlauben, nicht konvexe Zellen, nicht konvexe Netze (Netze mit Hohlräumen und/oder Leerräumen), Netze mit Zyklen und Anordnungen unterbrochener Netze zu sortieren. Der MPVO Algorithmus kann außerdem zur Domänenzerlegung finiter Elemente-Netze für parallele Verarbeitung verwendet werden. Die Datenstrukturen für den MPVO Algorithmus können genutzt werden, um das Problem der Örtlichkeit räumlicher Punkte zu lösen.
  • Der MPVO Algorithmus ist wie folgt. Zuerst wird für die Zellen eines gegebenen konvexen Netzes der Adjazenzgraph konstruiert. Anschließend kann für einen beliebigen speziell festgelegten Betrachtungspunkt eine Sichtbarkeitsordnung berechnet werden, indem einfach eine Richtung zu jeder Kante im Adjazenzgraph berechnet und anschließend eine topologische Sortierung des Graph durchgeführt wird. Der Adjazenzgraph kann für jeden neuen Betrachtungspunkt und für jede auf dem gleichen statischen Netz definierte neue Datenmenge wieder verwendet werden. Die jeder Kante zugeordnete Richtung wird bestimmt durch Berechnung einer Nach-Hinten-Beziehung für die durch die Kante verbundenen zwei Zellen. Die Nach-Hinten-Beziehung wird zwanglos wie folgt berechnet. Jede Kante entspricht einer von zwei Zellen geteilten Fläche. Diese Fläche bildet eine Ebene, die wiederum zwei Halbräume definiert, von denen jeder eine der Zellen enthält. Um diese zu implementieren, kann die Ebenengleichung für die geteilte Fläche am Betrachtungspunkt bewertet werden. Der Adjazenzgraph und die Koeffizienten der Ebenengleichung können in einem Vorverarbeitungsschritt berechnet und gespeichert werden. Der MPVO Algorithmus kann erweitert werden, um viele nicht konvexe Netze zu ordnen.
  • Es ist erwünscht, Szenen mit Raytracing zu rendern, die in mehr als einem einzigen grafischen Darstellungselement wie Dreiecke ausgedrückt werden. Außerdem ist es erwünscht, zusätzliche Leistungsverbesserungen zu erreichen, indem ein Zwischenspeicher für Hardware und Software verwendet wird. Zusätzlich ist es erwünscht, die Block-Ablaufplanung über einen einfachen Kosten-Nutzen-Algorithmus hinaus zu verbessern. Es ist auch erwünscht, eine Folge von Bildern oder Einzelbildern zu rendern und zeitliche Kohärenz zusätzlich zu räumlicher Kohärenz zu erzeugen. Ferner ist es erwünscht, eine programmierbare Hardware-Architektur zur Verfügung zu stellen, um komplexe Visualisierungsaufgaben auszuführen.
  • ABRISS DER ERFINDUNG
  • Eine Aufgabe der Erfindung, auf die Anspruch erhoben wird, ist die Bereitstellung einer verbesserten Strahlverfolgungs-Architektur sowohl für abgetastete als auch für geometrische Daten. Die abgetasteten Daten können zweidimensionale, dreidimensionale oder abgetastete Daten und geometrische Flächen oder analytisch definierte Daten sein. Eine andere Aufgabe ist es, einen hierarchischen Speicher mit integrierter DRAM-Technologie zur Verfügung zu stellen, um Rendering-Raten in Echtzeit zu erzielen. Eine weitere Aufgabe ist es, die Leistung durch eine Größenordnung zu verbessern, indem mehrere Pegel von Speicherkohärenz verwendet werden. Es ist auch eine Aufgabe, eine programmierbare Visualisierungskarte zur Verfügung zu stellen, die Segmentierung, Raytracing-Bildberechnung und andere grafische Prozesse unterstützt.
  • Diese erfindungsgemäßen Aufgaben werden durch ein Verfahren gelöst, das die Merkmale von Anspruch 1 umfasst. Bevorzugte Ausführungen dieses Verfahrens sind in den Unteransprüchen definiert.
  • Spezieller verfolgt ein Verfahren Strahlen durch grafische Daten. Die grafischen Daten enthalten abgetastete und geometrische Daten. Das Verfahren unterteilt die grafischen Daten in eine Vielzahl von Blöcken entsprechend einem Gitter. Für jeden Block wird eine Strahlenwarteschlange erzeugt. Jeder Eintrag in der Strahlenwarteschlange stellt einen durch den Block zu verfolgenden Strahl dar. Die Strahlenwarteschlangen werden zeitlich geordnet, indem ein Abhängigkeitsgraph genutzt wird. Die Strahlen werden durch die Blöcke entsprechend der geordneten Liste verfolgt. Der Abhängigkeitsgraph wird für jedes Einzelbild erzeugt und zeigt an, welche Blöcke Strahlen zu welchen anderen Blöcken senden, indem die Interframe-Kohärenz über die Zeit durch Nutzung des Abhängigkeitsgraph verwendet wird, der aus dem vorherigen Einzelbild als Führung verwendet wird, um zu approximieren, welche Blöcke vor welchen anderen Blöcken approximiert werden sollten. Im Fall, dass der Abhängigkeitsgraph Zyklen aufweist, die durch reflektierte Strahlen verursacht werden, werden primäre Strahlen vor reflektierten Strahlen verarbeitet.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist das Blockdiagramm einer logischen Darstellung des programmierbaren Visualisierungssystems nach der Erfindung;
  • 2 ist das Blockdiagramm einer physikalischen Darstellung des erfindungsgemäßen physikalischen Visualisierungssystems;
  • 3 ist das Blockdiagramm eines Ablaufplanungsgitters, das einer zu rendernden Szene überlagert ist;
  • 4 ist das Ablaufdiagramm eines erfindungsgemäßen kohärenten Ablaufplanungsverfahrens;
  • 5a ist das Blockdiagramm von Strahlen, die ein Ablaufplanungsgitter traversieren;
  • 5b ist ein Abhängigkeitsgraph für die zeitlich geordnete Verarbeitung von Blöcken;
  • 5c ist ein umgeordneter Abhängigkeitsgraph;
  • 6a ist das Blockdiagramm von Strahlen, die ein Ablaufplanungsgitter traversieren, mit reflektierten Strahlen; und
  • 7a und 7b sind Blockdiagramme von über die Zeit verfolgten Strahlen.
  • Ausführliche Beschreibung der bevorzugten Ausführungen
  • Logische Architektur
  • 1 zeigt ein System 100 zur Visualisierung von abgetasteten Daten (Volumen oder Bilder) und geometrischen Daten (Polygone und Flächen) nach der vorliegenden Erfindung. Logisch ist, dass das System 100 eine Speicher- und Bandbreitenhierarchie nutzt, um den Effekt einer Erhöhung der Größe der Daten über das hinaus zu reduzieren, was in einen chipintegrierten oder einen integrierten Speicher passen kann.
  • Das System enthält eine Vielzahl von Prozessorelementen (PE) 101103, erste Pegel-Zwischenspeicher 110, zweite Pegel-Zwischenspeicher 120 und dritte Pegel-Zwischenspeicher 130. Die Zwischenspeicher und Prozessorelemente sind durch Busse 140 miteinander verbunden.
  • In 1 nimmt die Speicherhierarchie von oben nach unten ab, während die Bandbreite zunimmt. Auf diese Weise ist jeder Pegel wie ein Zwischenspeicher des nächsthöheren Pegels wirksam. Es ist nicht notwendig, dass die gesamte Datenmenge in den untersten oder auch mittleren Pegel der Speicherhierarchie passt. Wenn jedoch ein Teil der Datenmenge, die zu dem endgültigen Bild beiträgt, in einen vorgegebenen Pegel passt, dann können die Prozessorelemente von Einzelbild zu Einzelbild, das heißt über die Zeit, den Vorteil höherer Bandbreite ausnutzen, während auf die Datenmenge zugegriffen wird.
  • Physikalische Architektur
  • 2 zeigt eine physikalische Darstellung 200 des erfindungsgemäßen Visualisierungssystems. Das System enthält eine zentrale Prozessoreinheit 210, einen Hauptspeicher 220 und ein durch den Bus 240 verbundenes Visualisierungs-Subsystem. Das System kann außerdem eine Brücke 250 umfassen, die die CPU, den Hauptspeicher und den Bus untereinander verbindet.
  • Erfindungsgemäß ist das Subsystem als ein steckbares PC-Board ausgeführt. Das Visualisierungs-Subsystem 230 enthält eine anwendungsspezifische integrierte Schaltung (ASIC) 205, die durch einen Speicherbus 207 mit dem DRAM 206 verbunden ist. Die ASIC 205 umfasst Prozessorelemente (PE) 201204, einen integrierten DRAM-Baustein (EDRAM) 260, eine PC-Schnittstelle (PC/IF) 270, einen Speicherregler 280 und einen Dispatcher 290, die durch Busse 290 verbunden sind. In einer Ausführung führt die ASIC kohärentes Raytracing durch. Andere Anwendungen können Segmentierung und Modellierung beinhalten.
  • Die zentrale Prozessoreinheit 210 kann ein beliebiger normaler Mikroprozessor sein, zum Beispiel ein Intel PentiumTM Chip. Der Hauptspeicher 220 kann ein SIMM-Modul oder DIMM-Modul sein. Das Board 230 kann in den PC-Systembus 240 eingesteckt werden, der zum Beispiel PCI (programmierbare Kommunikationsschnittstelle), AGP (Computerinterface zur verbesserten Anzeige von dreidimensionalen Grafiken mit hoher Geschwindigkeit) oder eine IVC-Architektur von SGI sein kann. Der DRAM 206 kann ein SDRAM (synchroner Arbeitsspeicher mit vollem Bustakt) oder direkter RAM-Bus sein. Die ASIC 205 kann eine oder mehrere Verarbeitungseinheiten sowie einen Speicher mit integriertem DRAM-Baustein enthalten, die in einer oder mehreren Reihenanordnungen organisiert sind. Es können zum Beispiel M32-Chips von Mitsubishi verwendet werden. Der M32 enthält ein einzelnes Prozessorelement. Die ASIC mit der neuesten Technologie integrierter DRAM-Bausteine ermöglichen mehrere Prozessorelemente und besitzen eine viel größere chipinterne Speicherung. Die Prozessorelemente weisen eine sehr hohe Bandbreite für den lokalen integrierten Speicher im Inneren des Chips auf. Mehrere ASIC mit mehreren Prozessorelementen je ASIC werden für das Board auch eine größere Leistung liefern. Die Systemarchitektur nutzt diese Bandbreite aus, um die in dem integrierten DRAM-Baustein momentan gespeicherten Daten schnell zu den Prozessorelementen zu übertragen.
  • Datenmengen in normaler Größe werden in dem integrierten DRAM-Baustein nicht passen. Deshalb können die externen DRAM-Speicher 206 genutzt werden, um die Daten zu speichern, bis die Prozessorelemente innerhalb der ASIC bereit sind, die Daten zu nutzen. Für sehr große Datenmengen, die auch nicht in den DRAM-Bausteinen passen, wird der Hauptspeicher genutzt, bis das Subsystem bereit ist, die Daten zu verarbeiten. Dies bildet aus der logischen Ausführung eine dreifach gestufte Speicherhierarchie zum Optimieren der Lokalität von Datenreferenzen.
  • Speicher-Kohärenz
  • Bei einer Anwendung von Raytracing optimiert das Subsystem Speicherkohärenz der zu verarbeitenden Daten. Dies wird ausgeführt, indem auf Speicherbereiche in Blöcken zugegriffen wird und so viel wie möglich Verarbeitung an jedem Block durchgeführt wird, bevor zu einem anderen Block gegangen wird. Die erfindungsgemäße Verarbeitung ordnet die Blöcke, so dass Blöcke, die eine zur Verarbeitung bereite große Arbeitsmenge aufweisen, vor den Blöcken verarbeitet werden, die eine kleinere Menge durchzuführender Arbeit aufweisen. Außerdem werden Blöcke, die für frühere Einzelbilder verwendet werden, vor Blöcken sortiert, die für spätere Einzelbilder genutzt werden, auch wenn die früheren Blöcke weniger auszuführende Arbeit aufweisen.
  • Jedoch folgt das erfindungsgemäße Raytracing-Subsystem nicht einer strengen Reihenfolge der Verarbeitung wie es in normalen Beschleunigerkarten für Volumen-Rendering genutzt wird. Stattdessen wird die auszuführende Arbeit zu dreidimensionalen Blöcken angeordnet. Blöcke werden verarbeitet, z. B. werden Strahlen angeordnet oder verfolgt oder eine Segmentierung wird nach einer Ordnung durchgeführt, bei der der Block, der die meisten Ergebnisse zur Verfügung stellen wird, als nächstes verarbeitet wird, während er dem Speicher mit integriertem DRAM-Baustein am nächsten sein wird. Eine nachstehend beschriebene heuristische Metrik entscheidet die Reihenfolge, in der Blöcke verarbeitet werden.
  • Für Anwendungen der Bildberechnung, bei denen es eine Mischung von volumetrischen und integrierten polygonalen Objekten gibt, nutzt das System „Strahlenwarteschlangen". Für Anwendungen der Volumenverarbeitung wie Segmentierung wird eine andere Metrik verwendet, um die Blöcke sowohl im räumlichen Bereich als auch im zeitlichen Bereich kohärent zu ordnen.
  • 3 zeigt eine zweidimensionale Abwärtsdarstellung davon, wie eine zu rendernde dreidimensionale Szene 300 entsprechend einem Ablaufplanungsnetz 302 in Blöcke 301 geteilt wird. Alle abgetasteten und geometrischen Daten 310 werden unter den Blöcken des Ablaufplanungsnetzes, die sie schneiden, verteilt. Von einem Betrachtungspunkt 340 gehen Strahlen 330 aus. Die Strahlen können auf herkömmliche Weise erzeugt werden. Jedem Block 301 ist eine Strahlenwarteschlange 320 zugeordnet. Jeder Eintrag 321 in der Strahlenwarteschlange bestimmt einen der Strahlen 330, der im Moment diesen Block schneidet und der darauf wartet, mit den Daten verarbeitet zu werden, die in diesem Block 302 des Ablaufplanungsnetzes gespeichert sind.
  • Die den Strahl bestimmenden Daten enthalten seine (x, y, z) Position, den Zuwachs (.x, .y, .z) für die Position der nächsten Verfolgungsstufe und den gegenwärtigen akkumulierten RGB Wert des Strahls.
  • 4 zeigt den Ablauf der Verarbeitung und Daten entsprechend dem erfindungsgemäßen Verfahren der Strahlverfolgung. Im Inneren des Systems befindet sich ein Scheduler 410 und ein Dispatcher 420, die über einen FIFO-Speicher 415 Daten austauschen. Der Scheduler besitzt Kenntnis von Besonderheiten der Anwendung, zum Beispiel das Ablaufplanungsgitter 302 und eine Strahlenliste 401. Jeder Eintrag 402 in der Liste 410 weist auf eine der Strahlenwarteschlangen 320 hin.
  • Der Scheduler nutzt nachstehend beschriebene heuristische Prozesse, um zu bestimmen, welche Blöcke zu verarbeiten sind und in welcher Reihenfolge. Die heuristischen Prozesse sind für Visualisierungsanwendung bestimmt. Der Scheduler speichert eine Liste von durch den Dispatcher zu verarbeitenden Blöcken im FIFO-Speicher 415. Der Dispatcher überträgt Blöcke zu einzelnen Prozessorelementen 201204. Der Dispatcher steuert außerdem die Bewegung abgetasteter und geometrischer Daten 310 unter den drei Pegeln (110, 120, 130) der Speicherhierarchie. Auf diese Weise wird gewährleistet, dass die genauen Daten für jedes der Prozessorelemente 201204 verfügbar sind, wenn der Scheduler einen zu verarbeitenden Block zuweist. Nachdem die Blöcke in den FIFO-Speicher gelegt worden sind, versucht der Scheduler, von der speziellen Anwendung der Visualisierung unabhängig, die Blöcke so nahe wie möglich an die Prozessorelemente zu bewegen.
  • Die Daten bewegen sich durch den Speicherpegel in von dem Pegel abhängigen Datensegmenten unterschiedlicher Größe. Zum Beispiel können volumetrische Daten für ein spezifisches Einzelbild in eine hierarchische räumliche Unterteilung geteilt werden. Folglich wird, wenn durch ein Prozessorelement volumetrische Daten benötigt werden und die Daten nur im höchsten Speicherpegel der Speicherhierarchie vorhanden sind, ein großes Datenelement des Volumens in den nächst niedrigeren Pegel bewegt werden, und selbst ein kleineres Datensegment wird direkt in den dem Prozessorelement am nächsten befindlichen, niedrigsten Pegel bewegt werden.
  • Zuerst werden die Daten im Hauptspeicher 220 gespeichert. Die zentrale Prozessoreinheit 210 erzeugt anfängliche Strahleninformationen und gibt die Strahlenwarteschlangen 320 ein. Der Dispatcher startet die Übertragung von Daten zu dem DRAM-Baustein 206 auf dem Board 230, wenn der erste Block bereit ist, verarbeitet zu werden. Blöcke können auch direkt in den integrierten DRAM 260 geladen werden. In der gegenwärtigen Praxis kann dies mit einzelnem Lesen vom Hauptspeicher und gleichzeitigem Schreiben sowohl in den eingebauten DRAM als auch den integrierten DRAM der ASIC erzielt werden.
  • Wenn die Blöcke verarbeitet werden, werden die Strahlenwarteschlangen für den aktuellen Block gelesen, um zu bestimmen, wie der Strahl die abgetasteten und geometrischen Daten in dem Block durchschneidet. Wenn ein Strahl aus dem Block austritt und in den nächsten Block des Ablaufplanungsgitters eintritt, wird diese Information auf eine passende Strahlenwarteschlange für den nächsten Block gelegt. Wenn der Strahl zur Strahlverfolgung volle Opazität erreicht hat, dann werden keine Informationen zurück in die Strahlenwarteschlangen gelegt.
  • Wenn ein Prozessorelement das Verarbeiten des aktuellen Blocks beendet, d. h. in der Warteschlange des aktuellen Blocks sind Strahlen nicht mehr vorhanden), signalisiert das Prozessorelement dem Scheduler, einen neuen Block für das Prozessorelement zum Verarbeiten auszuwählen. Der Scheduler wählt basierend auf dem aktuellen Zustand der Strahlenwarteschlangen und dem aktuellen Zustand der Speicher entsprechend der heuristischen Metrik den besten Block aus. Wenn alle Strahlenwarteschlangen (zur Strahlverfolgung) leer sind, wird die Verarbeitung beendet, und es können Bildabtastwerte zur Anzeige oder zum Drucken gesammelt werden.
  • Ablaufplanungsalgorithmus
  • Der folgende Ablaufplanungsalgorithmus, der einen Abhängigkeitsgraph nutzt, wird verwendet, um eine Reihenfolge zum Verarbeiten der Blöcke auszuwählen.
  • Dieses Verfahren verwendet einen Abhängigkeitsgraph als Maßnahme zum Verarbeiten des besten Blockes. Es nutzt Interframe-Kohärenz über die Zeit aus. Für jedes Einzelbild wird ein Abhängigkeitsgraph erzeugt. Der Abhängigkeitsgraph zeigt an, welche Blöcke Strahlen zu welchen anderen Blöcken senden. Für ein späteres Einzelbild hat sich der Ansichtspunkt (oder Kamerawinkel) wahrscheinlich nur um einen kleinen Betrag bewegt. So wird der für das vorherige Einzelbild am meisten verwendete Block auch für das nächste Einzelbild gültig sein. Deshalb ist es möglich, den aus dem vorherigen Einzelbild aufgebauten Graph als eine Führung nutzbar zu machen, um zu approximieren, welche Blöcke vor welchen anderen Blöcken verarbeitet werden sollten.
  • 5a zeigt ein Beispiel von Strahlen 501, die von einem Ansichtspunkt 502 durch ein Ablaufplanungsgitter 503 gebildet sind. Wenn keine frühe Strahlenbeendigung vorhanden ist, dann ist es möglich, dass einige Strahlen nicht weniger als fünf Blöcke traversieren. 5b zeigt einen Abhängigkeitsgraph 510. Im Graph sind die Knoten 511 Blöcke, und die gerichteten Kanten geben Strahlen an, die einen Block verlassen und in den nächsten eintreten. In 5b ist es schwierig, den Strahlendurchgang von Block zu Block zu sehen. 5c zeigt den gleichen Abhängigkeitsgraph wie 5b, wobei die Knoten jedoch umgeordnet sind, so dass alle gerichteten Kanten von oben nach unten fließen. Hierbei wird die optimale Ordnung zur Verarbeitung der Blöcke deutlich.
  • Für ein einfaches zweidimensionales Ablaufplanungsgitter von 3 × 3 mit Strahlverfolgung ist es leicht, auf einen Abhängigkeitsgraph zu zeichnen und ihn umzuordnen, damit die optimale Verarbeitungsreihenfolge der Blöcke bestimmt wird. Jedoch können die Ablaufplanungsgitter für das System 100 abgetastete dreidimensionale Daten beträchtlicher Größe sein. Während es dies erschwert, eine manuelle Analyse vorzunehmen, ist es dennoch möglich, die optimale Reihenfolge rechnerisch zu lösen.
  • Außerdem unterstützt das erfindungsgemäße Verfahren auch die Strahlverfolgung. 6a zeigt das gleiche einfache Ablaufplanungsgitter 503 von 3 × 3 für einen Fall von Strahlverfolgung, bei dem sich ein Objekt 600 im Mittelpunkt des Gitters befindet und die Strahlen reflektierte Strahlen 601 enthalten. 6c zeigt, dass der entsprechende Abhängigkeitsgraph 610 beim Anzeigen der Reihenfolge von Verarbeitungsblöcken weniger deutlich ist. Die gestrichelten Kanten 611 zeigen Abhängigkeiten aufgrund der sekundären reflektierten Strahlen 601 an, was Zyklen in dem Graph verursacht. In einer Ordnung werden primäre Strahlen vor reflektierten Strahlen verarbeitet.
  • 7a und 7b zeigen, wie zeitliche Kohärenz erreicht wird. In 7a ist ein Gitter 700 einem grafischen Objekt 701, z. B. einer Kugel, überlagert. Zur Strahlverfolgung benötigte Blöcke 702 sind in Schwarz angegeben. Die Strahlen 702 für ein Einzelbild zum Zeitpunkt t0 werden von einer Kameraposition 704 erzeugt. Zum Zeitpunkt t1 hat sich die Kameraposition 705 verschoben. Für das nächste Einzelbild kann eine große Anzahl von Blöcken erneut verwendet werden, und diese sollten in dem niedrigsten Zwischenspeicherpegel bleiben. Nur die neuen (karierten) Blöcke 707 müssen identifiziert werden.
  • Ersetzungs-Algorithmus
  • Wenn der Dispatcher einen Block in einen speziellen Speicher laden muss und der Speicherbereich voll ist, muss ein vorher gespeicherter Block wieder in Besitz genommen werden. Der folgende Ersetzungs-Algorithmus kann genutzt werden, um einen Block zur erneuten Inbesitznahme auszuwählen.
  • Er nutzt Interframe-Kohärenz und den aus dem vorherigen Einzelbild aufgebauten Abhängigkeitsgraph in einer dem Ablaufplanungs-Algorithmus ähnlichen Art und Weise.
  • Obwohl die Erfindung durch Beispiele bevorzugter Ausführungen beschrieben wurde, soll verständlich werden, dass verschiedene andere Anpassungen und Modifizierungen innerhalb des Umfangs der angefügten Patentansprüche vorgenommen werden können.

Claims (7)

  1. Verfahren zur Verfolgung von Strahlen durch grafische Daten, welches die Schritte aufweist: Teilen der grafischen Daten in mehrere Blöcke (511) gemäß einem Gitter (503), das für jeden Block (511) eine Strahlenwarteschlange (320) erzeugt, wobei jeder Eintrag (321) in der Strahlenwarteschlange (320) einen durch den Block (511) zu verfolgenden Strahl (501) darstellt; Ordnen der Strahlenwarteschlangen (320) in einer Verarbeitungsliste (401); Verwenden einer zeitlichen Reihenfolge für die Verarbeitung der Strahlenwarteschlangen in der Verarbeitungsliste; welche zeitliche Reihenfolge durch einen Abhängigkeitsgraph bestimmt wird; welcher Abhängigkeitsgraph für jeden Rahmen erzeugt wird und anzeigt, welche Blöcke (511) Strahlen (501) zu welchen anderen Blöcken (511) senden; wobei das Verfahren weiter bestimmt wird durch Verwenden von Zwischenrahmenkohärenz über der Zeit durch Verwenden des von dem vorhergehenden Rahmen gebildeten Abhängigkeitsgraph als eine Führung zur Annäherung, welche Blöcke vor welchen anderen Blöcken verarbeitet werden sollten; dadurch gekennzeichnet, dass, wenn der Abhängigkeitsgraph durch reflektierte Strahlen bewirkte Zyklen hat, primäre Strahlen vor reflektierten Strahlen verarbeitet werden.
  2. Verfahren nach Anspruch 1, bei dem ein Scheduler (410) für die Bildung der Reihenfolge verwendet wird.
  3. Verfahren nach Anspruch 1, aufweisend den Schritt des Speicherns der mehreren Blöcke in einem Mehrpegel-Cachespeicher (110, 120, 130) gemäß der Reihenfolge der Verarbeitungsliste.
  4. Verfahren nach Anspruch 3, bei dem ein Mehrpegel-Cachespeicher verwendet wird, der einen mit einer zentralen Prozessoreinheit (210) verbundenen dritten Speicherpegel (130, 220), welcher dritte Speicherpegel (130, 220) die grafischen Daten speichert, einen mit der zentralen Prozessoreinheit (210) durch einen Systembus (240) verbundenen zweiten Speicherpegel (120, 206), welcher zweite Speicherpegel (120, 206) zum Speichern eines Subsatzes der mehreren Blöcke vorgesehen ist, und einen mit dem zweiten Speicherpegel (120, 206) durch einen Speicherbus (140, 207) verbundenen ersten Speicherpegel (110, 260) enthält, wobei der Scheduler (410) eine Reihenfolgenliste (401) von Blöcken in dem ersten Speicherpegel (110, 260) speichert.
  5. Verfahren nach Anspruch 4, bei dem ein Prozessorelement (101103, 201204), das durch einen Prozessorbus (140, 290) mit dem ersten Speicherpegel (110, 260) verbunden ist, für die Verarbeitung der Blöcke verwendet wird.
  6. Verfahren nach Anspruch 4, bei dem ein mit dem ersten (260), dem zweiten (206) und dem dritten (220) Speicherpegel und dem Prozessorelement (201204) verbundener Dispatcher (290, 420) verwendet wird zum Übertragen von Blöcken von dem dritten (220) zu dem zweiten (206) und von dem zweiten (206) zu dem dritten (220) Speicherpegel gemäß der Reihenfolge der Liste von Blöcken (401).
  7. Verfahren nach Anspruch 6, weiterhin aufweisend den Schritt des Ersetzens der Blöcke in dem Mehrpegel-Cachespeicher (110, 120, 130) gemäß dem Abhängigkeitsgraph.
DE60033250T 1999-09-01 2000-07-12 System und Verfahren zur Darstellung mit Strahlverfolgung Expired - Fee Related DE60033250T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/388,338 US6556200B1 (en) 1999-09-01 1999-09-01 Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data
US388338 1999-09-01

Publications (2)

Publication Number Publication Date
DE60033250D1 DE60033250D1 (de) 2007-03-22
DE60033250T2 true DE60033250T2 (de) 2007-06-28

Family

ID=23533714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60033250T Expired - Fee Related DE60033250T2 (de) 1999-09-01 2000-07-12 System und Verfahren zur Darstellung mit Strahlverfolgung

Country Status (4)

Country Link
US (1) US6556200B1 (de)
EP (1) EP1081655B1 (de)
JP (1) JP2001084401A (de)
DE (1) DE60033250T2 (de)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137529A1 (en) * 2002-01-07 2003-07-24 Siemens Aktiengesellschaft Method for reconstructing a surface of a workpiece
DE10239672B4 (de) * 2002-08-26 2005-08-11 Universität des Saarlandes Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
US20050143654A1 (en) * 2003-11-29 2005-06-30 Karel Zuiderveld Systems and methods for segmented volume rendering using a programmable graphics pipeline
DE102004007835A1 (de) * 2004-02-17 2005-09-15 Universität des Saarlandes Vorrichtung zur Darstellung von dynamischen komplexen Szenen
US7868891B2 (en) * 2004-09-16 2011-01-11 Nvidia Corporation Load balancing
US7333107B2 (en) * 2005-08-18 2008-02-19 Voxar Limited Volume rendering apparatus and process
JP4763378B2 (ja) * 2005-08-23 2011-08-31 日立アロカメディカル株式会社 超音波診断装置
US20070132754A1 (en) * 2005-12-12 2007-06-14 Intel Corporation Method and apparatus for binary image classification and segmentation
FR2896895B1 (fr) * 2006-02-01 2008-09-26 Redway Soc Par Actions Simplifiee Procede de synthese d'une image virtuelle par lancer de faisceaux
US7911474B2 (en) * 2006-04-03 2011-03-22 Siemens Medical Solutions Usa, Inc. Memory management system and method for GPU-based volume rendering
DE602006016590D1 (de) * 2006-07-12 2010-10-14 Procter & Gamble Auf Gelnetzwerk-Emulgatoren basierende Verdickersysteme für Haarfärbe und Haaraufhellungszusammensetzungen
US8259105B2 (en) * 2006-07-21 2012-09-04 The University Of Utah Research Foundation Ray tracing a three-dimensional scene using a hierarchical data structure
US7864174B2 (en) * 2006-08-24 2011-01-04 International Business Machines Corporation Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system
US8674987B2 (en) * 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US9478062B2 (en) 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
US7969434B2 (en) 2006-09-19 2011-06-28 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering
US8018457B2 (en) 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
US9665970B2 (en) 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping for multiprocessing
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
WO2008067490A2 (en) * 2006-11-29 2008-06-05 University Of Utah Research Foundation Parallel grid population
US7996622B1 (en) 2007-08-07 2011-08-09 Nvidia Corporation Detecting unused cache lines
US8996846B2 (en) 2007-09-27 2015-03-31 Nvidia Corporation System, method and computer program product for performing a scan operation
US8063902B2 (en) * 2007-10-12 2011-11-22 Caustic Graphics, Inc. Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing
US7932905B2 (en) * 2007-10-15 2011-04-26 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for light energy accounting in ray tracing
US8264484B1 (en) 2007-10-29 2012-09-11 Nvidia Corporation System, method, and computer program product for organizing a plurality of rays utilizing a bounding volume
US8284188B1 (en) 2007-10-29 2012-10-09 Nvidia Corporation Ray tracing system, method, and computer program product for simultaneously traversing a hierarchy of rays and a hierarchy of objects
US8065288B1 (en) * 2007-11-09 2011-11-22 Nvidia Corporation System, method, and computer program product for testing a query against multiple sets of objects utilizing a single instruction multiple data (SIMD) processing architecture
US8661226B2 (en) * 2007-11-15 2014-02-25 Nvidia Corporation System, method, and computer program product for performing a scan operation on a sequence of single-bit values using a parallel processor architecture
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
GB0723536D0 (en) * 2007-11-30 2008-01-09 Imagination Tech Ltd Multi-core geometry processing in a tile based rendering system
US8773422B1 (en) * 2007-12-04 2014-07-08 Nvidia Corporation System, method, and computer program product for grouping linearly ordered primitives
US8243083B1 (en) 2007-12-04 2012-08-14 Nvidia Corporation System, method, and computer program product for converting a scan algorithm to a segmented scan algorithm in an operator-independent manner
KR101536197B1 (ko) 2008-02-27 2015-07-13 삼성전자주식회사 3차원 영상 프로세서 및 프로세싱 방법
CN102037497B (zh) * 2008-03-21 2014-06-11 柯斯提克绘图公司 用于光线追踪渲染的并行相交测试及着色的架构
EP2110784A1 (de) 2008-04-14 2009-10-21 INFORM Institut für Operations Research und Management GmbH Verfahren und Expertensystem zum Bewerten eines Objekts
US8593458B2 (en) * 2008-09-22 2013-11-26 Caustic Graphics, Inc. Systems and methods of multidimensional query resolution and computation organization
US8321492B1 (en) 2008-12-11 2012-11-27 Nvidia Corporation System, method, and computer program product for converting a reduction algorithm to a segmented reduction algorithm
KR101511273B1 (ko) * 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
KR101511281B1 (ko) * 2008-12-29 2015-04-13 삼성전자주식회사 레이 트레이싱 고속화 방법 및 장치
US8587588B2 (en) * 2009-08-18 2013-11-19 Dreamworks Animation Llc Ray-aggregation for ray-tracing during rendering of imagery
US20110283059A1 (en) * 2010-05-11 2011-11-17 Progeniq Pte Ltd Techniques for accelerating computations using field programmable gate array processors
CN101982838B (zh) * 2010-11-02 2012-06-27 长春理工大学 一种加速被面光源照射的3d虚拟场景的光线跟踪的方法
CN102074041B (zh) * 2010-12-21 2012-10-10 长春理工大学 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
CN103765376B (zh) 2011-06-16 2017-05-31 想象技术有限公司 具有无阻塞并行架构的图形处理器
US9508181B2 (en) 2011-08-31 2016-11-29 Adobe Systems Incorporated Ordering and rendering buffers for complex scenes with cyclic dependency
DE112011105927T5 (de) * 2011-12-07 2014-09-11 Intel Corporation Grafik-Renderingverfahren für autostereoskopisches dreidimensionales Display
KR102042539B1 (ko) * 2012-07-24 2019-11-08 삼성전자주식회사 레이 트레이싱 방법 및 장치
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US10970429B2 (en) * 2013-01-07 2021-04-06 Magma Giessereitechnologie Gmbh Method and algorithm for simulating the influence of thermally coupled surface radiation in casting processes
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9224239B2 (en) 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9501796B2 (en) 2013-09-18 2016-11-22 Chicago Mercantile Exchange Inc. Dataset intersection determination
US8952963B1 (en) 2014-02-13 2015-02-10 Raycast Systems, Inc. Computer hardware architecture and data structures for a grid traversal unit to support incoherent ray traversal
US9842424B2 (en) * 2014-02-10 2017-12-12 Pixar Volume rendering using adaptive buckets
KR102197067B1 (ko) * 2014-04-02 2020-12-30 삼성전자 주식회사 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치
DK178380B1 (en) * 2014-07-01 2016-01-25 Magma Giessereitechnologie Gmbh Method of beam tracking for use in a simulation or calculation process
KR102166426B1 (ko) * 2014-07-07 2020-10-16 삼성전자주식회사 렌더링 시스템 및 이의 렌더링 방법
US10417809B2 (en) 2015-06-19 2019-09-17 Schlumberger Technology Corporation Efficient algorithms for volume visualization on irregular grids
CN105204405B (zh) * 2015-10-21 2017-11-24 中国科学院光电技术研究所 基于多视线相关夏克‑哈特曼波前传感器的实时控制器
US10553010B2 (en) * 2017-04-01 2020-02-04 Intel IP Corporation Temporal data structures in a ray tracing architecture
US11232628B1 (en) * 2020-11-10 2022-01-25 Weta Digital Limited Method for processing image data to provide for soft shadow effects using shadow depth information

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5031117A (en) * 1990-02-13 1991-07-09 International Business Machines Corporation Prioritization scheme for enhancing the display of ray traced images
EP0459761A3 (en) * 1990-05-31 1993-07-14 Hewlett-Packard Company Three dimensional computer graphics employing ray tracking to compute form factors in radiosity
US5557711A (en) * 1990-10-17 1996-09-17 Hewlett-Packard Company Apparatus and method for volume rendering
US5305430A (en) * 1990-12-26 1994-04-19 Xerox Corporation Object-local sampling histories for efficient path tracing
US5361385A (en) * 1992-08-26 1994-11-01 Reuven Bakalash Parallel computing system for volumetric modeling, data processing and visualization
JPH06168340A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd 3dグラフィック表示装置
JPH06223201A (ja) * 1993-01-22 1994-08-12 Matsushita Electric Ind Co Ltd 並列画像生成装置
JPH06223198A (ja) * 1993-01-26 1994-08-12 Hitachi Ltd 光線追跡による画像生成装置及び方法
US5579455A (en) * 1993-07-30 1996-11-26 Apple Computer, Inc. Rendering of 3D scenes on a display using hierarchical z-buffer visibility
JPH0793581A (ja) * 1993-09-24 1995-04-07 N T T Data Tsushin Kk 3次元空間データの記憶装置及びアクセス制御方法
GB9424273D0 (en) * 1994-12-01 1995-01-18 Wrigley Adrian M T Improvements in and relating to image constrcution
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US6226005B1 (en) * 1997-01-31 2001-05-01 LAFERRIèRE ALAIN M Method and system for determining and/or using illumination maps in rendering images
US6008813A (en) * 1997-08-01 1999-12-28 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Real-time PC based volume rendering system
JP3073943B2 (ja) * 1997-09-16 2000-08-07 日本無線株式会社 画像合成装置及び方法
US6111583A (en) * 1997-09-29 2000-08-29 Skyline Software Systems Ltd. Apparatus and method for three-dimensional terrain rendering
US6130680A (en) * 1997-12-01 2000-10-10 Intel Corporation Method and apparatus for multi-level demand caching of textures in a graphics display device

Also Published As

Publication number Publication date
JP2001084401A (ja) 2001-03-30
EP1081655A3 (de) 2003-08-13
DE60033250D1 (de) 2007-03-22
US6556200B1 (en) 2003-04-29
EP1081655A2 (de) 2001-03-07
EP1081655B1 (de) 2007-02-07

Similar Documents

Publication Publication Date Title
DE60033250T2 (de) System und Verfahren zur Darstellung mit Strahlverfolgung
DE102019103059B4 (de) Hieb- und stichfester Strahl-Dreieck-Schnittpunkt
DE60019516T2 (de) Programmierbarer Aufbau zur Visualisierung von Abtastdaten und geometrischen Daten
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE102019102821A1 (de) Verfahren zur behandlung von ungeordneten opak- und alphastrahl/primitiv-schnittpunkten
DE102019103178A1 (de) Verfahren für vorankommen und programmierbare timeouts von baumtraversierungsmechanismen in hardware
DE102019103326A1 (de) Robuste, effiziente multiprozessor-koprozessor-schnittstelle
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
DE69821848T2 (de) Echt-Zeit PC basiertes Volumendarstellungssystem
DE102017124573A1 (de) Systeme und verfahren zum beschneiden von neuronalen netzen für eine betriebsmitteleffiziente folgerung
DE102019103336A1 (de) Verfahren zum effizienten gruppieren von cache-anforderungen für datenpfad-scheduling
DE102019103058A1 (de) Verfahren für fortgesetzte begrenzungsvolumenhierarchietraversierung auf schnittpunkte ohne shader-intervention
DE102018126342A1 (de) Transformieren von faltenden neuronalen netzen zum lernen von visuellen sequenzen
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
EP1716543A1 (de) Vorrichtung zur photorealistischen darstellung von dynamischen komplexen dreidimensionalen szenen mittels des ray-tracing verfahrens
DE102018127647A1 (de) Systeme und verfahren zum trainieren neuronaler netzwerke auf regression ohne referenzdaten-trainingsmuster
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102016103891A1 (de) Systeme und Verfahren zur weichen Schattierung in 3D-Rendering
DE102019102009A1 (de) Reduzierung des rauschens während des renderings durch parallele path-space-filterung unter verwendung von hashing
DE102008034519A1 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE102014004841A1 (de) Grafik auf Kachelbasis
DE102021105249A1 (de) Mikrotraining zur iterativen verfeinerung eines neuronalen netzes mit wenigen anpassungen
DE102021115353A1 (de) Strahlverfolgung-hardwarebeschleunigung zur unterstützung von bewegungsunschärfe und sich bewegender/verformender geometrie
DE102020118860A1 (de) Techniken zum vorladen von texturen beim rendering von graphik
DE102018128699A1 (de) Einstellen einer Winkelabtastrate während eines Renderings unter Verwendung von Blickinformationen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee