DE102004007835A1 - Vorrichtung zur Darstellung von dynamischen komplexen Szenen - Google Patents

Vorrichtung zur Darstellung von dynamischen komplexen Szenen Download PDF

Info

Publication number
DE102004007835A1
DE102004007835A1 DE102004007835A DE102004007835A DE102004007835A1 DE 102004007835 A1 DE102004007835 A1 DE 102004007835A1 DE 102004007835 A DE102004007835 A DE 102004007835A DE 102004007835 A DE102004007835 A DE 102004007835A DE 102004007835 A1 DE102004007835 A1 DE 102004007835A1
Authority
DE
Germany
Prior art keywords
ray
hardware
tracing
objects
transformation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102004007835A
Other languages
English (en)
Inventor
Sven Woop
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.)
OL Security LLC
Original Assignee
Universitaet des Saarlandes
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 Universitaet des Saarlandes filed Critical Universitaet des Saarlandes
Priority to DE102004007835A priority Critical patent/DE102004007835A1/de
Priority to PCT/DE2005/000266 priority patent/WO2005078665A1/de
Priority to EP05714983A priority patent/EP1716543A1/de
Priority to US10/589,794 priority patent/US8115763B2/en
Priority to JP2006552460A priority patent/JP4769732B2/ja
Publication of DE102004007835A1 publication Critical patent/DE102004007835A1/de
Ceased 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

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

Abstract

Die Erfindung betrifft eine Vorrichtung, mit welcher dynamische, komplexe dreidimensionale Szenen mit hohen Bildwiederholraten unter Verwendung einer Echtzeit Ray-Tracing Hardwarearchitektur auf einem zweidimensionelen Display dargestellt werden können. Die Erfindung zeichnet sich vor allem dadurch aus, dass sie eine Hierarchiestruktur von beweglichen und veränderbaren Objekten unterstützt, das heißt,ie Hauptszene kann aus mehreren Objekten bestehen, welche jeweils aus weiteren Objekten aufgebaut sind, wobei diese Schachtelung beliebig fortgeführt werden kann. DOLLAR A Zur erfindungsgemäßen Realisierung wird die Funktion und das Verfahren der bekannten Ray-Tracing-Pipeline um eine Transformations-Einheit, welche die Strahlen in die Objekte hinein transformiert, erweitert und diese Funktionen und Verfahren in eine logikbasierte Hardware umgesetzt. DOLLAR A Eine zweite Ausgestaltungsform der Erfindung ermöglicht die Programmierbarkeit des Systems, indem erfindungsgemäß eine neuartige Prozessorarchitektur, bestehend aus der Kombination eines Standard Prozessorkerns mit einem oder mehreren speziellen Ray-Tracing-Coprozessoren, verwendet wird.

Description

  • Die Erfindung betrifft eine Vorrichtung, mit welcher dynamische, komplexe dreidimensionale Szenen mit hohen Bildwiederholraten unter Verwendung einer Echtzeit Ray-Tracing Hardwarearchitektur auf einem zweidimensionalen Display dargestellt werden können. Dynamische Szenen sind Szenen, in welchen sich neben der Kameraposition auch die Geometrie der darzustellenden Objekte von Frame zu Frame ändern kann. Die Erfindung zeichnet sich vor allem dadurch aus, dass sie eine Hierarchiestruktur von Objekten unterstützt, das heißt die Hauptszene kann aus mehreren Objekten bestehen, welche jeweils aus weiteren Objekten aufgebaut sind, wobei diese Schachtelung beliebig fortgeführt werden kann. Die auf den einzelnen Hierarchieebenen befindlichen Objekte können sowohl einzeln, als auch im Verbund bewegt werden. Hierdurch ist es möglich, komplexe Szenen mit hoher Dynamik zu erstellen und durch Verwendung des gleichen Objektes an mehreren Stellen der Szene die Repräsentation der Szene im Speicher klein zu halten.
  • Zur erfindungsgemäßen Realisierung dieser verschachtelten Objektebenen, wird die hardwaremäßige Umsetzung der bekannten Ray-Tracing-Pipeline um eine hardwaremäßig realisierte Transformationseinheit erweitert, welche die Strahlen in die Objekte hinein transformiert. Diese Einheit ist zur optimalen Ausnutzung der Hardwareressourcen nur einmal vorhanden und wird neben der Objektraumtransformation auch zur Berechnung des Schnittpunktes des Strahles mit einem Dreieck, der Erstellung von Primärstrahlen und zur Erstellung von Sekundärstrahlen verwendet.
  • Eine zweite Ausgestaltungsform der Erfindung gestattet dem Anwender die volle Programmierbarkeit des Systems, indem erfindungsgemäß eine neuartige Prozessorarchitektur, bestehend aus der Kombination eines Standard Prozessorkerns mit einem, oder mehreren speziellen Ray-Tracing-Coprozessoren verwendet wird.
  • Unter anderem zur Ausgabe der Bilddaten auf einem Display, kann die Erfindung durch die Verwendung gemeinsamer Frame-Buffer und Z-Buffer mit einer dem Stand der Technik entsprechenden Rasterisierungshardware kombiniert werden.
  • Stand der Technik
  • Der Stand der Technik bezüglich der Darstellung von dreidimensionalen Szenen ist derzeit in zwei Haupt-Sektoren einzuteilen, das Rasterisierungsverfahren und das Ray-Tracing-Verfahren (siehe Computer Graphics / Addison-Wesley ISBN 0201848406).
  • Das bekannte, vor allem in Computer-Graphikkarten zum Einsatz kommende Rasterisierungsverfahren beruht auf dem Prinzip, jede Geometrie der Szene auf einen Frame-Buffer und Z-Buffer zu projizieren. Hierzu werden die Farb- und Helligkeitswerte der Pixel im Frame-Buffer und die geometrischen Tiefenwerte im Z-Buffer gespeichert, jedoch nur dann, wenn der vorherige geometrische Wert im Z-Buffer größer (weiter vom Betrachter entfernt liegend) als der neue ist. Hierdurch wird sichergestellt, dass nähere Objekte fernere überschreiben und nach Ablauf des Algorithmus nur noch die wirklich sichtbaren Objekte im Frame-Buffer abgebildet sind.
  • Dieses Verfahren hat jedoch den entscheidenden Nachteil, dass aufwändige Szenen mit Millionen von Objekten mit heutiger Hardware nicht in Echtzeit dargestellt werden können, da es in der Regel erforderlich ist, alle Dreiecke (Objekte) der Szene zu projizieren. Desweiteren wird ein Frame-Buffer und Z-Buffer benötigt, auf welchem viele Milliarden Schreiboperationen in der Sekunde durchgeführt werden müssen, wobei zum Bildaufbau die meisten Pixel mehrfach pro Frame überschrieben werden. Das Überschreiben des zum Betrachter weiter entfernten Pixels durch Pixel näherer Objekte hat zur Folge, dass bereits berechnete Daten verworfen werden, wodurch eine optimale Systemleistung nicht realisiert werden kann.
  • Schatten sind wohl mit aufwändigen Techniken auf heutiger Rasterisierungshardware zu berechnen, jedoch nicht mit hoher Genauigkeit. Spiegelungen an gekrümmten Flächen, sowie die Darstellung von Lichtbrechungen sind mit dieser Technik nicht zu realisieren.
  • Leistungssteigernde Verbesserung schafft ein zweites Verfahren, das Ray-Tracing-Verfahren, welches durch seine photorealistischen Bilder, aber auch durch die Rechenkomplexität bekannt ist. Die Grundidee von Ray-Tracing steht in nahem Bezug zu physikalischen Lichtverteilungsmodellen (siehe Computer Graphics / Addison-Wesley ISBN 0201848406 ).
  • In einer realen Umgebung wird Licht von Lichtquellen emittiert und nach physikalischen Gesetzen in der Szene verteilt. Mit einer Kamera kann das Bild der Umgebung eingefangen werden. Ray-Tracing geht den umgekehrten Weg und verfolgt das Licht von der Kamera, welche die Betrachterposition darstellt, zurück zu ihrer Quelle. Hierzu wird für jedes Pixel des Bildes ein virtueller Strahl in die, das Pixel beleuchtende, Richtung geschossen. Dieses Schießen des Strahles nennt man Ray-Casting. Trifft der Strahl ein Objekt so berechnet sich die Farbe des Pixels unter anderem aus der Farbe des getroffenen Objektes, der Oberflächennormalen und den vom Auftreffpunkt sichtbaren Lichtquellen. Die sichtbaren Lichtquellen sind durch die Verfolgung der Sekundärstrahlen, welche von jeder Lichtquelle zu dem Auftreffpunkt geschossen werden, zu ermitteln. Treffen die Sekundärstrahlen ein Objekt zwischen Lichtquelle und Auftreffpunkt, so liegt der Punkt im Schatten bezüglich der Lichtquelle.
  • Dieses Verfahren ermöglicht neben der beschriebenen Schattenberechnung auch noch die Berechnung von Spiegelungen und der Brechungen des Lichtes, indem Reflexionsstrahlen bzw. gebrochene Sekundärstrahlen berechnet werden. Desweiteren können Szenen nahezu beliebiger Größe gehandhabt und dargestellt werden. Der Grund hierfür liegt in der Anwendung einer Beschleunigungsstruktur. Dies ist ein spezieller Algorithmus mit entsprechender Datenstruktur, welche es ermöglicht den virtuellen Strahl schnell durch die Szene zu „schießen" bzw. zu traversieren. Auf dem Weg werden einige Objekte selektiert, welche mögliche Trefferkandidaten sind, wodurch der Auftreffpunkt schnell gefunden wird. Theoretische Untersuchungen haben ergeben, dass die Komplexität des Ray-Tracing-Verfahrens im Mittel logarithmisch mit der Szenengröße wächst. Das heißt, eine Quadrierung der Zahl der Objekte der Szene bedeutet lediglich den doppelten Rechenaufwand.
  • Typische Beschleunigungsstrukturen sind zum Beispiel das regelmäßige Grid, der k-D Baum und der Octree (siehe Computer Graphics / Addison-Wesley ISBN 0201848406). Allen diesen Verfahren liegt die Idee zu Grunde den Raum in viele Teilräume aufzuteilen und für jeden solchen Teilraum die dort vorhandene Geometrie zu speichern. Der Traversierungs-Algorithmus verfolgt den Strahl dann von Teilraum zu Teilraum und schneidet diesen immer mit genau den Objekten, die sich in dem Teilraum befinden. Die drei Verfahren unterscheiden sich nur in der Anordnung der Teilräume. Bei dem regelmäßigen Grid ist der Raum in würfelförmige Teilräume gleicher Größe unterteilt 7. Die beiden anderen Verfahren beruhen auf einer rekursiven Unterteilung des Raumes. Beim k-D Baum Verfahren wird der Startraum rekursiv an einer beliebigen Stelle achsenparallel geteilt 8. Diese Aufteilung des Raumes wird in einer rekursiven Datenstruktur (hier ein binärer Baum) gespeichert. Das dritte Verfahren namens Octree, ist ebenfalls rekursiv, nur werden die betrachteten Teilräume immer in 8 gleichgroße rechteckige Teilräume unterteilt 9.
  • Im Gegensatz zum Rasterisierungsverfahren existiert momentan keine reine Hardwarelösung welche den Ray-Tracing-Algorithmus umsetzt, sondern nur softwarebasierende Systeme, welche enorm viel Rechenleistung und Rechenzeit erfordern. Zur Veranschaulichung des zeitlichen Umfanges der Berechnungen sei bemerkt, dass abhängig von der Komplexität des Bildes und der verwendeten Software mit der momentan dem Stand der Technik entsprechenden PC Hardware eine Rechenzeit von einigen Sekunden bis zu mehreren Stunden benötigt wird, um ein einzelnes Standbild nach diesem Verfahren zu erstellen. Die Berechnungen von Bewegtbildern erfordert entsprechend viel Rechenzeit und/oder die Verfügbarkeit von speziellen Großrechnern.
  • Der Lehrstuhl Computergraphik an der Universität des Saarlandes hat ein softwarebasiertes Echtzeit Ray-Tracing System entwickelt, welches auf einem Cluster von über 20 Rechnern zum Einsatz kommt.
  • Im US Patent 6,597,359 B1 ist eine Hardwarelösung für den Ray-Tracing-Algorithmus beschrieben, welcher sich jedoch auf statische Szenen beschränkt.
  • Das US Patent 5,933,146 beschreibt ebenfalls eine Hardwarelösung für den Ray-Tracing-Algorithmus, auch eingeschränkt auf statische Szenen.
  • Das Paper „ SaarCOR – A Hardware Architecture for Ray-Tracing " vom Lehrstuhl Computergraphik der Universität des Saarlandes beschreibt eine Hardwarearchitektur für Ray-Tracing jedoch wiederum limitiert auf statische Szenen.
  • Das Paper „A Simple and Practical Method for Interactive Ray-Tracing of Dynamic Scenes" vom Lehrstuhl Computergraphik der Universität des Saarlandes beschreibt einen Softwareansatz zur Unterstützung von dynamischen Szenen in einem Ray Tracer. Das beschriebene Software Verfahren verwendet jedoch nur eine Stufe von Objekten, kann also keine Schachtelung in mehreren Stufen durchführen.
  • Der beschriebene Stand der Technik bietet momentan weder Software- noch Hardwarelösungen, mit welchen komplexe dynamische Szenen in Echtzeit dargestellt werden können. Bei den bekannten Rasterisierungsalgorithmen liegt die Leistungsbegrenzung in der Zahl der darzustellenden Objekte.
  • Ray-Tracing Systeme können zwar viele Dreiecke darstellen, sind jedoch wegen der benötigten Vorberechnungen darin beschränkt, dass die Position nur eingeschränkt geändert werden kann. Szenen aus einigen Milliarden Dreiecken erfordern sehr viel Rechenleistung und Speicher und sind nur auf schnellen und komplexen Großrechnern oder Clusterlösungen zu handhaben.
  • Deshalb sind mit der verfügbaren Personal-Computerhardware softwarebasierte dynamische Echtzeit Ray-Tracing Systeme nicht realisierbar. Die beschriebene Clusterlösung dürfte aus Kostengründen auf Spezialanwendungen beschränkt bleiben.
  • Der Erfindung liegt die Aufgabe zugrunde, die Leistungsfähigkeit der bisher bekannten hardwarebasierten Rasterisierungsverfahren und der softwarebasierten Ray-Tracing-Verfahren derart zu verbessern, dass komplexe Objekte und dynamische Szenen in mehreren Schachtelungstiefen in einem dreidimensionalen Raum in Echtzeit dargestellt werden können.
  • Beschreibung der Erfindung
  • Gemäß Patentanspruch 1 und den Unteransprüchen wird diese Aufgabe wie folgt gelöst:
    Vorrichtung zur Darstellung von dynamischen, komplexen Szenen, dadurch gekennzeichnet, dass diese aus einem oder mehreren programmgesteuerten Ray-Tracing-Prozessor/en besteht (5 / 11), dessen/deren Funktionsumfang mittels hardwareimplementierter Traversierungs-Befehle und/oder Vektorarithmetikbefehle und/oder Befehle zur Erstellung von Ray-Tracing Beschleunigungsstrukturen realisiert wird
    und/oder dass die Vorrichtung aus hardwarebasierten festverdrahteten oder verknüpften Logikfunktionen besteht (2 / 3 / 4), welche so organisiert sind, dass auf den Ray-Tracing-Verfahren basierende Funktionen bereitgestellt werden und zu deren Realisierung eine oder mehrere Traversierungs-Einheit/en und eine oder mehrere Listen-Einheit/en und eine oder mehrere Schnittpunktberechnungs-Einheiten
    und ein oder mehrere Transformations-Einheit/en und/oder eine oder mehrere Logikeinheit/en zum Lösen von linearen Gleichungssystemen gebildet werden
    und die hardwaremäßige Gestaltung der Ray-Tracing-Prozessoren und/oder der Logikfunktionen in einem oder mehreren programmierbaren Logikbaustein/en oder in festverdrahteter integrierter oder diskreter Logik erfolgt.
  • Diese erfindungsgemäße, auf dem Ray-Tracing-Verfahren basierende Vorrichtung zur photorealistischen Darstellung dreidimensionaler bewegter Szenen, bei welcher die softwaremäßig definierten Beschleunigungsstrukturen, Algorithmen und Verfahren in entsprechende Hardwarestrukturen umgesetzt sind, ist vorrangig zum Echtzeiteinsatz vorgesehen.
  • Zur Realisierung beliebiger ungeordneter Dynamik in einer Szene muss für jedes Bild der Bildfolge die Beschleunigungsstruktur neu berechnet werden. Dies bedeutet bei großen Szenen einen enorm großen Rechenaufwand da die gesamte Geometrie der Szene „angefasst" werden muss. Hierbei verschwindet der Vorteil der logarithmischen Komplexität des Algorithmus in der Szenengröße.
  • Eine im Paper „A Simple and Practical Method for Interactive Ray Tracing" beschriebene Lösung zu diesem Problem ist die Unterteilung der Szene in Objekte und ausschließlich das Bewegen dieser Objekte als Ganzes zu erlauben. Hierbei werden zwei Beschleunigungsstrukturen benötigt.
  • Eine Top-Level Beschleunigungsstruktur über den Objekten der Szene und jeweils eine Bottom-Level Beschleunigungsstruktur für jedes der Objekte. Die Objekte werden hierbei in Form von Instanzen von Objekten in der Szene positioniert.
  • Der Unterschied eines Objektes zu der Instanz desgleichen liegt darin, dass eine Instanz eines Objektes aus einem Objekt und einer Transformation besteht. Die Transformation ist eine affine Funktion, welche das Objekt an eine beliebige Stelle der Szene verschiebt. Affine Transformationen erlauben desweiteren ein Skalieren, Rotieren und Scheren (engl. shearing) von Objekten. Im folgenden wird der Einfachkeit halber auch für Instanzen von Objekten der Begriff Objekt verwendet, falls keine Verwechslungsmöglichkeit besteht.
  • Ein Strahl wird zunächst durch die Top-Level Beschleunigungsstruktur traversiert (Strahl durch die Szene verfolgen) bis ein mögliches Treffer-Objekt (das vom Strahl getroffene Objekt) gefunden wird. Nun transformiert man den Strahl in das lokale Koordinatensystem des Objektes und traversiert in der Bottom-Level Beschleunigungsstruktur des Objektes weiter bis ein Treffpunkt mit einem Primitiven Objekt gefunden ist. Primitive Objekte sind Objekte, welche in sich keine weitere Struktur besitzen. Bei Ray Tracern sind das in der Regel Dreiecke und Kugeln.
  • Diese Methode funktioniert in der Praxis sehr gut, jedoch nur so lange die Zahl der Objekte nicht zu groß wird, da die Top-Level Beschleunigungsstruktur in jedem Bild neu aufgebaut werden muss. Das neue Aufbauen dieser Beschleunigungsstruktur ist erforderlich, wenn die Objekte in dieser bewegt wurden.
  • Die Erfindung stellt nun eine Hardwarelösung dar, welche obige Aufteilung der Szene in Objekte rekursiv unterstützt. Das heißt, sie schränkt sich nicht auf Objekte ein, welche aus Primitiven Objekten bestehen, sondern erlaubt ebenfalls, dass sich diese Objekte wieder aus Objekten zusammensetzen, welche wiederum aus Objekten bestehen können usw. 1 zeigt wie aus mehreren Stufen von Objekten ein Baum erstellt werden kann. Zunächst wird als Objekt der Stufe 1 ein Blatt modelliert. Dieses Blatt wird nun mehrfach instantiiert und an einen Ast gesetzt, wodurch ein weiteres Objekt entsteht, jedoch jetzt ein Objekt der Stufe 2. Diese kleinen Äste können nun wieder mehrfach instantiiert werden zu einem größeren Ast oder Baum als Objekt der Stufe 3 usw. Es ist anzumerken, dass hier mehrere Ebenen von Objekten in Objekten vorkommen und dass die Repräsentation der Szene durch das mehrmalige Benutzen gleicher Geometrien klein ist.
  • Das in der Erfindung zum Einsatz kommende, durch entsprechenden Algorithmus definierte Verfahren für das Ray-Casting sieht wie folgt aus:
    Der Strahl wird durch die Beschleunigungsstruktur der obersten Stufe traversiert bis ein mögliches Treffer-Objekt gefunden ist. Falls das Objekt ein Primitives Objekt ist, so wird der Schnittpunkt des Strahles mit dem Objekt berechnet. Ist das Objekt kein Primitives Objekt, so wird der Strahl in das lokale Koordinatensystem des Objektes transformiert und setzt dort die Traversierung rekursiv fort.
  • Ein wesentlicher Teil des Algorithmus ist die Transformation des Strahles in das lokale Koordinatensystem des Objektes, wodurch im Prinzip die Positionierung des Objektes durch die affine Transformation rückgängig gemacht wird. Das heißt, der transformierte Strahl sieht das Objekt nun nicht mehr transformiert. Dieser Transformationsschritt erfordert eine recht aufwändige affine Transformation des Strahlstartpunktes und der Strahlrichtung, wobei jedoch die dazu erforderliche aufwändige Hardwareeinheit zusätzlich noch für weitere Aufgaben einsetzbar ist. Es stellt sich heraus, dass die Transformationseinheit ebenfalls zur Berechnung des Schnittpunktes mit vielen Arten von Primitiven Objekten, zur Berechnung von Primärstrahlen und zur Berechnung vieler Arten von Sekundärstrahlen verwendet werden kann.
  • Zur Berechnung der Primärstrahlen wird eine ähnliche Kameratransformationsmatrix angewandt, wie bei den bekannten Rasterisierungsverfahren. Zunächst werden Pre-Primärstrahlen der Gestalt R = ((0,0,0),(x,y,1)), also Strahlen mit dem Startpunkt (0,0,0) und der Richtung (x,y,1) definiert, wobei x und y die Koordinaten des Pixels zu dem ein Primärstrahl berechnet werden soll darstellt. Zu jeder Kameraposition und Ausrichtung gibt es eine affine Transformation, welche den Strahl R derart transformiert, dass er genau der Einfallsrichtung des Pixel (x,y) der Kamera entspricht.
  • Um den Schnittpunkt mit einem Primitiven Objekt zu berechnen, wird der Strahl in einen Raum transformiert, indem das Primitive Objekt normiert ist. Im Falle eines Dreiecks als Primitives Objekt, wird der Strahl beispielsweise derart in einen Raum transformiert, dass das Dreieck die Gestalt Δnorm = ((1,0,0),(0,0,0),(0,1,0)), wie in 10 zu sehen, hat. Diese Transformation kann durch eine affine Transformation geschehen. Die anschließende Schnittpunktberechnung mit dem Normdreieck ist im Gegensatz zum allgemeinen Fall sehr einfach in Hardware zu lösen. Wird die Transformation derart gewählt, dass die Dreiecksnormale auf den Vektor (0,0,1) im Dreiecksraum transformiert werden, so lässt sich das Skalarprodukt aus Strahl und Dreiecksnormale sehr einfach im Dreiecksraum berechnen, da das Skalarprodukt aus Strahlrichtung (xt,yt,zt) und der Dreiecksnormalen (0,0,1) gerade 0·xt + 0· yt + 1·zt = zt ist.
  • Die Transformation kann desweiteren so gewählt werden, dass nur 9 Fließkommazahlen für deren Repräsentation benötigt werden, indem die Dreiecksnormale auf eine geeignete Normale im Norm-Dreiecksraum abgebildet wird. Dies verhindert jedoch die Möglichkeit das Skalarprodukt im Norm-Dreiecksraum zu berechnen.
  • Es ist klar ersichtlich, dass diese Normobjekttransformation auch für andere Arten von Objekten verwendet werden kann, wie beispielsweise Kugeln, Ebenen, Quader, Zylinder und viele weitere geometrische Gebilde, es ist jeweils nur eine andere Schnittpunktberechnungseinheit zu erstellen.
  • Ein großer Vorteil hiervon ist die Tatsache, dass jede Art von Primitivem Objekt die gleiche Repräsentation im Speicher besitzt, nämlich eine affine Transformation welche in den Objektnormraum transformiert. Dies erleichtert die Konzeption des Speicherinterface einer Hardwarelösung. Die Transformation in den Objektnormraum nennt man die Normraumtransformation.
  • Lichtstrahlen sowie Spiegelungen lassen sich durch die Berechnung geeigneter Transformationen und geeigneter Strahlen effizient durch die Transformationseinheit berechnen.
  • Desweiteren ist es möglich, mit der Transformationseinheit Normalen (Vektoren die senkrecht auf einer Fläche stehen) zu transformieren. Diese Normalentransformation ist deswegen nötig, da einige Shadingmodelle die Normale der Geometrie am Auftreffpunkt benötigen. Diese Normale muss jedoch im Weltkoordinatensystem vorliegen, was bei obigem Algorithmus nicht zwangsläufig der Fall ist. Vielmehr liegt die Normale erstmals nur im lokalen Koordinatensystem des getroffenen Objektes vor. Sie muss von dort wieder zurück in das Weltkoordinatensystem transformiert werden.
  • Die Transformationseinheit hat jedoch auch einen Nachteil. Da die affinen Transformationen, welche als Matrizen gespeichert werden können, sowohl für Dreiecke also auch für die Objekte der Szene vorberechnet werden müssen, ist es nicht ohne weiteres möglich die Position der Dreieckseckpunkte effizient von Frame zu Frame zu ändern. Dies ist in Vertexshadern auf heutigen Grafikkarten jedoch möglich. Vertexhader sind programmierbare Spezialeinheiten, welche darauf optimiert sind, Bewegungen von Punkten im Raum zu berechnen.
  • Um dies zu ermöglichen, muss man sich von der Vorberechnung der Daten lösen. Demzufolge ist es dann erforderlich zur Schnittpunktsberechnung mit einem Dreieck ein lineares Gleichungssystem mit drei Unbekannten zu lösen. Dieses explizite Lösen erfordert zwar mehr Fließkomma-Operationen, ist jedoch in Verbindung mit Vertexshadern erforderlich. Demzufolge kann es sinnvoll sein, obige Transformationseinheit durch eine Einheit, welche ein lineares Gleichungssystem löst, zu ersetzen. Diese Einheit kann unter anderem dazu verwendet werden, um mit Dreiecken zu schneiden oder Strahlen in das lokale Koordinatensystem eines Objektes zu transformieren.
  • Ein Problem von detailreichen Szenen sind unerwünschte Alaising Effekte, die vor allem dann entstehen, wenn die Objektdichte in einer Richtung sehr hoch ist. Dann kann es passieren, dass ein Strahl beispielsweise ein schwarzes Dreieck trifft und bei einer minimalen Bewegung der Kamera plötzlich ein weißes Dreieck getroffen wird. Solche Effekte führen zu einem zeitlichen und örtlichen Rauschen im Bild. Der Grund liegt darin, dass Ray-Tracing in der Regel unendlich schmale Strahlen verwendet und nicht berücksichtigt, dass sich das Licht, welches einen Pixel beeinflusst, pyramidenförmig ausbreitet und sich der Strahl mit der Entfernung aufweitet. So müssten eigentlich alle Objekte, welche sich in dieser Strahlenpyramide befinden, zur Berechnung der Pixelfarbe herangezogen werden, was in einem Echtzeitsystem nicht möglich ist. Abhilfe schafft hier eine neue vereinfachte Form des Cone-Tracings. Anstatt einen beliebig schmalen Strahl zu betrachten, wird zusätzlich der Öffnungswinkel des Strahles bewertet. So kann je nach Entfernung zur Kamera die entsprechende Strahlbreite berechnet werden. Trifft man bei der Traversierung auf einen Teilraum der zu einem Großteil von dem Strahl überdeckt wird, so macht es unter Umständen keinen Sinn mehr weiter zu traversieren. Optimal ist an dieser Stelle eine vereinfachte Geometrie des Volumeninneren zur Berechnung zu verwenden und zu ignorieren, dass in dem Volumina vielleicht eine Million Dreiecke sind. Diese Dreiecke bilden unter Umständen nur die Wand eines Gebirges, welche wegen der Größe des Strahles auch durch eine farbige Ebene approximiert werden kann.
  • Falls die Dreiecke jedoch ein löchriges Gebilde wie zum Beispiel den Eifelturm modellieren, ist als Approximation eher die Farbe der konstruktiven Gitterelemente und ein Transparenzwert zu wählen.
  • Die Erfindung unterstützt solche vereinfachten Geometrierepräsentationen in der Beschleunigungsstruktur. 6 zeigt das Konzept am Beispiel eines Octrees. Zu dem fett umrandeten Volumina, zu welchem ein Knoten in der Beschleunigungsstruktur gehört, ist die vereinfachte Geometrie abgebildet. Der Strahl überlappt fast mit dem gesamten Volumen des Knotens, so dass die Vereinfachte Geometrie zur Schnittpunktsberechnung verwendet wird.
  • Eine alternative Methode besteht darin, die Objekte der Szene mit unterschiedlichen Detaillevel abzuspeichern. Das heißt, die Objekte mit unterschiedlicher Auflösung oder Anzahl Dreiecke zu modellieren und abhängig von der Entfernung der Objekte zur Kamera, detailreiche oder vereinfachte Objekte zu verwenden.
  • Ein Nachteil der oben beschriebenen festverdrahteten, hardwarebasierten Ray-Tracing-Pipeline ist die Tatsache, dass es aufwändig ist, sie programmierbar zu gestalten. Im Vergleich zu einem Software Ray-Tracing Ansatz, wirkt die Hardwarebasierte Pipeline sehr starr und speziell. Abhilfe schafft die Entwicklung einer speziell auf den Ray-Tracing-Algorithmus angepaßten CPU. Diese spezielle Ray-Tracing Processing Unit abgekürzt RTPU besteht aus einer Standard CPU z.B. RISC Prozessor, dessen Befehlssatz um spezielle Befehle erweitert wird. Insbesondere ist ein Traversierungs-Befehl wichtig, welcher den Strahl durch eine Beschleunigungsstruktur traversiert. Einige Stellen des Algorithmus erfordern desweitern aufwändige arithmetische Operationen, welche vorwiegend im dreidimensionalen Raum geschehen. Es ist demnach sinnvoll die CPU mit einer Vektorarithmetikeinheit auszustatten, ähnlich den heute geläufigen SSE2 Befehlssätzen. Eine weitere Optimierung der CPU kann dadurch erreicht werden, indem die Parallelisierbarkeit des Algorithmus ausgenutzt wird. Es ist demnach möglich, sehr effektiv mehrere Threads (Programmabläufe) auf einer CPU laufen zu lassen, was die Auslastung und Effektivität der CPU dramatisch erhöht, vor allem im Bezug auf die Speicherwartezeiten.
  • Macht ein Thread eine Speicheranfrage, so kann ein anderer während der Anfrage ausgeführt werden. Ein beispielhafter Aufbau solch einer CPU ist in 5 zu sehen.
  • Da bei dynamischen Szenen für jedes Frame die Neuberechnungen der umfangreichen Beschleunigungsstrukturen durchgeführt wird, ist es erforderlich, den Befehlssatz der CPU um spezielle Befehle zur Erstellung der Beschleunigungsstrukturen zu erweitern.
  • Die Einheiten der Ray-Tracing Architektur benötigen eine sehr hohe Speicherbandbreite, das heißt es müssen sehr viele Daten pro Zeiteinheit übertragen werden. Normalerweise ist dies nur zu realisieren, indem sehr viele Speicherchips parallel geschaltet werden. Die erforderliche Speicherbandbreite kann jedoch auch durch eine geeignete Verschaltung von mehreren Cachestufen (n-Level Caches) sichergestellt werden. Essentiell ist hier eine Eigenschaft des Ray-Tracing-Algorithmus die man Kohärenz nennt. Kohärenz bezeichnet die Tatsache, dass Strahlen die ähnliche Bereiche des 3D Raumes durchlaufen auch auf nahezu die gleichen Daten in der Beschleunigungsstruktur, dementsprechend also auch auf die gleichen Objekte zugreifen. Wird diese Eigenschaft ausgenutzt, können hohe Cache Hitraten erzielt werden. Das heißt, die benötigten Daten werden mit großer Wahrscheinlichkeit im Cache wiedergefunden und brauchen nicht zeitaufwändig aus dem Hauptspeicher geladen zu werden. Die Caches an sich sind wie in 4 gezeigt, in einem binären Baum angeordnet, um mehrere Ray-Tracing Einheiten zu versorgen.
  • Die erfindungsgemäße Vorrichtung kann in Verbindung mit einem 3D Display natürlich auch zur photorealistischen dreidimensionalen Echtzeitdarstellung komplexer bewegter Szenen verwandt werden. Abhängig von der Technologie des eingesetzten Displays sind hierbei drei Ausführungsformen der Bildausgabe zu unterscheiden. Erstens eine Ausführungsform, bei welcher abwechselnd zwei den Stereoeindruck beinhaltende Bilder horizontal versetzt im Zeitmultiplexverfahren auf einem Display dargestellt werden.
  • Zweitens eine Ausführungsform bei welcher zwei den Stereoeindruck repräsentierende, horizontal versetzte Bilder, welche in abwechselnden senkrechten, die Bildinformation der beiden Bilder beinhaltende Streifen auf einem Display dargestellt werden. Drittens eine Ausführungsform, bei welcher die beiden horizontal versetzten Bilder auf zwei getrennten Displays gleichzeitig oder im Zeitmultiplexverfahren dargestellt werden.
  • Die beiden horizontal versetzten Bilder, welche jeweils dem rechten oder linken Auge zuzuordnen sind, werden durch entsprechend räumliche Displayanordnungen oder durch den Einsatz von Bildtrennvorrichtungen (z.B. Shutterbrillen, streifenförmige Fresnel-Prismen/Linsen, Polarisationsfilter) jeweils nur einem Auge sichtbar. Die einzusetzenden 3D Displays und deren Erfordernisse der Videosignalansteuerung entsprechen dem Stand der Technik und werden nicht näher beschrieben. Weitere Ausführungen zum Stand der Technik von 3D Displays sind folgenden, beispielhaft genannten Schriften zu entnehmen:
    Computer Graphics / Addison-Wesley ISBN 0201848406, DE 4331715 , DE 4417664 , DE 19753040 , DE 19827590 , DE 19737449
  • Der Einsatz computeranimierter photorealistischer Echtzeitdarstellung dreidimensionaler bewegter Szenen und Bilder erstreckt sich über die Darstellung dreidimensionaler CAD Daten, die Darstellung medizinischer und technisch-analytischer Daten, über die Filmanimation sowie dem Einsatz in Flug- und Fahrsimulatoren, bis zu den sogenannten Home Anwendungen in Computerspielen mit aufwändiger Echtzeitgraphik.
  • Die funktionelle Realisierung und die Hardwareimplementierung der Ray-Tracing-Algorithmen und Verfahren erfolgt in komplexen und schnellen Logiktechnologien, wobei deren Umsetzung sowohl als festverdrahtete Digitallogik in Form von diskreter Digitallogik, oder Kunden- oder Anwendungsspezifisch gefertigten IC beispielsweise ASIC, oder von komplexen programmierbaren Logikbausteinen / Logikschaltkreisen, beispielsweise CPLD oder FPGA Technologien mit oder ohne CPU Kern erfolgt.
  • Beschreibung einer erfindungsgemäßen Ausbildungsform in hardwaremäßig realisierter Logik
  • Die nachfolgend beschriebene beispielhafte Ausbildungsform der Erfindung beschreibt die Ray-Tracing Einheit einer Computer- Graphikkarte, bei welcher die Hardwareimplementierung der Ray-Tracing-Algorithmen und Verfahren beispielsweise in einem freiprogrammierbaren Logikbaustein FPGA, in ASIC Technologie, oder in einem festverdrahteten Spezial Chip erfolgen kann.
  • Soweit Verfahren und Funktionsabläufe beschrieben werden, so sind diese rein hardwaremäßig zu realisieren. Was bedeutet, dass entsprechende Logikeinheiten und hardwaremäßig realisierte Arithmetikeinheiten zu gestalten sind.
  • Die Standardfunktion der Ansteuerelektronik zur Ansteuerung des Datendisplays (Kathodenstrahlröhre, TFT-, LCD- oder Plasmamonitor) und deren Timing entsprechen dem Stand der Technik, werden als bekannt vorausgesetzt und sind nicht Gegenstand der Beschreibung. Eine Schnittstelle zwischen dem Bildspeicher dieser Standardfunktion und der erfindungsgemäßen Umsetzung der Ray-Tracing-Algorithmen und Verfahren wird beschrieben.
  • Die Beschreibung gliedert sich in zwei Teile. Zunächst wird die Ray-Casting-Pipeline abgekürzt RCP beschrieben. Dabei handelt es sich um den Kern des Designs, welcher Strahlen durch die Szene traversiert und den Auftreffpunkt zurückliefert.
  • Im zweiten Teil wird für die Ray-Casting-Pipeline eine optimierte Ray-Tracing Architektur beschrieben, in welcher mehrere dieser Ray-Casting-Pipelines zusammenarbeiten.
  • 2 zeigt die Ray-Casting-Pipeline Einheit (RCP), welche aus mehreren Untereinheiten besteht. Die Traversierungs-Einheit traversiert den Strahl durch eine geeignete Beschleunigungsstruktur, vorzugsweise einen k-D Baum. Der Strahl wird so lange traversiert, bis er in einen Bereich der Szene kommt, in welchem sich mögliche Treffer-Objekte befinden. Die Objekte dieses Bereiches, sind in einer Liste gespeichert, welche von der Listen-Einheit bearbeitet wird.
  • Diese Objekte müssen nun auf einen möglichen Schnittpunkt hin untersucht werden und falls es keinen gültigen Schnittpunkt gibt, mit der Traversierung fortgesetzt werden. Die Listen-Einheit sendet die möglichen Treffer-Objekte, eins nach dem anderen, zur Matrix-Lade-Einheit, welche die zu dem Objekt gehörige affine Transformation lädt. Diese affine Transformation kann durch eine 4 × 3 Matrix dargestellt werden. Es kann sich dabei um Objektraumtransformationsmatrizen oder um Matrizen welche in den Normraum eines Primitiven Objektes transformieren, handeln. Nachdem die Matrix-Lade-Einheit die Matrix in der Transformationseinheit gespeichert hat, werden die Strahlen von der Strahl-Einheit durch die Transformationseinheit geschickt.
  • Nach der Transformation sind nun zwei Szenarien möglich. Zum einen kann es sich um ein Objekt handeln, welches noch weitere Objekte beinhaltet. Ist dies der Fall, so wandern die Strahlen wieder zurück in die Traversierungs-Einheit und der transformierte Strahl wird in dem Objekt weiter traversiert. Handelt es sich jedoch um ein Primitives Objekt, so geht der Strahl direkt weiter in die Schnittpunktberechnungs-Einheit, welche den Stahl mit dem Normobjekt schneidet. Die Schnittpunktberechnungs-Einheit kann wie zuvor beschrieben mehrere Normobjekte (Dreiecke, Kugeln usw.) unterstützen.
  • Die berechneten Schnittpunkt-Daten werden in der Schnittpunkt-Einheit gesammelt. Die Schnittpunkt-Einheit liefert einen Rückkanal zur Traversierungs-Einheit, so dass diese erkennen kann, ob schon gültige Schnittpunkt-Daten vorhanden sind.
  • Die Traversierungs-Einheit, Listen-Einheit und Matrix-Lade-Einheit sind die einzigen Einheiten der Ray-Casting-Pipeline, welche auf externen Speicher zugreifen. Die Traversierungs-Einheit greift auf die Beschleunigungsstruktur zu, die Listen-Einheit auf Listen von Objektadressen und die Matrix-Lade-Einheit auf affine Transformationen in Form von Matrizen. Alle drei Einheiten sind über einen eigenen Cache mit dem Hauptspeicher verbunden, um die nötige Speicherbandbreite zu gewährleisten.
  • Eine vereinfachte Version der Ray-Casting-Pipeline ist in 12 dargestellt, wobei nur die wichtigsten Einheiten abgebildet sind: die Traversierungs-Einheit welche die Strahlen durch die Beschleunigungsstruktur traversiert, die Listen-Einheit, welche die Listen bearbeitet, die Transformations-Einheit, welche die geladene Transformation auf die Strahlen anwendet, und die Schnittpunktberechnungs-Einheit, welche den transformierten Strahl mit dem Norm-Objekt schneidet.
  • Die Ray-Casting-Pipeline ist wie in 3 gezeigt in eine geeignete Ray-Tracing Architektur eingebettet. Die Abbildung zeigt 4 Ray-Casting-Pipeline Einheiten mit ihren jeweils 3 Caches. Es sind hier jeweils 2 Einheiten mit einer Shading Einheit verbunden. Diese Shading Einheiten verwenden die Ray-Casting-Pipeline Einheiten um die Farben der Pixel des Bildes zu berechnen. Hierzu schießt die Shading Einheit Primärstrahlen, verarbeitet die Auftreffinformationen, welche die Ray-Casting-Pipeline zurückliefert und schießt Sekundärstrahlen beispielsweise zu Lichtquellen.
  • Die Shading Einheiten besitzen einen Kanal zur Transformationseinheit der Ray-Casting-Pipeline. Dieser wird verwendet um Kameramatrizen und Matrizen für Sekundärstrahlen zu laden und dadurch den Rechenaufwand für die Shading Einheit zu minimieren. Anzumerken ist, dass die Shading Einheiten jeweils einen getrennten Textur Cache und Shading Cache besitzen. Der Shading Cache enthält Shadinginformationen zu der Geometrie der Szene wie zum Beispiel Farben und Materialdaten. Der Texturcache ist mit dem Texturspeicher verbunden und ermöglicht den Shading Einheiten Zugriff auf Texturen. Jede Shading Einheit besitzt ihren eigenen lokalen Frame-Buffer, auf welchem sie die Farben und Helligkeitswerte der gerade bearbeiteten / berechneten Pixel ablegt. Desweitern ist ein Z-Buffer vorhanden, welcher für die nachfolgend beschriebene Anbindung an die Standardrasterisierungshardware benötigt wird.
  • Ist die Farbe eines Pixels von der Shading Einheit vollständig berechnet, so wird diese Farbe über die Tone-Mapping-Einheit in den globalen Frame-Buffer geschrieben. Die Tone-Mapping-Einheit wendet eine einfache Funktion auf die Farbe an, um diese in dem 24 Bit RGB Raum abzubilden. Auch die geometrischen Tiefenwerte (Z-Werte), welche im lokalen Z-Buffer gespeichert werden, werden nun in den globalen Z-Buffer übertragen.
  • Die Farbe bzw. der neue Z-Wert werden jedoch nur dann in den Frame-Buffer bzw. Z-Buffer geschrieben, wenn der zuvor im Z-Buffer vorhandene Z-Wert größer ist. Hierdurch ist sichergestellt, dass nur dann Pixel geschrieben werden, wenn sie geometrisch vor bereits von der Rasterisierungshardware oder anderen Ray-Tracing Passes berechneten Werten liegen. So ist es möglich die Ray-Tracing Hardware mit einer Standard Rasterisierungshardware zu kombinieren, welche auf dem gleichen Frame-Buffer bzw. Z-Buffer arbeitet, welcher hierbei auch die Schnittstelle zu dieser Standard Rasterisierungshardware darstellt.
  • Zur weiteren Erhöhung der Systemleistung können optional noch weitere Shading-Einheiten mit den zugehörigen Ray-Casting-Pipelines und Caches parallelgeschaltet werden. Der leistungssteigernde Effekt liegt hierbei in der Verbreiterung der Daten- und Verarbeitungsstruktur.
  • Die Signalaufbereitung und die Timinggenerierung für das Display bzw. den Monitor erfolgt in bekannter Art durch diese Rasterisierungshardware. Hierbei werden die Grundfunktionen der Standard Rasterisierungshardware mit den hardwareimplementierten Ray-Tracing-Algorithmen und Funktionen zu einer sehr leistungsfähigen Echtzeit Hardwarearchitektur verbunden.
  • Beschreibung der zweiten Ausbildungsform der Erfindung als programmierbarer Ray-Tracing-Prozessor
  • Die zweite beispielhafte Ausbildungsform der Erfindung basiert auf der Gestaltung und Anwendung von frei programmierbaren Ray-Tracing CPU's abgekürzt RTPU, welche programmgesteuert die erfindungsgemäß beschriebenen, speziellen Ray-Tracing Funktionen und Algorithmen ausführen. Hierbei werden durch entsprechende Logik- und Funktionsparallelität jeweils nur wenige, vorzugsweise ein oder zwei CPU Taktzyklen zur Abarbeitung der Einzelfunktion benötigt.
  • Soweit interne Algorithmen, Verfahren und Funktionsabläufe der Ray-Tracing CPU abgekürzt RTPU beschrieben werden, sind diese mittels einer Hardwarebeschreibungssprache, zum Beispiel HDL, VHDL, oder JHDL zu erstellen und auf die entsprechende Hardware zu übertragen. Die Hardwareimplementierung der RTPU mit den implementierten Algorithmen und Verfahren kann beispielsweise in einem freiprogrammierbaren Logikbaustein FPGA, in ASIC Technologie, in der Kombination von digitalen Signalprozessoren mit FPGA / ASIC oder in einem festverdrahteten Spezial Chip erfolgen.
  • Dies bedeutet, dass entsprechende Logikeinheiten und hardwaremäßig realisierte Arithmetikeinheiten zu gestalten sind, deren Einzelfunktionen programmgesteuert abgerufen werden können. Abhängig von der Komplexität der eingesetzten Hardwaretechnologie kann pro Chip eine oder mehrere RTPUs, mit oder ohne weiteren Logikfunktionen realisiert werden.
  • Hierbei werden wie in 11 zu sehen ist, mehrere der in 5 dargestellten RTPU Einheiten parallel geschaltet. Das Speicherinterface wird von einer Cache-Hierarchie gebildet, welche die nötige Speicherbandbreite bereitstellt. Dieses Vorgehen ist wiederum nur wegen der starken Kohärenz benachbarter Strahlen effizient möglich. Bei dem RTPU Konzept bearbeitet jede RTPU entweder genau ein Pixel des Bildes oder ein Paket von mehreren Pixeln.
  • Die Einzelpixelbearbeitung ist wegen ihrer Einfachheit vorzuziehen, benötigt jedoch zur Einzelstrahlberechnung ein Speicherinterface mit ausreichend hoher Bandbreite was bedeutet, dass eine hohe Datenrate pro Zeiteinheit realisiert werden muss. Das Bearbeiten eines Pixels geschieht durch ein Softwareprogramm, welches auf der Ray-Tracing CPU / RTPU läuft.
  • 5 zeigt einen beispielhaften Aufbau einer RTPU. Zu sehen ist ein standard Prozessorkern (RISC Kern) welchem zwei Spezialcoprozessoren parallel geschaltet sind. Die Coprozessoren besitzen jeweils ihre eigenen Register. Es ist jedoch auch möglich durch Spezialbefehle diese Registerinhalte von einem Coprozessor in einen anderen zu überführen. Der Traversierungs-Kern ist ein spezieller Coprozessor, welcher Strahlen effizient durch eine Beschleunigungsstruktur traversieren kann. Hierzu benötigt er ein spezielles Speicherinterface zu den Knoten der Beschleunigungsstruktur (Knoten- Cache). Der Vektor Arithmetik Kern ist ein Spezialcoprozessor, welcher effizient Operationen im 3D Raum durchführen kann. Die von jeder Ray-Tracing Software benötigten Vektoradditionen, Skalarmultiplikationen, Kreuzprodukte und Vektorprodukte können mittels dieser Einheit schnell berechnet werden. Die Vektorarithmetikeinheit benötigt Zugriff auf einen Spezialcache, welcher es ermöglicht ganze Vektoren in einem Takt zu laden.
  • Die in der RTPU hardwaremäßig implementierten Einzelbefehle oder Logikfunktionen beinhalten die gleichen Algorithmen, welche schon bei der festverdrahteten ersten Ausbildungsform der Erfindung beschrieben sind. Ergänzend hierzu, kann dieser Befehlssatz jedoch um weitere festverdrahtete Befehle und Funktionen ergänzt werden, welche wiederum programmgesteuert zu aktivieren sind. Durch spezielle Traversierungs-Operationen, durch Vektorarithmetik, sowie durch die parallele Abarbeitung mehrer Threads auf einer RTPU wird die für Echtzeitanwendung erforderliche Rechenleistung bereitgestellt und gleichzeitig werden die Auswirkungen der Speicherlatenzen (Wartezeiten auf Speicheranfragen) auf die Systemgeschwindigkeit minimiert oder sogar unrelevant.
  • Dadurch, dass die RTPU programmgesteuert dazu verwandt werden kann, rekursiv Sekundärstrahlen durch die Szene zu schießen, wird das Programmiermodell, im Vergleich zur festverdrahteten Hardware, erheblich vereinfacht.
  • Ist die Farbe des Pixels vollständig berechnet, wird diese in den Frame-Buffer und die Distanz in den Z-Buffer geschrieben. Hierdurch ist eine Anbindung an die Standard Rasterisierungshardware möglich.
  • Beschreibung der Zeichnungen
  • 1 zeigt wie aus mehreren Stufen von Objekten einen Baum erstellt werden kann. Zunächst wird als Objekt der Stufe 1 ein Blatt modelliert. Dieses Blatt wird nun mehrfach instantiiert und an einen Ast gesetzt, wodurch ein weiteres Objekt entsteht, jedoch jetzt ein Objekt der Stufe 2. Diese kleinen Äste können nun wieder mehrfach instantiiert werden zu einem Baum als Objekt der Stufe 3.
  • 2 zeigt die Ray-Casting-Pipeline (RCP) mit den wichtigsten Datenpfaden, sowie der Schnittstelle zu den Caches.
  • 3 zeigt das Top-Level Diagramm einer beispielhaften Implementierung der Erfindung. Die 4 Ray-Casting-Pipelines (RCP) sind über eine Cache-Hierarchie mit den getrennten Speichern für Knoten, Listen und Matrizen verbunden. In diesem Beispieldesign sind je zwei RCP's mit einer Shadingeinheit verbunden, welche Zugriff auf einen lokalen Frame-Buffer und Z-Buffer hat. Über diese werden Farbwerte mittels einer Tone-Mapping-Einheit in einen globalen Frame-Buffer geschrieben und Tiefenwerte direkt in einen globalen Z-Buffer geschickt. An diesen Z-Buffer und Frame-Buffer kann eine dem Stand der Technik entsprechende Rasterisierungshardware (Rasterisierungs Pipeline) angeschlossen werden.
  • 4 zeigt die Cache-Infrastruktur, welche die nötige interne Speicherbandbreite im Chip bereitstellt. In der Abbildung handelt es sich um einen binären n-stufigen Cache, es sind jedoch auch andere hierarchische Strukturen denkbar.
  • 5 zeigt die beispielhafte Ausführungsform einer Ray-Tracing CPU.
  • 6. Beispiel der vereinfachten Geometrie in den Octreeknoten.
  • 7. Beispiel der regelmäßigen Grid Beschleunigungsstruktur an einer einfachen Szene. Der Raum ist der Einfachkeit halber nur in 2D gezeichnet.
  • 8. Beispiel der k-D Baum Beschleunigungsstruktur an einer einfachen Szene. Der Raum ist der Einfachkeit halber nur in 2D gezeichnet.
  • 9. Beispiel der Octree Beschleunigungsstruktur an einer einfachen Szene. Der Raum ist der Einfachkeit halber nur in 2D gezeichnet.
  • 10. Zeigt die Dreieckstransformation in den Norm-Dreiecks Raum.
  • 11. Zeigt eine beispielhafte Ausbildungsform der Erfindung basierend auf speziellen Ray-Tracing CPU's (RTPU's).
  • 12. Vereinfachte Version der in 2 gezeigten Ray-Casting-Pipeline.

Claims (14)

  1. Vorrichtung zur Darstellung von dynamischen, komplexen Szenen, dadurch gekennzeichnet, dass diese aus einem oder mehreren programmgesteuerten Ray-Tracing-Prozessor/en besteht (5 / 11), dessen/deren Funktionsumfang mittels hardwareimplementierter Traversierungs-Befehle und/oder Vektorarithmetikbefehle und/oder Befehle zur Erstellung von Ray-Tracing Beschleunigungsstrukturen realisiert wird und/oder dass die Vorrichtung aus hardwarebasierten festverdrahteten oder verknüpften Logikfunktionen besteht (2 / 3 / 4), welche so organisiert sind, dass auf den Ray-Tracing-Verfahren basierende Funktionen bereitgestellt werden und zu deren Realisierung eine oder mehrere Traversierungs-Einheiten und eine oder mehrere Listen-Einheit/en und eine oder mehrere Schnittpunktberechnungs-Einheit/en und ein oder mehrere Transformations-Einheit/en und/oder eine oder mehrere Logikeinheit/en zum Lösen von linearen Gleichungssystemen gebildet werden und die hardwaremäßige Gestaltung der Ray-Tracing-Prozessoren und/oder der Logikfunktionen in einem oder mehreren programmierbaren Logikbaustein/en oder in festverdrahteter integrierter oder diskreter Logik erfolgt.
  2. Vorrichtung gemäß Anspruch 1 dadurch gekennzeichnet, dass die Transformations-Einheit/en funktionell zur Primärstrahlgenerierung und/oder Objektraum-transformation und/oder Normraumtransformation und/oder Reflektionsstrahlberechnung und/oder Lichtstrahlberechnung und/oder Normalentransformation verwendet wird.
  3. Vorrichtung gemäß Anspruch 1 dadurch gekennzeichnet, dass die Logikeinheit/en zum Lösen linearer Gleichungssysteme für die Objektraumtransformation und/oder Normraumtransformation und/oder Normalentransformation verwendet wird.
  4. Vorrichtung gemäß Anspruch 1 dadurch gekennzeichnet, dass die Funktion der Traversierungs-Einheiten und die hardwaremäßige Umsetzung der Traversierungs-Befehle darauf beruht, dass ein Strahl durch eine Beschleunigungsstruktur, welche auf dem k-D Baum-Verfahren oder dem Octreeverfahren oder dem regelmäßigen Grid-Verfahren basiert, traversiert wird und abhängig von der geometrischen Entfernung des darzustellenden Objektes zur Kamera oder Betrachter, in jedem k-D Baum-Knoten oder Octreeknoten oder Gitterknoten vereinfachte Geometriedaten verwendet werden, sobald der betrachtete Strahl einen Großteil des Volumens des aktuellen k-D Baumknoten oder Octreeknoten oder Gitterknoten überdeckt.
  5. Vorrichtung gemäß den Ansprüchen 1 bis 4 dadurch gekennzeichnet, dass die einzelnen Objekte optional mit unterschiedlichem Detaillevel vorliegen und je nach Distanz zur Kamera oder Betrachter mit unterschiedlichen Detaillevels verwendet werden.
  6. Vorrichtung gemäß den Ansprüchen 1 bis 4 dadurch gekennzeichnet, dass die Schachtelungstiefe der dargestellten Objekte, beliebig viele Stufen von Objekten in Objekten umfassen kann.
  7. Vorrichtung gemäß den Ansprüchen 1 bis 4 dadurch gekennzeichnet, dass jedes Objekt aus jeder Hierarchieebene der Szene von Frame zu Frame verändert, oder dessen geometrische Position und Orientierung verändert werden kann.
  8. Vorrichtung gemäß den Ansprüchen 1 bis 7 dadurch gekennzeichnet, dass ein oder mehrere Ray-Tracing Funktionseinheiten in einem oder mehreren integrierten Chip/s hardwaremäßig realisiert werden und diese parallel arbeiten.
  9. Vorrichtung gemäß Anspruch 8 dadurch gekennzeichnet, dass die einzelnen Funktionseinheiten über eine n-level Cache-Struktur mit dem Hauptspeicher verbunden sind.
  10. Vorrichtung gemäß den Ansprüchen 1 bis 9 dadurch gekennzeichnet, dass die beschriebene Hardware über einen globalen Z-Buffer und Frame-Buffer an eine Standard Rasterisierungshardware angeschlossen ist.
  11. Vorrichtung gemäß den Ansprüchen 1 bis 10 dadurch gekennzeichnet dass sich die Logikfunktionen der Rasterisierungshardware auf dem gleichen Chip wie die Logikfunktionen der Ray-Tracing Hardware oder auf einem separaten Chip befinden.
  12. Vorrichtung gemäß den Ansprüchen 1 bis 11 dadurch gekennzeichnet, dass die Funktionen der Bilddatengenerierung um die Möglichkeit der Darstellung von dreidimensional wahrnehmbaren dynamischen, komplexen Szenen auf einem zweidimensionalen Display erweitert werden, wobei die Darstellung in zwei horizontal versetzten Teilbildern erfolgt und die Darstellungsform der beiden Teilbilder dem Stand der Technik entspricht.
  13. Vorrichtung gemäß den Ansprüchen 1 bis 11 dadurch gekennzeichnet, dass die Funktionen der Bilddatengenerierung um die Möglichkeit der Darstellung von dreidimensional wahrnehmbaren dynamischen, komplexen Szenen auf zwei funktionell zusammenarbeitenden zweidimensionalen Displays erweitert werden, wobei auf jedem Display jeweils ein horizontal versetztes Teilbild dargestellt wird und die Darstellungsform der beiden Teilbilder dem Stand der Technik entspricht.
  14. Vorrichtung gemäß den Ansprüchen 1 bis 13 dadurch gekennzeichnet, dass die Bilddatengenerierung und die Darstellung der dynamischen, komplexen Szenen vorzugsweise in Echtzeit erfolgt.
DE102004007835A 2004-02-17 2004-02-17 Vorrichtung zur Darstellung von dynamischen komplexen Szenen Ceased DE102004007835A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102004007835A DE102004007835A1 (de) 2004-02-17 2004-02-17 Vorrichtung zur Darstellung von dynamischen komplexen Szenen
PCT/DE2005/000266 WO2005078665A1 (de) 2004-02-17 2005-02-16 Vorrichtung zur photorealistischen darstellung von dynamischen komplexen dreidimensionalen szenen mittels des ray-tracing verfahrens
EP05714983A EP1716543A1 (de) 2004-02-17 2005-02-16 Vorrichtung zur photorealistischen darstellung von dynamischen komplexen dreidimensionalen szenen mittels des ray-tracing verfahrens
US10/589,794 US8115763B2 (en) 2004-02-17 2005-02-16 Device for the photorealistic representation of dynamic, complex, three-dimensional scenes by means of ray tracing
JP2006552460A JP4769732B2 (ja) 2004-02-17 2005-02-16 複雑な動的3次元シーンをレイトレーシング法により写真現実的に表示する装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004007835A DE102004007835A1 (de) 2004-02-17 2004-02-17 Vorrichtung zur Darstellung von dynamischen komplexen Szenen

Publications (1)

Publication Number Publication Date
DE102004007835A1 true DE102004007835A1 (de) 2005-09-15

Family

ID=34853504

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004007835A Ceased DE102004007835A1 (de) 2004-02-17 2004-02-17 Vorrichtung zur Darstellung von dynamischen komplexen Szenen

Country Status (5)

Country Link
US (1) US8115763B2 (de)
EP (1) EP1716543A1 (de)
JP (1) JP4769732B2 (de)
DE (1) DE102004007835A1 (de)
WO (1) WO2005078665A1 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7659894B2 (en) * 2000-06-19 2010-02-09 Mental Images Gmbh Terminating spatial partition hierarchies by a priori bounding memory
US8281281B1 (en) * 2006-06-07 2012-10-02 Pixar Setting level of detail transition points
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
US8243081B2 (en) * 2006-08-22 2012-08-14 International Business Machines Corporation Methods and systems for partitioning a spatial index
US20080122838A1 (en) * 2006-09-27 2008-05-29 Russell Dean Hoover Methods and Systems for Referencing a Primitive Located in a Spatial Index and in a Scene Index
US7737974B2 (en) * 2006-09-27 2010-06-15 International Business Machines Corporation Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US7940265B2 (en) * 2006-09-27 2011-05-10 International Business Machines Corporation Multiple spacial indexes for dynamic scene management in graphics rendering
US8089481B2 (en) * 2006-09-28 2012-01-03 International Business Machines Corporation Updating frame divisions based on ray tracing image processing system performance
US8339398B2 (en) * 2006-09-28 2012-12-25 International Business Machines Corporation Integrated acceleration data structure for physics and ray tracing workload
US7940266B2 (en) * 2006-10-13 2011-05-10 International Business Machines Corporation Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US7782318B2 (en) * 2006-11-22 2010-08-24 International Business Machines Corporation Method for reducing network bandwidth by delaying shadow ray generation
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
WO2008067483A1 (en) * 2006-11-29 2008-06-05 University Of Utah Research Foundation Ray tracing a three dimensional scene using a grid
KR100889602B1 (ko) * 2006-12-05 2009-03-20 한국전자통신연구원 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치
US8022950B2 (en) * 2007-01-26 2011-09-20 International Business Machines Corporation Stochastic culling of rays with increased depth of recursion
US8085267B2 (en) * 2007-01-30 2011-12-27 International Business Machines Corporation Stochastic addition of rays in a ray tracing image processing system
WO2008098127A2 (en) * 2007-02-07 2008-08-14 University Of Utah Research Foundation Representing polarized light in computer models
US8018453B2 (en) * 2007-02-09 2011-09-13 International Business Machines Corporation Deferred acceleration data structure optimization for improved performance
US7796128B2 (en) * 2007-02-14 2010-09-14 International Business Machines Corporation Dynamically load balancing game physics using real-time object scaling
US8004518B2 (en) * 2007-02-14 2011-08-23 International Business Machines Corporation Combined spatial index for static and dynamic objects within a three-dimensional scene
US20080192051A1 (en) * 2007-02-14 2008-08-14 David Keith Fowler Expanding Empty Nodes in an Acceleration Data Structure
US8102389B2 (en) * 2007-02-14 2012-01-24 International Business Machines Corporation Box casting using an integrated acceleration data structure
US8259130B2 (en) * 2007-03-29 2012-09-04 International Business Machines Corporation Color buffer contrast threshold for adaptive anti-aliasing
US8259131B2 (en) * 2007-07-31 2012-09-04 International Business Machines Corporation Adaptive sub-sampling for reduction in issued rays
US8284195B2 (en) * 2007-09-13 2012-10-09 International Business Machines Corporation Cooperative utilization of spatial indices between application and rendering hardware
US8996846B2 (en) 2007-09-27 2015-03-31 Nvidia Corporation System, method and computer program product for performing a scan operation
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
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
US8773422B1 (en) 2007-12-04 2014-07-08 Nvidia Corporation System, method, and computer program product for grouping linearly ordered primitives
KR100924122B1 (ko) * 2007-12-17 2009-10-29 한국전자통신연구원 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법
KR101550477B1 (ko) * 2008-03-21 2015-09-04 이메지네이션 테크놀로지스 리미티드 광선 추적 렌더링을 위한 병렬화 교차 테스트 및 세이딩의 아키텍처
US8857028B2 (en) * 2008-07-08 2014-10-14 3M Innovative Properties Company Processes for producing optical elements showing virtual images
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
US8963918B2 (en) * 2008-09-30 2015-02-24 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
US9483864B2 (en) * 2008-12-05 2016-11-01 International Business Machines Corporation System and method for photorealistic imaging using ambient occlusion
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
US8248405B1 (en) * 2009-02-26 2012-08-21 Adobe Systems Incorporated Image compositing with ray tracing
US8570322B2 (en) * 2009-05-12 2013-10-29 Nvidia Corporation Method, system, and computer program product for efficient ray tracing of micropolygon geometry
KR101004110B1 (ko) 2009-05-28 2010-12-27 주식회사 실리콘아츠 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩
KR101076807B1 (ko) * 2009-05-29 2011-10-25 주식회사 실리콘아츠 레이 트레이싱 장치 및 방법
US8952961B2 (en) * 2009-06-29 2015-02-10 Imagination Technologies, Limited Systems and methods for photon map querying
KR101266360B1 (ko) * 2009-08-24 2013-05-22 한국전자통신연구원 전역조명을 지원하는 그래픽 처리 장치 및 이를 이용한 그래픽 처리 방법
US8441482B2 (en) * 2009-09-21 2013-05-14 Caustic Graphics, Inc. Systems and methods for self-intersection avoidance in ray tracing
JP5242628B2 (ja) * 2010-05-06 2013-07-24 株式会社スクウェア・エニックス ゲーム開発におけるプログラマーの生産性を向上させる高級言語
US20110283059A1 (en) * 2010-05-11 2011-11-17 Progeniq Pte Ltd Techniques for accelerating computations using field programmable gate array processors
JP2012181825A (ja) * 2011-02-09 2012-09-20 Canon Inc 画像処理装置およびその方法
US9183667B2 (en) * 2011-07-15 2015-11-10 Kirill Garanzha Out-of-core ray tracing with memory-efficient page generation
WO2013022804A1 (en) * 2011-08-05 2013-02-14 Caustic Graphics, Inc. Systems and methods for 3-d scene acceleration structure creation and updatting
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US9330501B2 (en) * 2012-08-20 2016-05-03 Autodesk, Inc. Systems and methods for augmenting panoramic image data with performance related data for a building
US9805497B2 (en) * 2013-02-05 2017-10-31 Reuven Bakalash Collision-culling of lines over polygons
US11257271B2 (en) 2013-09-26 2022-02-22 Imagination Technologies Limited Atomic memory update unit and methods
KR102285840B1 (ko) * 2013-11-11 2021-08-05 삼성전자주식회사 3차원 영상 렌더링 방법 및 이를 적용한 영상 출력 장치
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
US9552664B2 (en) * 2014-09-04 2017-01-24 Nvidia Corporation Relative encoding for a block-based bounding volume hierarchy
US10235338B2 (en) 2014-09-04 2019-03-19 Nvidia Corporation Short stack traversal of tree data structures
CN105117533B (zh) * 2015-08-03 2018-05-22 常州赞云软件科技有限公司 家装设计软件中光线跟踪算法的加速方法
KR102467031B1 (ko) * 2015-08-31 2022-11-14 삼성전자주식회사 가속 구조를 생성 및 탐색하는 방법
CN116468845A (zh) * 2019-01-07 2023-07-21 北京达美盛软件股份有限公司 一种阴影映射方法及装置
US10902665B2 (en) * 2019-03-28 2021-01-26 Adobe Inc. Rendering images from deeply learned raytracing parameters
EP3940650A1 (de) * 2020-07-14 2022-01-19 Imagination Technologies Limited Verfahren und systeme zur konstruktion von strahlverfolgungsbeschleunigungsstrukturen
EP3940649A1 (de) 2020-07-14 2022-01-19 Imagination Technologies Limited Verfahren und systeme zur konstruktion von strahlverfolgungsbeschleunigungsstrukturen
US11373360B2 (en) 2020-07-30 2022-06-28 Apple Inc. Grouping techniques for ray intersection traversal
US11367242B2 (en) * 2020-07-30 2022-06-21 Apple Inc. Ray intersect circuitry with parallel ray testing
US11895321B2 (en) 2021-03-29 2024-02-06 Qualcomm Incorporated Template matching based advanced motion vector predictor (AMVP) candidate list construction with non-adjacent candidates and AMVP index signaling
GB2608386B (en) * 2021-06-29 2024-05-15 Imagination Tech Ltd Transformation of data in a ray tracing system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6597359B1 (en) * 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305430A (en) * 1990-12-26 1994-04-19 Xerox Corporation Object-local sampling histories for efficient path tracing
US5442733A (en) * 1992-03-20 1995-08-15 The Research Foundation Of State University Of New York Method and apparatus for generating realistic images using a discrete representation
JPH06242951A (ja) * 1992-12-22 1994-09-02 Toshiba Corp キャッシュメモリシステム
JPH06223198A (ja) 1993-01-26 1994-08-12 Hitachi Ltd 光線追跡による画像生成装置及び方法
DE4331715C2 (de) 1993-09-17 1997-01-02 Zeiss Carl Fa Shutterbrille
DE4417664C1 (de) 1994-05-20 1994-12-15 Zeiss Carl Fa Vorrichtung mit mindestens zwei benachbart aufgestellten Bildschirm-Monitoren mit unterschiedlichem Display-Modus und Verfahren zu deren Betrieb
GB9424273D0 (en) * 1994-12-01 1995-01-18 Wrigley Adrian M T Improvements in and relating to image constrcution
IL119082A (en) * 1996-08-16 2001-04-30 Virtue Ltd A method for creating graphic characters
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
DE19737449A1 (de) 1997-08-22 1999-02-25 Hertz Inst Heinrich Vorrichtung zum Nachführen eines autostereoskopischen Flachbildschirms
DE19753040C2 (de) 1997-11-19 2001-12-20 Fraunhofer Ges Forschung Anordnung zur Erzeugung eines Eindrucks von 3D-Bildern für die visuelle Wahrnehmung
US6570578B1 (en) * 1998-04-03 2003-05-27 Avid Technology, Inc. System for automatic generation of selective partial renderings of complex scenes
US6091422A (en) * 1998-04-03 2000-07-18 Avid Technology, Inc. System for editing complex visual data providing a continuously updated rendering
DE19827590C2 (de) * 1998-06-20 2001-05-03 Christoph Grosmann Verfahren und Vorrichtung zur Autostereoskopie
JP3889195B2 (ja) * 1999-02-03 2007-03-07 株式会社東芝 画像処理装置、画像処理システムおよび画像処理方法
US6556200B1 (en) * 1999-09-01 2003-04-29 Mitsubishi Electric Research Laboratories, Inc. Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data
US6466227B1 (en) 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
EP1152331B1 (de) * 2000-03-16 2017-11-22 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Paralleles Aufgabenverarbeitungssystem und -verfahren
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
US6664961B2 (en) * 2000-12-20 2003-12-16 Rutgers, The State University Of Nj Resample and composite engine for real-time volume rendering
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
US6956570B2 (en) * 2001-06-27 2005-10-18 Believe, Inc. Object visibility control for ray tracing
US7046827B2 (en) * 2002-02-15 2006-05-16 International Business Machines Corporation Adapting point geometry for storing address density
US20030160788A1 (en) * 2002-02-28 2003-08-28 Buehler David B. Pixel pruning and rendering apparatus and method
US7009608B2 (en) * 2002-06-06 2006-03-07 Nvidia Corporation System and method of using multiple representations per object in computer graphics
US6868420B2 (en) * 2002-07-31 2005-03-15 Mitsubishi Electric Research Laboratories, Inc. Method for traversing quadtrees, octrees, and N-dimensional bi-trees
DE10239672B4 (de) * 2002-08-26 2005-08-11 Universität des Saarlandes Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
US20040233222A1 (en) * 2002-11-29 2004-11-25 Lee Jerome Chan Method and system for scaling control in 3D displays ("zoom slider")
US7164420B2 (en) * 2003-07-24 2007-01-16 Autodesk, Inc. Ray tracing hierarchy
US7212207B2 (en) * 2003-08-20 2007-05-01 Sony Computer Entertainment Inc. Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing
US7483024B2 (en) * 2003-12-31 2009-01-27 Autodesk, Inc. Accelerated ray-object intersection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6597359B1 (en) * 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jeffrey GOLDSMITH, John SALMON: "Automatic Creation of Object Hierarchies for Ray Tracing", 1987, IEEE Computer Graphics and Applications, Vol. 7 (5) 14-20, DOI: 10.1109/MCG.1987.276983; *
Joshua FENDER, Jonathan ROSE: "A High-Speed Ray Tracing Engine Built on a Field-Programmable System", Field-Programmable Technology (FPT), 2003, S. 188-195, DOI: 10.1109/FPT.2003.1275747 *

Also Published As

Publication number Publication date
US8115763B2 (en) 2012-02-14
EP1716543A1 (de) 2006-11-02
JP4769732B2 (ja) 2011-09-07
US20070182732A1 (en) 2007-08-09
JP2007522567A (ja) 2007-08-09
WO2005078665A1 (de) 2005-08-25

Similar Documents

Publication Publication Date Title
DE102004007835A1 (de) Vorrichtung zur Darstellung von dynamischen komplexen Szenen
DE102019103059B4 (de) Hieb- und stichfester Strahl-Dreieck-Schnittpunkt
DE102018114929B4 (de) System und verfahren für ein rendering eines lichtfeldes
DE102019102821A1 (de) Verfahren zur behandlung von ungeordneten opak- und alphastrahl/primitiv-schnittpunkten
US8243081B2 (en) Methods and systems for partitioning a spatial index
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
DE60033250T2 (de) System und Verfahren zur Darstellung mit Strahlverfolgung
DE102019103326A1 (de) Robuste, effiziente multiprozessor-koprozessor-schnittstelle
DE102019103058A1 (de) Verfahren für fortgesetzte begrenzungsvolumenhierarchietraversierung auf schnittpunkte ohne shader-intervention
DE102019103178A1 (de) Verfahren für vorankommen und programmierbare timeouts von baumtraversierungsmechanismen in hardware
DE102019103336A1 (de) Verfahren zum effizienten gruppieren von cache-anforderungen für datenpfad-scheduling
US20080122838A1 (en) Methods and Systems for Referencing a Primitive Located in a Spatial Index and in a Scene Index
DE102021205824A1 (de) Techniken zur traversierung von bei raytracing verwendeten daten
DE102021115407A1 (de) Hardwarebeschleunigung zur strahlverfolgung von primitiven, die vertices teilen
DE102021205758A1 (de) Hardware-beschleunigung für strahlverfolgung mit transformationen in alternativen weltraum
DE112022004435T5 (de) Beschleunigung von Dreieckssichtbarkeitstests für Echtzeit-Strahlenverfolgung
DE102021115353A1 (de) Strahlverfolgung-hardwarebeschleunigung zur unterstützung von bewegungsunschärfe und sich bewegender/verformender geometrie
DE102021114847A1 (de) Verbesserte techniken zum traversieren von strahlverfolgungs-beschleunigungsstrukturen
DE102021205765A1 (de) Hardwarebasierte techniken der strahlverfolgung zur effizienten darstellung und verarbeitung eines beliebigen hüllkörpers
DE102013017639A1 (de) Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichen L2-Cache-Speicher mit Oberflächenkomprimierung
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102019102009A1 (de) Reduzierung des rauschens während des renderings durch parallele path-space-filterung unter verwendung von hashing
DE112017003841T5 (de) Verfahren und vorrichtung für die korrekte reihung und nummerierung mehrerer aufeinanderfolgender strahl-oberflächen-schnittpunkte innerhalb einer raytracing-architektur
DE102013018445A1 (de) Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit
DE102019101871A1 (de) Verfahren und Vorrichtung zum Gewinnen von Abtastpositionen von Textuieroperationen

Legal Events

Date Code Title Description
8122 Nonbinding interest in granting licences declared
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: JORDAAN CONSULTING LTD.V,LLC, WILMINGTON, DEL., US

8128 New person/name/address of the agent

Representative=s name: DENDORFER & HERRMANN PATENTANWAELTE PARTNERSCHAFT,

8131 Rejection