DE10239672A1 - Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur - Google Patents

Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur Download PDF

Info

Publication number
DE10239672A1
DE10239672A1 DE10239672A DE10239672A DE10239672A1 DE 10239672 A1 DE10239672 A1 DE 10239672A1 DE 10239672 A DE10239672 A DE 10239672A DE 10239672 A DE10239672 A DE 10239672A DE 10239672 A1 DE10239672 A1 DE 10239672A1
Authority
DE
Germany
Prior art keywords
tree
units
cut
cache
objects
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.)
Granted
Application number
DE10239672A
Other languages
English (en)
Other versions
DE10239672B4 (de
Inventor
Jörg Dipl.-Inform. Schmittler
Ingo Dipl.-Inform. Wald
Philipp Prof. Dr.-Ing. Slusallek
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
Max Planck Gesellschaft zur Foerderung der Wissenschaften eV
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
Priority to DE10239672A priority Critical patent/DE10239672B4/de
Application filed by Max Planck Gesellschaft zur Foerderung der Wissenschaften eV, Universitaet des Saarlandes filed Critical Max Planck Gesellschaft zur Foerderung der Wissenschaften eV
Priority to EP03790730A priority patent/EP1532586A2/de
Priority to JP2004531696A priority patent/JP4348728B2/ja
Priority to US10/526,055 priority patent/US7289118B2/en
Priority to PCT/DE2003/002801 priority patent/WO2004021274A2/de
Priority to US12/608,864 priority patent/USRE44347E1/en
Priority to AU2003266174A priority patent/AU2003266174A1/en
Publication of DE10239672A1 publication Critical patent/DE10239672A1/de
Application granted granted Critical
Publication of DE10239672B4 publication Critical patent/DE10239672B4/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

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

Abstract

Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur zweidimensionalen Abbildung einer dreidimensionalen Welt, bei der beim Ray Tracing Strahlen zu Paketen zuammengefasst werden und diese Pakete von Strahlen in geeigneten Arbeitsschritten abgearbeitet werden.

Description

  • Ein derartiges Verfahren und eine derartige Vorrichtung bezieht sich auf ein Verfahren und eine Vorrichtung zur Erzeugung eines zweidimensionalen Abbildes von einer dreidimensionalen Welt. Die Erfindung betrifft insbesondere das Erzeugen von Bildern mit dem Verfahren der Strahlverfolgung, das in Fachkreisen umgangssprachlich als "Ray Tracing" bezeichnet wird.
  • In der Computer-Technik werden dreidimensionale Körper, Bauteile, Geräte, Häuser oder gar Welten durch geometrische Beschreibungen spezifiziert. Diese Beschreibungen enthalten neben der reinen Geometrie zumeist auch Informationen über die Materialien und Lichtquellen. Eine der häufigsten Anwendungen im Zusammenhang mit geometrischen Beschreibungen ist das Erzeugen von einem zweidimensionalen Abbild einer solchen dreidimensionalen Beschreibung. Hierbei kann man sich die Problematik wie folgt verdeutlichen:
    "Wenn man in dieser virtuellen dreidimensionalen Welt eine virtuelle Kamera platziert und diese ein Foto machen lässt, wie sieht dieses Foto aus? "
  • Zur Lösung dieses Problems sind eine Vielzahl von Verfahren bereits bekannt. Eines der bekanntesten ist das Strahlverfolgungs Verfahren (engt. Ray Tracing). Dieses wurde nach Kenntnis der Erfinder erstmals 1968 von Arthur Appel: "Some Techniques for Shading Machine Renderings of Solids", Proceedings of "AFIPS 1968 Spring Joint Computer Conference", Band 32, Seiten 37-45 vorgestellt und seit dem von einer Vielzahl von Wissenschaftlern weiterentwickelt.
  • Eine weitergehende Darstellung zu dem Thema Ray Tracing kann beispielsweise in Andrew S. Glassner (Editor): "An Introduction to Ray Tracing", Academic Press, ISBN 0-12-286160-4 gefunden werden. Weitere Erläuterungen finden sich in der Figurenbeschreibung im Zusammenhang mit der 1.
  • Der vorliegenden Erfindung liegt die Aufgabe zu Grunde, ein Verfahren sowie eine Vorrichtung zur Durchführung des Verfahrens vorzuschlagen, mit dem die Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Welt vereinfacht werden soll. Dabei sollen Ressourcen eines Computers effizienter genutzt werden als dies bei bisher bekannten Verfahren der Fall war.
  • Zum Verständnis seien für den Zusammenhang dieser Patentanmeldung folgende Definitionen erläutert.
  • Die geometrische Beschreibung einer virtuellen dreidimensionalen Welt enthält mindestens folgende Bestandteile:
    • – Ein oder mehrere Objekte, deren Geometrie auf verschiedene Arten spezifiziert sein kann 1. einfache geometrische Grundkörper, wie z.B. Dreiecke, Kugeln oder Quader 2. durch mathematische Funktionen (z.B. Vereinigung oder Schnittmenge) zusammengesetzte Grundkörper 3. durch mathematische Funktionen beschriebene Körper, z.B. Spline-Flächen 4. durch einen Datensatz beschriebene Körper, z.B. Daten aus einem Kernspin-Tomographen
    • – Eine Beschreibung der Materialeigenschaften der Objekte, wie z.B. "Objekt ist blau", "Objekt ist aus Glas", "Objekt besitzt spiegelnde Oberfläche". Die Beschreibung der Materialeigenschaften kann dabei auch durch numerische Parameter oder durch definierte Berechnungsvorschriften erfolgen.
    • – Eine baumartige Datenstruktur, die dazu dient, Objekte der virtuellen Welt nach ihrer räumlichen Lage zu klassifizieren. Mit baumartigen Datenstrukturen werden hierbei sowohl Baumstrukturen als auch gerichtete azyklische Graphen bezeichnet.
  • Komplexe Objekte können dabei wiederum eine baumartige Datenstruktur besitzen, die das komplexe Objekt räumlich aufteilt oder beispielsweise in einfachere Teilobjekte räumlich oder logisch unterteilt. Im Kontext dieser Patentanmeldung wird im Folgenden nicht zwischen einfachen Grundobjekten und komplexen Objekten wie beispielsweise zusammen gesetzten oder solchen mit baumartigen Strukturen unterschieden. Beide Fälle werden mit "Objekt" bezeichnet.
  • Zusätzlich zu oben beschriebenen Eigenschaften können Objekte auch eine Transformation besitzen. Diese Transformation kann beispielsweise mit Hilfe einer Transformationsmatrix eine affine Transformation des entsprechenden Objektes in der dreidimensionalen Welt beschreiben und ändert damit die Koordinaten des Objektes.
  • Unabhängig von diesen Transformationen kann zu einem Objekt zusätzlich auch eine Anweisungsfolge spezifiziert werden. Diese Anweisungsfolge kann die Eigenschafen des Objektes verändern. Hierzu zählen die geometrischen Eigenschaften (bei einer Kugel beispielsweise ihr Radius) und die Materialeigenschaften (beispielsweise ihre Farbe).
  • Zudem kann auch die Beleuchtungssituation in der virtuellen Welt spezifiziert werden.
  • Die baumartige Datenstruktur ist aus folgenden Komponenten aufgebaut:
    • – Baumknoten: Jeder Knoten im Baum beschreibt die Lage einer achsenparallelen Teilungsebene im dreidimensionalen Raum.
    • – Baumblatt: Jedes Btatt des Baums beschreibt den Inhalt eines Raumvolumens. Das Raumvolumen kann dabei ein oder mehrere Objekte enthalten oder auch leer sein.
    • – Platzhalter: Ein Platzhalter kann anstelle eines Baumknotens, Baumblatts oder eines Objektes stehen. Ein Platzhalter besteht aus zwei Teilen: Einem Stellvertreter, der ein Objekt enthält, und einem Ersatzobjekt. Das Ersatzobjekt wird durch eine Folge von Anweisungen spezifiziert, kann aber zusätzlich auch noch Objekte und baumartige Strukturen sowie weitere Platzhalter enthalten. Werden die Anweisungen ausgeführt, so können dabei neue Baumknoten, Baumblätter, Baumkanten, Objekte und Platzhalter entstehen, die nach vollständiger Ausführung der Anweisungen den Stellvertreter ersetzen.
    • – Baumkanten: Diese Kanten stellen die Verbindungen zwischen den Komponenten dar.
  • Solche baumartigen Datenstrukturen sind in der Computer-Technik bekannt, bestehen dort aber nur aus Baumknoten, Baumblättern und Baumkanten. Der vorliegenden Erfindung am nächsten sind dabei die KD Bäume, die ihrerseits mit den BSP-Bäumen verwandt sind. Insbesondere die Erweiterung um Platzhalter im Zusammenhang mit dem Ray Tracing Verfahren wurde im Rahmen dieser Erfindung gemacht. Ebenfalls Bestandteil der Erfindung ist die Zusammenstellung der Definition von Objekten. Als Gesamtheit, die alle möglichen Eigenschaften gleichartig unterstützt und vereint, ist diese Definition neuartig.
  • Die Definitionen werden zum besseren Verständnis nochmals im Zusammenhang mit 3 erläutert.
  • Die oben genannte Aufgabe wird erfindungsgemäß nach Anspruch 1 gelöst, wonach ein Ray Tracing Verfahren verwendet wird. Das Ray Tracing Verfahren bedeutet, das bei dessen Durchführung mindestens ein Teil der geometrischen Beschreibung der Welt mit Strahlen geschnitten wird, wobei aus Schnittpunkten von Objekten der Welt mit den Strahlen die zweidimensionale Abbildung zusammen gesetzt wird. Weiterhin werden mehrere Strahlen zu einem Paket von diskreten Strahlen zusammen gefasst. Dabei erfolgt dann eine Assoziation einer Datenstruktur mit jedem Paket von diskreten Strahlen. Zu dieser Datenstruktur wird eine zustandsmäßige Zuordnung zu jedem Strahl gespeichert. Dieser Zustand gibt mindestens an, ob der bezeichnete Strahl an der Operation, die zu diesem Zeitpunkt auf das Paket angewendet wird, teilnimmt. Es erfolgt weiterhin die Anwendung aller Arbeitsschritte des Verfahrens auf ein Paket von mehreren diskreten Strahlen. Dabei wird in einem Arbeitsschritt, der eine Operation auf einem Paket ausführt, diese Operation auf jedem Strahl des Paketes ausgeführt, falls sich aus der gespeicherten zustandsmäßigen Zuordnung des Strahl zu der Datenstruktur ergibt, dass der betreffende Strahl an dieser Operation teilnimmt. Die Gliederung des Ray-Tracing Verfahrens erfolgt dabei in die folgenden Arbeitsschritte, die für ein Paket von Strahlen jeweils nacheinander abgearbeitet werden:
    • A Kamerastrahlerzeugung: Erzeugung eines Pakets von Strahlen, die von der virtuellen Kamera ausgehend mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen.
    • B Baumtraversierung: Gemäß der räumlichen Orientierung der Strahlen wird die Baumdatenstruktur für die Geometrie der dreidimensionalen Welt durchlaufen, bis ein Baumblatt oder ein Platzhalter erreicht wird. Hierzu werden Baumknoten und Platzhalter aus einem Speicher gelesen und Berechnungen durchgeführt. Wird ein Platzhalter erreicht, so wird die entsprechende Anweisungsfolge des Ersatzobjektes ausgeführt. Hierbei wird der Platzhalter durch ein Objekt ersetzt, das auch komplex sein kann. Dabei stehen zwei Alternativen zur Verfügung: Entweder wird zuerst die Anweisungsfolge vollständig ausgeführt und anschließend entsprechend der neuen Struktur des Baums das Verfahren fortgesetzt oder die Anweisungsfolge wird asynchron ausgeführt, wobei das Verfahren direkt mit dem Stellvertreter des Platzhalters fortgesetzt word und bei vollständiger Abarbeitung der Anweisungsfolge des Ersatzobjekts durch das Ergebnis dieser Abarbeitung ersetzt wird.
    • C Einlesen des Baumblatts: Aus einem Speicher werden alle Referenzen der Objekte und Platzhalter, die sich in diesem Baumblatt befinden, eingelesen. Wird dabei ein Platzhalter eingelesen, so wird die entsprechende Anweisungsfolge ausgeführ.
    • D Schneiden aller Objekte: Einlesen und Schneiden aller Objekte, die in Arbeitsschritt C spezifiziert wurden, mit dem Paket von Strahlen. Wurde zu einem Objekt eine Transformation spezifiziert, so wird diese angewendet, bevor der Schnitt mit dem Objekt berechnet wird. Wurde zu einem Objekt eine geometrieverändernde Anweisungsfolge spezifiziert, so wird diese ausgeführt, bevor der Schnitt mit dem Objekt berechnet wird. Falls ein zu schneidendes Objekt ein komplexes Objekt mit eigener Baumstruktur ist, das traversiert werden muss, dann wird dieses Objekt geschnitten, indem die Arbeitsschritte B – F, angepasst an das komplexe Objekt, ausgeführ werden.
    • E Schnittauswertung: Auswerten, ob für das Paket von Strahlen gültige Schnittpunkte vorliegen. Falls es noch Elemente des Baums gibt, die für einen Strahlschnitt in Frage kommen, aber noch nicht untersucht wurden und der vorangegangene Arbeitsschritt nicht in ausreichender Menge gültige Schnittpunkte ergeben hat, dann wird unter Einbeziehung der bisherigen Ergebnisse bei Arbeitsschritt B erneut eingesetzt, ansonsten mit Schritt F fortgefahren. Hierbei wird gegebenenfalls der Zustand des Pakets geändert.
    • F Bestimmung der Objekteigenschaften: Die Ergebnisse der vorangegangenen Arbeitsschritte werden ausgewertet. Dabei können Daten von Objekten aus einem Speicher gelesen werden, falls diese einen gültigen Schnittpunkt mit einem der Strahlen haben. Die Ergebnisse der Berechnungen fließen in Schritt G ein und bei entsprechenden Ergebnissen können Werte in einen Speicher neu berechnet werden. Wurde zu einem der Objekte, die von einem Strahl geschnitten wurden, eine materialverändernde Anweisungsfolge spezifiziert, und sind die Materialeigenschaften dieses Objekts fiir den Arbeitsschritt F oder G von Bedeutung, so wird diese Anweisungsfolge vor den Berechnungen des Arbeitsschnitts F ausgeführt.
    • G Folgestrahlerzeugung: Wird in Schritt F berechnet, dass ein oder mehrere weitere Strahlen mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen, dann werden in diesem Schritt entsprechende Pakete von Strahlen berechnet und das Verfahren setzt für diese Strahlen bei Arbeitsschritt B erneut an. Ansonsten wird wieder bei Schritt A eingesetzt, falls zur Ausbildung der zweidimensionalen Abbildung noch weitere Kamerastrahlen erzeugt werden müssen.
  • Damit wird ein Verfahren zur Ausbildung von einer zweidimensionalen Abbildung einer virtuellen dreidimensionalen Welt beschrieben. Hierbei ist die dreidimensionale Welt nach obigen Definitionen spezifiziert. Das Verfahren zeichnet sich durch eine neuartige Technik zur Datenreduktion aus, ohne unnötige Berechnungen zu bedingen. Bei dieser Technik werden einzelne Strahlen zu einem Paket von Strahlen zusammengefasst, wie bereits in Ingo Wald, Carsten Benthin, Markus Wagner, Philipp Slusallek: "Interactive Rendering with Coherent Ray-Tracing", Computer Graphics Forum / Proceedings of the EUROGRAPHICS 2001, Manchster, United Kingdom, September 3-7, 2001, http://graphics. cs. unisb.de/Publications/2001/InteractiveRenderingWithCoherentRayTracing.pdf beschrieben.
  • Eine neuartige und erfinderische Erweiterung gegenüber dem in der genannten Veröffentlichung beschriebenen Verfahren besteht durch die Assoziation einer Datenstruktur mit jedem dieser Pakete. Diese Datenstruktur enthält dabei den Zustand jedes Strahls eines Pakets. Weiterhin werden die einzelnen Arbeitsschritte des Ray Tracing Verfahrens derart gegliedert, dass sie die neue Technik optimal unterstützen und sich gleichzeitig besonders eigenen, um gerätetechnisch umgesetzt zu werden.
  • Zur Verdeutlichung sei auf die nachfolgenden Ausführungen im Zusammenhang mit 3 verwiesen, in denen erläutert wird, wie die Berechnung abläuft, wenn die Strahlen R1 und R2 zu einem Paket zusammengefasst werden.
  • Bei der Abarbeitung des Verfahrens bietet sich die Möglichkeit, ein Paket genau einem Arbeitsschritt zuzuordnen, um damit einen strukturierten Ablauf zu erreichen.
  • Ein Paket kann aber auch mehreren Arbeitsschritten gleichzeitig zugeordnet sein, um dadurch eine bessere Auslastung der Datenverarbeitungsanlage zu erreichen. Beispielsweise könnte die Bearbeitung von Strahlen, für die bereits in Schritt E gültige Schnittpunkte berechnet wurden, mit Schritt F fortfahren, während für die anderen Strahlen die Berechnung mit Schritt B fortgeführt wird. Sobald dann alle Strahlen des Pakets die Berechnungen in Schritt F ausgeführt haben, könnte das Paket wieder geschlossen mit der Bearbeitung von Schritt G fortfahren.
  • Bei der Ausgestaltung des Verfahrens nach Anspruch 2 werden die in Arbeitsschritt G erzeugten Strahlen durch einen weiteren Arbeitsschritt in neue Pakete zusammengefasst. Dabei werden alle neu erzeugten Strahlen gesammelt, sortiert zu neuen Paketen von diskreten Strahlen zusammen gestellt.
  • Hierbei enthält ein neues Paket nicht unbedingt nur Strahlen, die aufgrund von Berechnungsergebnissen genau eines Vorgänger-Strahlenpaketes erzeugt wurden, vielmehr kann der Arbeitschritt des Sammelns und Umsortierens neu erzeugte Strahlen von mehreren Vorgänger-Strahlpaketen, die logisch zusammenhängen, zu neuen Paketen kombinieren.
  • In Zusammenhang mit Anspruch 1, insbesondere auch bei den Ausführungen zu 3 wurde beschrieben, wie sich der Effekt der Datenreduktion beim Traversieren von Paketen auswirkt und dadurch auch eine Datenreduktion für die Schritte C (Einlesen des Baumblatts), D (Schneiden aller Objekte) und E (Schnittauswertung) zur Folge hat. Dieser Effekt tritt nicht auf, wenn die Pakete ungünstig aus Strahlen zusammengestellt werden.
  • Besucht beispielsweise der Strahl R1 die Baumkomponenten {N1, N2, V1} und der Strahl R2 die Baumkomponenten {N3, V2}, so wird durch das Traversieren des Paketes keine Datenreduktion gegenüber einer Traversierung der einzelnen Strahlen erreicht.
  • Anspruch 2 beschreibt hier vorteilhaft einen Arbeitsschritt, der das in Anspruch 1 beschriebene Verfahren erweitert und neu erzeugte Strahlen derart zu Paketen zusammenfasst, dass eine Datenreduktion bei der Traversierung der Pakete gegenüber der Traversierung der einzelnen Strahlen erreicht wird.
  • Bei der Ausgestaltung des Verfahrens nach Anspruch 3 wird ein Multi-Threading Verfahren eingesetzt, wobei jeweils ein Paket von Strahlen als ein Thread betrachtet wird.
  • Das Multi-Threading Verfahren wird innerhalb eines Arbeitsschritts eingesetzt, um Funktionseinheiten sinnvolle Arbeiten verrichten zu lassen, während sie auf Ergebnisse von anderen Funktionseinheiten warten. Hierbei hält jeder Arbeitsschritt einen Vorrat von Paketen, den die Funktionseinheiten des Arbeitsschritts abwechselnd abarbeiten.
  • In einigen Arbeitsschritten werden Daten aus einem Speicher geladen. Üblicher Weise dauert das Laden von Daten aus einem Speicher einige Zeiteinheiten. Da aber noch auf die zu ladenden Daten gewartet werden muss bevor die Berechnungen ausgeführt werden können, vergeht diese Wartezeit, ohne dass sinnvolle Berechnungen ausgeführt werden können. Wenn einem Arbeitsschritt mehrere Pakete gleichzeitig zugeordnet sind, dann könnte der Ablauf einer Berechnung folgender Maßen aussehen:
    Für Paket 1 wird berechnet, welches Datum aus dem Speicher geladen werden soll. Danach wird für Paket 1 das Datum aus dem Speicher geladen und zeitgleich für Paket 2 berechnet, welches Datum für Paket 2 aus dem Speicher geladen werden soll. Wenn dann das Datum aus dem Speicher für Paket 1 geladen wurde, kann die Berechnung für Paket 1 ausgeführt werden. Zeitgleich wird für Paket 2 das entsprechende Datum aus dem Speicher geladen und für Paket 3 berechnet, welches Datum das Paket 3 aus dem Speicher laden möchte, u.s.w.
  • Vorteilhaft wird also im Zusammenhang mit dem beschriebenen Verfahren ein Paket als ein Thread klassifiziert.
  • Gemäß Anspruch 4 ist das Verfahren so ausgestaltet, dass die Menge der Daten der dreidimensionalen Welt derart verwaltet wird, dass zu einem Zeitpunkt nur ein Teil dieser Daten im Speicher gehalten wird.
  • Dabei werden vorteilhaft stets die Daten ganzer Objekte bzw. ganzer Teilobjekte in den Speicher geladen, bzw. aus dem Speicher entfernt, um Platz für neu benötigte (Teil-) Objekte zu schaffen. Hierbei kann das Verfahren so ausgestaltet werden, dass hierfür ein eigenständiger Arbeitsschritt realisiert wird, in dem protokolliert wird, auf welche (Teil-) Objekte wann und wie oft zugegriffen wurde. Weiterhin können in diesem Arbeitsschritt die gesammelten Informationen verwendet werden, um selbsttätig den Speicher zu verwalten und bei Bedarf neue Teile der dreidimensionalen Welt in den Speicher zu laden und zu entfernen.
  • Eine virtuelle Welt kann also aus einer Vielzahl von Objekten bestehen. Dabei kann die Beschreibung der virtuellen Welt so viele Daten umfassen, dass sie sehr viel Speicher benötigt. Beispielsweise in einer Datenverarbeitungsanlage befinden sich mehrere Speicher unterschiedlicher Größe und Geschwindigkeit. Da große Speicher meist wesentlich langsamer sind als kleinere, aber die Geschwindigkeit des Speichers für die zum Abarbeiten des Verfahrens benötigte Zeitdauer eine wichtige Rolle spielt, ist es wünschenswert, alle für das Verfahren wichtigen Daten in einem schnellen Speicher zu halten.
  • Mit dem Verfahren nach Anspruch 4 lässt sich also ein Management der unterschiedlichen Speicher organisieren, mit dein erreichbar wird, dass nach Möglichkeit immer alle aktuell benötigten Daten in einem schnellen Speicher vorgehalten werden. Dazu protokolliert das Verfahren, welche Objekte oder Teilobjekte wann und wie oft gelesen wurden und lädt bei Bedarf neue (Teil-) Objekte aus einem langsamen Speicher in den schnellen Speicher. Ist der schnelle Speicher voll, so kann das Verfahren Anhand der Buchführung nicht mehr benötigte (Teil-) Objekte ausfindig machen und aus dem schnellen Speicher löschen, damit Platz für die benötigten Daten geschaffen wird. Wichtig ist hierbei auch, dass das Verfahren aus einem der Ansprüche 1, 2 oder 3 nur lesend auf die Daten der virtuellen Welt zugreift und damit nie der Fall auftreten kann, dass die Daten im schnellen Speicher verändert wurden und in den langsamen Speicher zurückgeschrieben werden müssen, bevor sie gelöscht werden können.
  • Es ist auch möglich, die Daten- und Speicherverwaltung so zu organisieren, dass dabei stets Blöcke von Daten in den Speicher geladen, bzw. aus dem Speicher entfernt werden, um Platz für neu benötigte Daten zu schaffen. Auch hierbei kann ein eigenständiger Arbeitsschritt realisiert werden, in dem protokolliert wird, auf welche Blöcke wann und wie oft zugegriffen wurde. Weiterhin können in diesem Arbeitsschritt die gesammelten Informationen verwendet werden, um selbsttätig den Speicher zu verwalten und bei Bedarf neue Teile der dreidimensionalen Welt in den Speicher zu laden und zu entfernen.
  • Bei dieser Alternative besteht zu der vorher im Zusammenhang mit Anspruch 4 erläuterten Variante der Unterschied darin, dass nicht ganze Objekte oder Teilobjekte aus einem langsamen Speicher gelesen oder im schnellen Speicher gelöscht werden, sondern dass die Daten der virtuellen Welt in Blöcke unterteilt werden und diese Blöcke bei Bedarf in den schnellen Speicher gelesen oder aus ihm gelöscht werden. Insbesondere kann durch diese Unterteilung ein Objekt in mehrere Blöcke gegliedert sein. Der Vorteil dabei ist, dass bei einer festen Größe der Blöcke immer die gleiche Anzahl von Datenelementen aus einem Speicher gelesen oder gelöscht werden. Bei dem Verfahren aus Anspruch 4 kann die Anzahl der gelesenen oder gelöschten Datenelemente sehr stark mit dem jeweiligen Objekt schwanken.
  • Anspruch 5 betrifft eine Vorrichtung zur Durchführung eines der vorgenannten Verfahren, wobei die einzelnen Arbeitsschritte durch eigenständige Funktionsgruppen dargestellt sind.
  • Diese Funktionsgruppen bilden also vorteilhaft geschlossene Einheiten, die so durch derartige Management-Funktionen erweitert sind, dass weitere gleicharige Einheiten dem System hinzugefügt werden können und dadurch eine Steigerung der Leistung des Systems erreicht werden kann.
  • Hierbei können die Funktionsgruppen zusätzlich mit Funktionen zum Management ausgestattet werden, so dass mehrere gleichartige Funktionsgruppen in einem Gerät vereint werden können und dainit die Leistungsfähigkeit des Geräts gesteigert werden kann. Um zu erreichen, dass durch die Hinzunahme von gleichartigen Funktionsgruppen eine Steigerung der Leistungsfähigkeit des Geräts erzielt werden kann, müssen die Funktionsgruppen in geeigneter Weise angeordnet werden, damit die nötigen Berechnungsschritte gleichmäßig auf alle zur Verfügung stehenden Einheiten verteilt werden.
  • Daneben können die Funktionsgruppen zusätzlich das Pipelining Verfahren einsetzen, bei dem sich gleichzeitig mehrere Pakete im Verfahren befinden. Beim Pipelining Verfahren werden nicht einzelne Pakete nacheinander berechnet sondern es können sich mehrere Pakete gleichzeitig im Verfahrensablauf und in unterschiedlichen Arbeitsschritten befinden. Beispielsweise könnte Paket 1 in Arbeitsschritt A erzeugt werden. Während danach die Berechnungen für Paket 1 in Arbeitsschritt B ausgeführt werden, könnte in Schritt A das Paket 2 erzeugt werden. Ist die Berechnung von Paket 1 in Schritt B fertig, gelangt das Paket 1 in den Arbeitsschritt C und das Paket 2 kann in Schritt B bearbeitet werden, während in Schritt A das Paket 3 erzeugt wird, u. s. w.
  • Das Pipelining Verfahren kann auch direkt in Verbindung mit dem Multi-Threading Verfahren eingesetzt werden. Dabei erhält dann jeder Arbeitsschritt eine Menge von Threads, die von ihm abwechselnd bearbeitet werden. Nachdem die Bearbeitung eines Threads in einem Arbeitsschritt abgeschlossen ist, wird dieser Thread an den nächsten Arbeitsschritt weiter gegeben und dieser führt dann diesen Thread zusammen mit denen nacheinander aus, die ihm bereits zugeordnet sind. Beide Verfahren zusammen erlauben eine sehr hohe Auslastung der Funktionseinheiten eines Gerätes.
  • Anspruch 6 betrifft eine Vorrichtung zur Durchführung eines der vorgenannten Verfahren, wobei die einzelnen Arbeitsschritte folgender Maßen zu Funktionsgruppen zusammen gefasst sind:
    • – RGS: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte A, F und G und erweitert diese um Einheiten zum Management von Untereinheiten. – Master: Koordiniert die Arbeit der Slave-Funktionseinheiten. – Slave: Enthält Einheiten für die Arbeitsschritte A, F und G. – MemInt: Koordiniert den Zugriffvon Slave-Einheinten auf externen Speicher.
    • – RTC: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte B, C, D und E. – Traversal: Funktionseinheit, die die Arbeitsschritte B und E umfasst. – List: Funktionseinheit für den Arbeitsschritt C. – Intersection: Funktionseinheit für den Arbeitsschritt D,
    • – RTC-MI: Koordiniert und regelt alle Zugriffe der RTC-Einheiten auf externe Speichereinheiten. – T-SR: Koordiniert den Zugriff von Traversal-Einheiten auf den T-Cache. – T-Cache: Führt Buch über vorangegangene Traversal-Zugriffe und versucht, neue Zugriffe zu vermeiden, in dem es die vorangegangenen Ergebnisse wiederverwertet. – L-SR: Koordiniert den Zugriffvon List-Einheiten auf den L-Cache. – L-Cache: Analog zu T-Cache für List-Zugriffe. – I-SR: Koordiniert den Zugriff von Intersection-Einheiten auf den I-Cache. – I-Cache: Analog zu T-Cache für Intersection-Zugriffe. – M-SR: Koordiniert den Zugriff von Cache-Einheiten auf den externen Speicher. – MemCtrl: Leitet die Zugriffe an den dafür zuständigen externen Speicher weiter.
  • Die Funktionsgruppen sind in 7 dargestellt.
  • Dabei sind vorteilhaft die Funktionsgruppen Slave, Traversal und Intersection so aufgebaut, dass sie mehrere Untereinheiten enthalten, die gleichzeitig Berechnungen durchführen und dabei selbsttätig einen Vorrat an Paketen halten, auf denen sie das Multi-Threading Verfahren anwenden.
  • Die Funktionsgruppen sind derart aufgebaut, dass durch Hinzunahme von weiteren gleichartigen Gruppen die Leistungsfähigkeit des Geräts gesteigert werden kann. Es werden immer genausoviele Slave-Funktionseinheiten wie RTC-Funktionsgruppen (die aus Traversal, List und Intersection Funktionseinheiten bestehen) eingesetzt. Die Funktionseinheiten T-SR, L-SR und I-SIZ werden so aufgebaut, dass sie die Verbindungen zwischen allen RTC-Funktionsgruppen und den Speichern herstellen können.
  • Die Funktionseinheit Master ist die oberste Kontrollinstanz des Geräts. Sie erhält als Eingabe die Parameter für die virtuelle Kamera (im Bild mit UI bezeichnet) und vergibt daraufhin Beschreibungen von Paketen an einen oder mehrere Slave-Einheiten. Diese führen mit Hilfe dieser Beschreibungen die Kamerastrahlerzeugung durch und schicken die berechneten Pakete an die assoziierte RTC-Einheit.
  • Die Slave-Einheit erhält als Antwort (einige Zeit später) die Daten der Strahl-Objekt Schnitte und führt dann die Berechnungen zu den Arbeitsschritten F und G durch. Werden Folgestrahlen berechnet, so werden diese wiederum an die assoziierte RTC-Einheit gesendet. Die Slave-Einheiten müssen bei ihren Berechnungen Daten aus einem Speicher lesen und ggf. auch zurückschreiben. Die Speicherzugriffe aller Slave-Einheiten werden von der MemInt-Einheit koordiniert, die mit einem oder mehreren Speicherbausteinen (in der Skizze mit RAM bezeichnet) verbunden ist.
  • Werden in Arbeitsschritt F Bildpunkte oder Objektwerte berechnet, dann schreiben die Slave-Einheiten mit Hilfe der MemInt-Einheit in einen speziellen Speicher (im Bild mit FB bezeichnet), aus dein sie auch Daten wieder auslesen können. Dieser spezielle Speicher könnte zusätzlich mit einer Funktionsgruppe verbunden werden, die an einen Monitor angeschlossen ist, um die berechnete zweidimensionale Abbildung anzuzeigen.
  • Die RTC-Funktionsgruppe setzt die Arbeitsschritte Baumtraversierung, Einlesen des Bauinblatts, Schneiden aller Objekte und Schnittauswertung um. Möchte eine Einheit der RTC-Gruppe ein Datum aus dem Speicher laden, so richtet sie eine entsprechende Anfrage an die ihr zugeordnete Einheit, also an die T-SR, L-SR bzw. die I-SR Einheit.
  • Alle Speicheranfragen von allen RTC-Gruppen laufen bei den Einheiten T-Cache, L-Cache und I-Cache zusammen. Diese Einheiten haben eine Datenstruktur, in der die Daten von vorangegangenen Speicheranfragen vermerkt werden. Wird eine Anfrage gestellt, deren Antwort aus dem Speicher bereits vermerkt ist, so wird diese Anfrage mit dem Datum aus der Datenstruktur beantwortet. Hierbei ist es von Vorteil, dass alle Anfragen nur Daten aus dem Speicher lesen möchten. Dadurch kann der Inhalt der Datenstruktur einfach bei Bedarf verworfen werden, ohne dass man ihn in den Speicher zurückschreiben muss. Dies ist besonders dann interessant, wenn die Berechnung zu einem neuen Bild beginnt und sich dabei Objekte verändert haben. In diesem Fall wird ein Signal an die Einheiten T-Cache, L-Cache und I-Cache gesendet, welche den Inhalt ihrer Datenstruktur verwerfen, so dass bei einer neuen Anfrage auch das aktuelle Objekt aus dem Speicher gelesen wird. Das in der Datenstruktur vermerkte (alte) Objekt fließt so nicht fälschlicherweise in die neuen Berechnungen ein.
  • Die Funktionseinheit M-SR leitet alle Anfragen von T-Cache, L-Cache und I-Cache an die Einheit MemCtrl weiter. MemCtrl ist die Funktionsgruppe die direkt an den oder die Speicherbausteine (im Bild: RAM) angeschlossen ist. Dabei enthält die Funktionsgruppe MemCtrl mehrere Mechanismen, um eventuelle Wartezeiten zu vermeiden, die beim Zugriff auf die Speicherbausteine entstehen. Zu diesen Mechanismen zählen: Das Hashen von Adressen, um die Anfragen gleichmäßig auf alle Speicherbausteine zu verteilen und das Umsortieren der Anfragen, so dass Wartezeiten, durch den internen Aufbau von Speicherbausteinen verursacht, vermieden werden.
  • Die hier beschriebene Gliederung des Verfahrens in Gerätekomponenten hat den Vorteil, dass keine Funktionsgruppe auf Daten zugreifen muss, die in einer anderen Einheit gespeichert sind. Dadurch können die Daten überwiegend lokal gespeichert werden und es ist nicht nötig, größere Datenmengen zwischen den Einheiten zu verschieben, wodurch die gerätetechnische Umsetzung stark vereinfacht wird.
  • Anstatt die Funktionsgruppe zur Ausführung von geometrieverändernden Anweisungsfolgen in die Funktionsgruppe Intersection zu integrieren, kann man sie auch zwischen die Einheit M-SR und T-Cache schalten. Dies bietet den Vorteil, dass die Anweisungsfolgen eventuell weniger oft ausgeführt werden, da einige der Ergebnisse dieser Anwendungsfolgen in der Datenstruktur der Einheit T-Cache vermerkt werden.
  • Eine sinnvolle Erweiterung iür die Funktionsgruppen T-SR, L-SR, I-SR wäre es, diese mit einem Mechanismus auszustatten, welcher gleichartige Anfragen, die gleichzeitig von verschiedenen Einheiten gestellt werden, zu einer Speicheranfrage zusammenfasst und die Antwort des Speichers an alle Anfragesteller zurück sendet. Hierbei kann man "gleichzeitig" auch als "innerhalb einer kurzen Zeitspanne" auffassen. Dieser Mechanismus kann die Anzahl der Speicheranfragen weiter reduzieren.
  • Eine sinnvolle Erweiterung für die Funktionsgruppen T-Cache, L-Cache und I-Cache wäre, diese mit Listen auszustatten, worin alle Anfragen vermerkt werden, die zwar bereits an den Speicher weitergeleitet wurden, deren Ergebnis aber noch nicht bekannt ist. Wenn jetzt eine Anfrage gestellt wird, die bereits in der Liste vermerkt ist, dann würde der Liste einfach ein weiterer Vermerk hinzugefügt, aber keine Anfrage an den Speicher gestellt. Wenn dann die Antwort vom Speicher erfolgt, würde das Datum entsprechend den Angaben aus der Liste als Antworten auf alle Anfragen gemeldet. Diese Technik kann die Anzahl der Speicheranfragen weiter reduzieren.
  • Eine Vorrichtung wie die oben beschriebenen könnte zusätzlich mit einer Funktionsgruppe ausgestattet werden, die zu einer Menge von Objekten selbsttätig die baumartige Datenstruktur berechnet. Dadurch könnte das Gerät beispielsweise auf bewegte Objekte selbsttätig reagieren.
  • Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung näher dargestellt. Es zeigt dabei im einzelnen:
  • 1: ein Beispiel zur Verdeutlichung des Grundlagen des Ray Tracing Verfahrens,
  • 2: ein Beispiel zur Durchführung des Ray Tracing Verfahrens,
  • 3: eine Darstellung zur Verdeutlichung der begrifflichen Definitionen,
  • 4: eine Darstellung zur Erläuterung der Verwendung von Platzhaltern,
  • 5: ein Beispiel zur einer geometrieverändernden Anweisungsfolge,
  • 6: die Baumstruktur einer einfachen Welt, bestehend aus Vierecken, Dreiecken und Kreisen und
  • 7: eine Darstellung von Funktionsgruppen in einer Vorrichtung.
  • Im Zusammenhang mit 1 soll nachfolgend das Ray Tracing Verfahren erläutert werden. Dies kann beispielsweise wie folgt zur Herstellung eines zweidimensionalen Abbildes verwendet werden: Es wird ein mit Rechenkästchen unterteiltes Papier vor die virtuelle Kamera gehalten und dann ein Strahl von der Kamera durch jedes der Kästchen geschickt. Falls ein Strahl ein Objekt trifft, wird das entsprechende Rechenkästchen mit der Farbe des Objektes gefärbt. Wenn dies für alle Rechenkästchen erfolgt ist, enthält das Blatt Papier eine zweidimensionale Abbildung von dem, was die virtuelle Kamera sieht. Werden diese Rechenkästchen klein genug gemacht, verliert das Abbild seinen blockartigen Charakter und wird zu einem hochauflösenden Bild. Diese Unterteilung in Rechenkästchen wird in ähnlicher Weise bei Druckern und Monitoren eingesetzt, bei denen ein Bild aus einzelnen Blöcken, sogenannten Bildpunkten (engl. Pixel), zusammengesetzt wird. Im mathematischen Sinne erfolgt das "Schicken eines Strahls in die Welt" durch das Schneiden des Strahls mit allen oder einzelnen ausgewählten Objekten dieser Welt. Hierbei liefert dann ein Schnitt eines Strahls mit einem Objekt entweder einen Schnittpunkt auf der Oberfläche des Objektes oder nicht.
  • 2 zeigt die Berechnungen für einen Strahl R1, der von der virtuellen Kamera (CAM) in die virtuelle Welt geschickt wird.
  • Der Strahl R1 schneidet das Objekt 01 (eine Kugel) im Punkt P1. Bei einer einfachen Variante des Ray Tracing Verfahrens würde beispielsweise nur nachgeschaut, welche Farbe das Objekt O1 im Punkt P1 besitzt und dann der entsprechende Bildpunkt in dieser Farbe eingefärbt.
  • Als mögliche Erweiterungen dieses Verfahrens könnte die Beleuchtungssituation an dem Punkt P1 untersucht werden. Hierfür würde dann in einem einfachen Beispiel ein weiterer Strahl L1 von einer Lichtquelle LS zu dem Punkt P1 geschickt werden. Falls der Strahl L1 kein Objekt zwischen LS und P1 schneidet, so gibt es kein Objekt, weiches die Lichtquelle vom Punkt P1 aus gesehen verdeckt, so dass das Licht von LS am Punkt P1 ankommt und diesen beleuchtet. In einem anderen Fall, bei einem Strahl L3 von der Lichtquelle LS zu Punkt P3, liegt ein Objekt O4 derart im virtuellen Raum, so dass der Punkt P3 im Schatten liegt.
  • Bei einer anderen möglichen Erweiterung könnten die Materialeigenschaften des geschnittenen Objekts näher in Betracht gezogen werden. Unter der Annahme, Objekt O1 hätte eine spiegelnde Oberfläche, müsste zur Bestimmung der Farbe des Objektes O1 im Punkt P1 überprüft werden, welches Objekt sich in dem Punkt P1 spiegelt. Auch in diesem Fall würde ein weiterer Strahl R2, jetzt ausgehend von Punkt P1, in die virtuelle Welt geschickt.
  • In unserem Beispiel der 2 schneidet R2 das Objekt O2 im Punkt P2. Zur Bestimmung der Farbe in P2 wird der Strahl L2 berechnet. In diesem Beispiel ist das Objekt O2 eine Glasscheibe, so dass zur Bestimmung der Farbe des Punktes P2 ermittelt werden muss, welches Objekt durch die Glasscheibe O2 zu sehen ist. Hierzu wird der Strahl R3 ausgehend vom Punkt P2 in die virtuelle Welt geschickt. Als Schnittpunkt ergibt sich der Punkt P3 auf dem Objekt O3. Auch für P3 wird die Beleuchtungssituation berechnet, um dann dessen Farbe zu bestimmen. Die Farbe für den Bildpunkt, der zu Strahl R1 gehört, setzt sich dann aus den gewichteten Farben an den Punkten P1, P2 und P3 zusammen.
  • In diesem Beispiel mussten zur Bestimmung der Farbe eines einzigen Bildpunktes sechs Strahlen berechnet werden. In der Regel haben hochauflösende zweidimensionale Abbildungen einige Millionen Bildpunkte, entsprechend höher ist dabei der Berechnungsaufwand.
  • Als ein weiteres Problem bei der Herstellung einer zweidimensionalen Abbildung von einer dreidimensionalen virtuellen Welt stellt sich die Komplexität dieser Welt dar. In 2 besteht die Welt aus den Objekten O1, O2, O3 und O4, sowie der Lichtquelle (LS) und der virtuellen Kamera (CAM). Bei einer Betrachtung des Strahls R1 ist zu sehen, dass der Strahl – wenn überhaupt – das Objekt O1 schneidet. Für einen Automaten ist es nicht offensichtlich, dass für einen Schnitt nur Objekt O1 in Betracht kommt. Ein Verfahren für einen Automaten müsste demnach alle Objekte der virtuellen Welt mit dem Strahl R1 schneiden, um herauszufinden, welches Objekt der Strahl R1 trifft. Besonders wenn die virtuelle Welt aus einer großen Anzahl von Objekten besteht, müssen sehr viele Berechnungen zur Herstellung eines zweidimensionalen Abbildes durchgeführt werden. Zur Lösung dieses Problems sind wiederum einige Verfahren bekannt, um die Menge der zu schneidenden Objekte durch logische Entscheidungen einzuschränken.
  • 3 zeigt links ein Beispiel für eine Datenstruktur entsprechend den Definitionen der Beschreibungseinleitung. Um die Darstellung zu vereinfachen, wurde für das Beispiel eine zweidimensionale Welt gewählt, die man sich einfach als Draufsicht auf eine dreidimensionale Welt vorstellen kann. Diese Welt ist in der Mitte von 3 zu sehen.
  • In diesem Beispiel bildet der Knoten N1 die Wurzel des Baums. Die durch den Knoten N1 beschriebene Teilungsebene (hier ebenfalls mit N1 bezeichnet) ist auch in der Draufsicht der Welt erkennbar. Einfach ausgedrückt teilt die durch N1 beschriebene Ebene die Welt in eine linke Hälfte, die das Dreieck, die Kugel und den Platzhalter (P1) enthält, und eine rechte Hälfte, die einen Stern enthält. Analog unterteilen N2 und N3 die Welt in weitere Hälften.
  • Rechts in 3 sind zwei Strahlen R1 und R2 dargestellt, die ausgehend von der virtuellen Kamera mit der Welt geschnitten werden sollen. Die Berechnung für den Strahl R1 würde für dieses Beispiel wie folgt ablaufen:
    Der Strahl R1 wird verglichen mit der Teilungsebene N1. Dabei wird festgestellt, dass der Strahl die Teilungsebene von links nach rechts überquert, also zuerst die linke Hälfte und danach die rechte Hälfte der Welt untersuchen möchte. Es wird gespeichert, dass die rechte Hälfte eventuell auch interessant sein könnte, allerdings wird mit der Auswertung in der linken Hälfte beginnend über die Kante E1 dort die Berechnung mit dem Knoten N2 fort gesetzt. Hierbei wird dann festgestellt, dass für den Strahl nur die Hälfte mit dem Blatt V1 interessant ist, welches zwei Objekte enthält: ein Dreieck und einen Kreis. Jetzt wird der Strahl R1 mit diesen Objekten geschnitten und dabei fest gestellt, dass der Strahl keines der Objekte trifft. Deshalb wird entsprechend der obigen Speicherung mit der vorgemerkten rechten Hälfte von N1 fortgefahren. Über die Kante E2 wird die Auswertung mit dem Knoten N3 fort gesetzt. Der Strahl R1 möchte zunächst in die linke Hälfte, und danach eventuell in die rechte Hälfte. In der linken Hälfte enthält das Blatt V2 keine Objekte, so dass der Strahl mit keinem Objekt geschnitten werden muss. Stattdessen erfolgt die weitere Auswertung mit der vorgemerkten rechten Hälfte. Hierin befindet sich das Blatt V3, welches einen Stern enthält. Der Schnitt von R1 mit dem Stern liefert einen Schnittpunkt, womit die Berechnung zu R1 beendet ist.
  • Die Berechnung für den Strahl R2 beginnt wiederum mit dem Knoten N1. Dort wird entschieden, dass für den Strahl nur die rechte Hälfte interessant ist. In der rechten Hälfte befindet sich der Knoten N3. Ein Vergleich zwischen R2 und der Ebene N3 ergibt, dass nur die linke Hälfte für den Strahl interessant ist. Da diese Hälfte aber nur das leere Blatt V2 enthält, ist die Berechnung für den Strahl R2 damit zu Ende, ohne dass der Strahl mit einem Objekt geschnitten wurde.
  • Dies ist deshalb besonders interessant, weil wir das richtige Ergebnis ("Der Strahl R2 schneidet kein Objekt der virtuellen Welt.") berechnet haben, ohne auch nur einen Schnitt zwischen dem Strahl und einem Objekt zu berechnen.
  • Die beschriebene Vorgehensweise, bei der eine baumartige Datenstruktur durchlaufen wird, nennt man auch Traversierung (engl. Traversal). Das Schneiden eines Objektes mit einem Strahl wird im Englischen als Intersection bezeichnet.
  • Obiges Beispiel hat noch nicht die Frage geklärt, wie die Berechnung beim Erreichen eines Platzhalters fortgesetzt wird, da dieser Fall nicht vorgekommen ist. Würde ein Strahl beim Knoten N2 über die Kante E4 zum Platzhalter P1 verzweigen, dann würden die zu P1 gehörenden Anweisungen (die zu den Spezifikationen der virtuellen Welt gehören) ausgeführt werden. In einem einfachen Beispiel könnten diese Anweisungen ein Baumblatt erzeugen, welches ein Objekt enthält. Dieses Baumblatt würde dann den Platzhalter ersetzen und somit würden die Berechnungen für ein Baumblatt wie üblich fortgeführt werden. Die Anweisungen des Platzhalters könnten aber auch dazu führen, dass der Platzhalter durch eine komplexe Baumstruktur ersetzt wird, die wiederum Blätter mit Objekten und sogar neue Platzhalter enthalten kann.
  • Alternativ dazu soll nun erläutert werden, wie nach der vorliegenden Erfindung die Berechnung abläuft unter Beachtung der Zusammenfassung von Strahlen zu Paketen.
  • Im ersten Schritt wird der Baumknoten N1 aus einem Speicher geladen und für alle Strahlen des Paketes wird berechnet, ob – und falls ja wie – die Teilungsebene N1 überquert wird. Hierbei wird festgestellt, dass Strahl R1 zuerst in die linke und danach in die rechte Hälfte der Welt möchte. Strahl R2 hingegen möchte nur in die rechte Hälfte. Die Entscheidung für das Paket aus diesem Arbeitsschritt sieht dann wie folgt aus: In den Zuständen der Strahlen wird markiert, dass Strahl R1 in beide Hälften möchte und R2 nur in die rechte Hälfte. Das Paket besucht daraufhin die linke Hälfte. Gemäß dem Zustand nimmt der Strahl R2 an den Berechnungen nicht Teil, die zur linken Hälfte gehören. Diese Berechnungen erfolgen analog zu oben beschriebenem Beispiel. Wenn die Berechnungen zur linken Hälfte beendet sind, wurde noch kein gültiger Schnittpunkt für die Strahlen R1 und R2 gefunden, deshalb setzt das Paket seine Berechnungen mit der rechten Hälfte fort. An diesen Berechnungen nehmen, gemäß den Zuständen, wiederum beide Strahlen teil. Bei den Berechnungen zur Teilungsebene N3 wird festgestellt, dass der Strahl R1 zunächst in die Hälfte mit dem Baumblatt V2 möchte und danach in die Hälfte mit Baumblatt V3. Der Strahl R2 möchte dagegen nur in das Baumblatt V2. Dieses Ergebnis wird in den Zuständen vermerkt und die Berechnungen werden mit Baumblatt V2 fortgesetzt. Da dieses Blatt leer ist, werden keine Schnitte von Objekten mit Strahlen durchgeführt. Da der Zustand von Strahl R2 angibt, dass er keine weitere Hälfte besuchen möchte, ist die Berechnung für Strahl R2 abgeschlossen und der Zustand von R2 wird mit "Berechnungen beendet" markiert. Die Berechnungen für das Paket werden mit V3 fortgesetzt. An diesen Berechnungen nimmt dann nur noch R1 teil, der mit dem Stern-Objekt geschnitten wird. Dieser Schnitt liefert einen gültigen Schnittpunkt und auch der Zustand von R1 wird mit "Berechnungen beendet" markiert. Damit sind alle Zustände der Strahlen des Pakets mit "Berechnungen beendet" markiert, so dass damit die Berechnungen für das Paket beendet sind.
  • An diesem Beispiel wird auch der Effekt der Datenreduktion deutlich. Werden die Berechnungen für einzelne Strahlen angestellt, so muss für jeden Strahl jeder der betrachteten Knoten aus dem Speicher geladen werden. Werden allerdings ganze Pakete von Strahlen traversiert, wird jeder von einem der Strahlen betrachtete Knoten für das ganze Paket nur einmal aus dem Speicher geladen. In diesem Beispiel betrachtet der Strahl R1 die Baumknoten und Baumblätter {N1, N2, V1, N3, V2, V3} und der Strahl R2 die Baumknoten und Baumblätter {N1, N3, V2}. Werden die Strahlen einzeln traversiert, so werden 9-mal Daten aus dein Speicher geladen. Werden die Strahlen in einem Paket zusammengefasst, so besucht das Paket nur die Baumknoten und Baumblätter {N1, N2, V1, N3, V2, V3} und es werden nur 6-mal Daten aus dem Speicher geladen.
  • Die gegenüber dem aus vorbekannten Verfahren neuartige Datenstruktur erfüllt den Zweck der Vermeidung von unnötigen Berechnungen. Ohne diese Datenstruktur würden in obigem Beispiel auch die Objekte Dreieck und Kreis in dem Blatt V1 mit dem Strahl R2 geschnitten werden, wei1 für ein Paket keine Informationen darüber vorhanden wären, welcher der Strahlen des Pakets an dem aktuellen Berechnungsschritt teilnehmen möchte und dadurch jeder Strahl an allen Berechnungen teilnehmen müsste. Zwar führt dies dadurch nicht zu Fehlern, weil solche unnötigen Schnitte keine gültigen Schnittpunkte liefern, allerdings zu unnötigen Berechnungsschritten.
  • Auch wenn bereits Beispiele für die einzelnen Arbeitsschritte des Ray Tracing Verfahrens gegeben wurden, soll an dieser Stelle noch einmal auf die einzelnen Schritte eingegangen und dabei verdeutlicht werden, in wie weit diese Aufteilung neuartig ist und welche Vorteile sie bietet.
    • A Kamerastrahlerzeugung: Erzeugung eines Pakets von Strahlen, die von der virtuellen Kamera ausgehend mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen. Beispielsweise könnte man einen rechteckigen Bereich von Kästchen auf dem Rechenblatt vor der virtuellen Kamera in einer Gruppe vereinen und alle Strahlen, die durch diese Rechenkästchen gehen, in einem Paket zusammenfassen.
    • B Baumtraversierung: Gemäß der räumlichen Orientierung der Strahlen wird die Baumdatenstruktur für die Geometrie der dreidimensionalen Welt durchlaufen, bis ein Baumblatt oder ein Platzhalter erreicht wird. Hierzu werden Baumknoten und Platzhalter aus einem Speicher gelesen und Berechnungen durchgeführt. Wird ein Platzhalter erreicht, so wird die entsprechende Anweisungsfolge des Ersatzobjekts ausgeführt. Hierbei wird der Platzhalter durch ein Objekt ersetzt, das auch komplex sein kann. Dabei stehen zwei Alternativen zur Verfügung: Entweder wird zuerst die Anweisungsfolge vollständig ausgeführt und anschließend entsprechend der neuen Struktur des Baums das Verfahren fort gesetzt oder die Anweisungsfolge wird asynchron ausgeführt, wobei das Verfahren direkt mit dem Stellvertreter des Platzhalters fortgesetzt wird und bei vollständiger Abarbeitung der Anweisungsfolge des Ersatzobjekts durch das Ergebnis dieser Abarbeitung ersetzt wird. Die Verwendung von Platzhaltern, insbesondere die hier gezeigte Technik der Auswertung von Platzhaltern bei Bedarf, ist neu im Bereich des Ray Tracings. Hierbei bietet das Auswerten von Platzhaltern bei Bedarf die Möglichkeit, virtuelle Welten mit Millionen von Objekten implizit durch Platzhalter zu spezifizieren und dabei dennoch geringen Speicher- und Rechenaufwand zur Berechnung des Bildes zu benötigen, da nur die Teile der virtuellen Welt in die Berechnung eingehen, für die das Verfahren herausgefunden hat, dass sie für die Berechnung des Bildes relevant sind.
    • C Einlesen des Baumblatts: In einem Baumblatt werden nicht die Objekte und Platzhalter selbst, sondern Referenzen darauf gespeichert. Ein Beispiel soll den Vorteil hiervon verdeutlichen: In 6 ist eine einfache Welt mit Vierecken, Kreisen und einem Dreieck dargestellt. Um die Menge der nötigen Strahl-Objekt Schnitte einzuschränken soll auch hier eine Baumstruktur erzeugt werden. Es ist dabei offensichtlich, dass man keine Unterteilungsebene, die die Welt in eine linke und eine rechte Hälfte teilt, bestimmen kann, die nicht auch ein Objekt in zwei Hälften teilt. In diesem Beispiel teilt die Ebene die Welt in eine Hälfte mit Vierecken und eine Hälfte mit Kreisen und dabei auch das Dreieck in zwei Hälften. Auf der anderen Seite wird hier aber auch deutlich, dass man diese Unterteilung vollziehen möchte: Ein Strahl der nur die linke oder nur die rechte Hälfte der Welt traversieren möchte muss nur vier Objekte schneiden, wohingegen bei einer nicht unterteilten Welt 7 Objekt-Strahl Schnitte berechnet werden müssten. Würden in Baumblättern die Objekte selbst gespeicher werden, so müssten im linken Blatt alle Vierecke und das Dreieck, und im rechten Blatt alle Kreise und das Dreieck gespeichert werden. Man müsste also das Dreieck zweimal abspeichern. Speichert man hingegen nur die Referenzen zu Objekten in Baumblättern, so referenziert einfach das linke und das rechte Baumblatt das Dreieck und die Daten des Dreiecks werden nur einmal im Speicher abgelegt.
    • Eine Erweiterung der Erfindung bestünde beispielsweise darin, zu jedem Paket eine Liste von den Objekten zu führen, die bereits mit dem Paket geschnitten wurden. Werden die Referenzen zu Objekten aus einem Baumblatt geladen, so wird verglichen, ob das Objekt bereits geschnitten wurde und falls ja, wird der Schnitt mit dem gleichen Objekt nicht noch einmal ausgeführt. Hierbei ist allerdings darauf zu achten, dass eventuell einige Strahlen, die am aktuellen Objekt-Strahl Schnitt beteiligt sind bei dem Objekt-Strahl Schnitt, der in die Liste eingetragen wurde, nicht beteiligt waren und deshalb für eben diese Strahlen der Schnitt jetzt dennoch ausgeführt werden muss. Ein weiterer Vorteil dieser Referenzierung sei hier dargestellt: Ein Objekt, beispielsweise ein Auto, wird spezifiziert und im Speicher abgelegt. Dann werden zwei weitere Objekte definiert, die jeweils als Kontainer funktionieren und Referenzen auf das Auto-Objekt und zusätzlich eine Transformationsmatrix und eine materialverändernde Anweisungsfolge besitzen. Auf diese Weise ist es möglich, in einer Welt zwei Autos des gleichen Typs, aber mit unterschiedlichen Farben und an verschiedenen Positionen darzustellen, ohne dabei die Daten des Autos mehrfach im Speicher ablegen zu müssen.
    • D Schneiden aller Objekte: In Arbeitsschritt C wurde eine Menge von Referenzen zu Objekten aus einem Baumblatt eingelesen. In diesem Arbeitsschritt werden die Daten der referenzierten Objekte eingelesen und die Strahlen des Pakets, die an der aktuellen Operation beteiligt sind, werden mit diesen Objekten geschnitten.
    • Falls eine Transformation zu einem der Objekte spezifiziert wurde, so wird diese angewendet, bevor der Schnitt berechnet wird. Falls es sich bei dem Objekt um ein einfaches Objekt ohne eigene Baumstruktur handelt, so wird das Objekt transformier und der Schnitt berechnet. Im anderen Fall werden die Strahlen transformiert und damit dem relativen Koordinatensystem des Objektes angepasst, bevor mit Arbeitsschritt B die Traversierung des Baums dieses Objektes beginnt. Wenn berechnet wurde, ob und falls ja welche Schnittpunkte es zwischen den Strahlen und dem Objekt gibt, dann werden die Ergebnisse und die Strahlen wieder zurück in das absolute Koordinatensystem der Welt transformiert.
    • Falls eine geometrieverändernde Anweisungsfolge zu einem Objekt spezifiziert wurde, so wird diese ausgeführt, bevor der Schnitt mit dem Objekt berechnet wird. Diese geometrieverändernde Anweisungsfolge kann z.B. eingesetzt werden um Wasseroberflächen zu modellieren. Hierbei würde man ein Objekt spezifizieren, welches die Wasseroberfläche zu einem bestimmten Zeitpunkt darstellt und dazu eine Anweisungsfolge spezifizieren, welche z.B. gemäß der Uhrzeit dieses Objekt verformt, um Wellenbewegungen darzustellen. Eine Baumstruktur, die ein Objekt mit geometrieverändernder Anweisungsfolge enthält, sollte die möglichen Auswirkungen dieser Anweisungsfolge beachten, da es sonst zu Darstellungsfehlern kommen kann. Ein Beispiel ist in 5 dargestellt. Hier wurde zu einem Dreieck eine geometrieverändernde Anweisungsfolge spezifiziert, die den Eckpunkt P gemäß der Uhrzeit in die Punkte P' und P'' verschiebt. Die Baumstruktur sollte nun derart beschaffen sein, dass das Objekt in allen Baumblättern referenziert ist, in denen es maximal sein kann. Hier sollte also im linken Baumblatt das Dreieck und im rechten Baumblatt die Kugel, das Rechteck und das Dreieck referenziert sein. Würde ein Strahl R nur init der rechten Hälfte geschnitten werden und das Dreieck dort nicht referenziert, so würde für diesen Strahl zu gegebener Uhrzeit ein falscher Schnittpunkt berechnet, nämlich der mit dem Rechteck anstelle von dem mit dem Dreieck. Die Verwendung der Transformationsmatrizen wurde in Ingo Wald, Garsten Benthin and Philipp Slusallek: "A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes" ", Technical Report 2002-04, submitted for publication, http: //graphics.cs.uni-sb.de/Publications/TR/2002/Dyn/DynamicRayTracing.pdf bereits vorgeschlagen. Der Einsatz von geometrieverändernden Anweisungsfolgen ist neu im Zusammenhang mit dem hier vorgestellten Ray Tracing Verfahren.
    • E Schnittauswertung: In diesem Arbeitsschritt wird ausgewertet, ob für das Paket von Strahlen gültige Schnittpunkte vorliegen. Beispielsweise kann im voran gegangenen Arbeitsschritt D ein Strahl mit mehreren Objekten geschnitten worden sein und diese Schnitte können auch mehrere Schnittpunkte zum Ergebnis haben. Ein gültiger Schnittpunkt wäre hierbei der Schnittpunkt, der dem Ursprung des Strahls am nächsten liegt. Falls es noch Elemente des Baums gibt, die für einen Strahlschnitt in Frage kommen, aber noch nicht untersucht wurden und der vorangegangene Arbeitsschritt nicht in ausreichender Menge gültige Schnittpunkte ergeben hat, dann wird unter Einbeziehung der bisherigen Ergebnisse bei Arbeitsschritt B erneut eingesetzt, ansonsten wird mit Schritt F fortgefahren.
    • F Bestimmung der Objekteigenschaften: Die Ergebnisse der vorangegangenen Arbeitsschritte werden ausgewertet. Insbesondere können hierbei die Materialeigenschaften der Objekte, für die ein gültiger Schnittpunkt mit einem der Strahlen berechnet wurde, untersucht werden. Dabei kann beispielsweise festgestellt werden, dass ein Objekt eine spiegelnde Oberfläche besitzt und deshalb zur Bestimmung der Farbe am Schnittpunkt ein Folgestrahl berechnet werden muss. Ebenso könnte, falls das Objekt beispielsweise ein Globus unserer Erde ist, auch eine Landkarte eingelesen und berechnet werden, welches Land oder Meer der Strahl geschnitten hat, um dann daraus die Farbe am Schnittpunkt zu bestimmen. Falls eine materialverändernde Anweisungsfolge zu dem geschnittenen Objekt spezifiziert wurde, dann wird diese ausgeführt. Hierbei kann die materialverändernde Anweisungsfolge auch dazu eingesetzt werden, um aus einem farblosen Objekt beispielsweise ein marmoriertes Objekt zu machen. Insbesondere kann dabei das Muster des Marmorsteins durch die zu dein Objekt spezifizierte Anweisungsfolge berechnet werden, so dass das Muster nur implizit durch eine mathematische Formel angegeben wird und auch nur dann berechnet wird, falls ein Strahl das Objekt trifft. Falls eine geometrieverändernde Anweisungsfolge zu dem geschnittenen Objekt Spezifiziert wurde, die auch eine Auswirkung auf diesen Arbeitsschritt hat, dann wird diese ebenfalls ausgeführt.
    • G Folgestrahlerzeugung: Wird in Schritt F berechnet, dass ein oder mehrere weitere Strahlen mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen, dann werden in diesem Schritt entsprechende Pakete von Strahlen berechnet und das Verfahren setzt bei Arbeitsschritt B erneut an. Ansonsten wird wieder bei Schritt A eingesetzt, falls zur Ausbildung des zweidimensionalen Bildes noch weitere Kamerastrahlen erzeugt werden müssen.
  • Ein weiteres Beispiel für die Verwendung von Platzhaltern ist in 4 dargestellt. Hier sind von links nach rechts in zeitlichem Ablauf die Welt mit dazugehöriger Baumstruktur zu sehen, wie sie bei der Ausführung von Platzhalter P1 bzw. P2 erweitert oder verändert wird.
  • Ein Beispiel für die Verwendung von Platzhaltern sei im folgenden erläutert: Die virtuelle Welt umfasst die Gebäude A und B. Für das erste zu erzeugende Bild befindet sich die Kamera in Gebäude A, und das Gebäude B kann von der Kamera nicht gesehen werden. Also ist es ausreichend, das Gebäude B nur durch einen einfachen Platzhalter zu spezifizieren. Verlässt die virtuelle Kamera Gebäude A und nähert sich Gebäude B, so wird bei dem ersten Strahl, der bei der Traversierung auf den Platzhalter für Gebäude B stößt, die Anweisungsfolge für Platzhalter B ausgeführt. Diese Anweisungsfolge könnte nun spezifizieren, dass Gebäude B von einem Speichermedium geladen und gegen den Platzhalter für Gebäude B ausgetauscht werden soll.
  • Wird die Aufteilung der virtuellen Welt in mehrere Platzhalter günstig gewählt, so kann die Datenmenge, die bei der Erzeugung des Bildes untersucht werden muss, stark eingeschränkt werden.
  • Umgekehrt lässt sich auch durch das Ersetzen von Teilbäumen und Objekten durch Platzhalter ein sehr mächtiger Mechanismus zur Datenreduktion realisieren.

Claims (6)

  1. Verfahren zur Bestimmung einer zweidimensionalen Abbildung einer dreidimensionalen Welt, wobei die zweidimensionale Abbildung mindestens durch eine geometrische Beschreibung, eine Baumstruktur zur räumlichen Unterteilung der dreidimensionalen Welt und die Materialeigenschaften aller Objekte dieser Welt spezifiziert ist, dadurch gekennzeichnet, dass ein Ray Tracing Verfahren verwendet wird, wobei mehrere Strahlen zu einem Paket von diskreten Strahlen zusammengefasst werden, wobei eine Assoziation einer Datenstruktur mit jedem Paket von diskreten Strahlen durchgeführt wird, wobei eine zustandsmäßige Zuordnung der Datenstruktur zu jedem Strahl gespeichert wird, wobei alle nachfolgend beschriebenen das bzw. die Pakete der mehreren diskreten Strahlen angewendet werden, indem in einem Arbeitsschritt, der eine Operation auf einem Paket ausführt, diese Operation auf jedem Strahl des Paketes ausgeführt wird, falls in der dem Paket zugeordneten Datenstruktur die zustandsmäßige Zuordnung gespeichert ist, dass der betreffende Strahl an dieser Operation teilnimmt, wobei sich das Ray-Tracing Verfahren in folgende Arbeitsschritte gliedert, die für die einzelnen Pakete der Strahlen nacheinander abgearbeitet werden: A Kamerastrahlerzeugung: Es wird ein Paket von Strahlen erzeugt, die von der virtuellen Kamera ausgehend mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen, B Baumtraversierung: entsprechend der räumlichen Orientierung der Strahlen wird die Baumdatenstruktur für die Geometrie der dreidimensionalen Welt durchlaufen, bis ein Baumblatt oder ein Platzhalter erreicht wird, wobei auf diesem Weg Baumknoten und Platzhalter aus einem Speicher gelesen und Berechnungen durchgeführt werden, wobei bei Erreichen eines Platzhalters entsprechende Anweisungsfolge des Ersatzobjekts ausgeführt wird, indem der Platzhalter durch ein Objekt ersetzt wird, das auch komplex sein kann, wobei bei Vorhandensein eines Platzhalters zwei Alternativen zur Verfügung stehen: – es wird zuerst die Anweisungsfolge vollständig ausgeführt und anschließend entsprechend der neuen Struktur des Baums das Verfahren fortgesetzt oder – die Anweisungsfolge wird asynchron ausgeführt, wobei das Verfahren direkt mit dem Stellvertreter des Platzhalters fortgesetzt wird und bei vollständiger Abarbeitung der Anweisungsfolge des Ersatzobjekts durch das Ergebnis dieser Abarbeitung ersetzt wird. C Einlesen des Baumblatts: es werden aus einem Speicher alle Referenzen der Objekte und Platzhalter, die sich in diesem Baumblatt befinden, eingelesen und gegebenenfalls ausgeführt, D Schneiden aller Objekte: es werden alle Objekte eingelesen, die in Arbeitsschritt C spezifiziert wurden, und mit dein Paket von Strahlen geschnitten, wobei vor der Berechnung eines Schnitts mit einem Objekt eine Transformation angewendet wird, wenn diese zu dem Objekt spezifiziert wurde, wobei vor der Berechnung eines Schnitts mit einem Objekt eine geoinetrieverändernde Anweisungsfolge angewendet wird, wenn diese zu dem Objekt spezifiziert wurde, wobei ein zu schneidendes Objekt – sofern dieses ein komplexes Objekt mit eigener Baumstruktur ist, das Traversiert werden muss, – geschnitten wird, indem die Arbeitsschritte B – F angepasst an das komplexe Objekt ausgeführt werden, E Schnittauswertung: es wird geprüft, ob für das Paket von Strahlen gültige Schnittpunkte vorliegen, wobei für noch nicht untersuchte Elemente des Baums, die für einen Strahlschnitt in Frage kommen, mögliche Strahlschnitte ermittelt werden, wenn noch nicht in ausreichender Menge gültige Schnittpunkte ermittelt wurden, indem unter Einbeziehung der bisherigen Ergebnisse mit Arbeitsschritt B fortgefahren wird, wobei bei einer ausreichenden Menge ermittelter Strahlschnitte mit der Ausführung von Schritt F fortgefahren wird, F Bestimmung der Objekteigenschaften: unter Auswertung der Ergebnisse der vorangegangenen Arbeitsschritte werden Daten von Objekten mit denen gültige Schnittpunkte berechnet wurde, falls es solche gibt, aus dem Speicher gelesen, wobei die Ergebnisse der Berechnungen in Schnitt G einfließen, wobei bei entsprechenden Ergebnissen Werte in einen Speicher neu berechnet werden, wobei im Falle, dass zu einem oder mehreren der Objekte, die von einem Strahl geschnitten wurden, eine materialverändernde Anweisungsfolge spezifiziert wurde derart, dass die Materialeigenschaften dieses Objekts für den Arbeitsschritt F oder G von Bedeutung sind, so wird diese Anweisungsfolge vor den Berechnungen des Arbeitsschritts F ausgeführt, G Folgestrahlerzeugung: wurde in Schritt F berechnet, dass ein oder mehrere weitere Strahlen mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen, dann werden in diesem Schritt entsprechende Pakete von Strahlen ermittelt und der Ablauf des Verfahrens setzt bei Arbeitsschritt B erneut an, wobei andernfalls wieder bei Schritt A eingesetzt wird, falls zur Ausbildung der zweidimensionalen Abbildung noch weitere Kamerastrahlen erzeugt werden müssen.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die in Arbeitsschritt G erzeugten Strahlen durch einen weiteren Arbeitsschritt in neue Pakete zusammengefasst werden, wobei alle neu erzeugten Strahlen gesammelt, sortiert und zu neuen Pakete von diskreten Strahlen zusammen gestellt werden.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass ein Multi-Threading Verfahren eingesetzt wird, indem jeweils ein Paket von Strahlen als ein Thread betrachtet wird.
  4. Verfahren nach einem der Ansprüche 1, 2 oder 3, dadurch gekennzeichnet, dass die Menge der Daten der dreidimensionalen Welt derart verwaltet wird, dass zu einem Zeitpunkt nur ein Teil dieser Daten im Speicher gehalten wird.
  5. Vorrichtung zur Durchführung eines der vorgenannten Verfahren, dadurch gekennzeichnet, dass die einzelnen Arbeitsschritte durch eigenständige Funktionsgruppen dargestellt sind.
  6. Vorrichtung zur Durchführung eines der vorgenannten Verfahren, dadurch gekennzeichnet, dass die Arbeitsschritte folgender Maßen zu Funktionsgruppen zusammen gefasst sind: – RGS: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte A, F und G und erweitert diese um Einheiten zum Management von Untereinheiten. – Master: Koordiniert die Arbeit der Slave-Funktionseinheiten. – Slave: Enthält Einheiten für die Arbeitsschritte A, F und G. – MemInt: Koordiniert den Zugriff von Slave-Einheinten auf externen Speicher. – RTC: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte B, C, D und E. – Traversal: Funktionseinheit, die die Arbeitsschritte B und E umfasst. – List: Funktionseinheit für den Arbeitsschritt C. – Intersection: Funktionseinheit für den Arbeitsschritt D. – RTC-MI: Koordiniert und regelt alle Zugriffe der RTC-Einheiten auf externe Speichereinheiten. – T-SR: Koordiniert den Zugriffvon Traversal-Einheiten auf den T-Cache. – T-Cache: Führt Buch über vorangegangene Traversal-Zugriffe und versucht, neue Zugriffe zu vermeiden, in dem es die vorangegangenen Ergebnisse wiederverwertet. – L-SR: Koordiniert den Zugriff von List-Einheiten auf den L-Cache. – L-Cache: Analog zu T-Cache für List-ZugrüFe. – I-SR: Koordiniert den Zugriff von Intersection-Einheiten auf den I-Cache. – I-Cache: Analog zu T-Cache für Intersection-Zugriffe. – M-SR: Koordiniert den Zugriff von Cache-Einheiten auf den externen Speicher. – MemCtrl: Leitet die Zugriffe an den dafür zuständigen externen Speicher weiter.
DE10239672A 2002-08-26 2002-08-26 Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur Expired - Fee Related DE10239672B4 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE10239672A DE10239672B4 (de) 2002-08-26 2002-08-26 Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
JP2004531696A JP4348728B2 (ja) 2002-08-26 2003-08-20 3次元構造体の2次元写像を作成するための方法及び装置
US10/526,055 US7289118B2 (en) 2002-08-26 2003-08-20 Method and device for creating a two-dimensional representation of a three-dimensional structure
PCT/DE2003/002801 WO2004021274A2 (de) 2002-08-26 2003-08-20 Verfahren und vorrichtung zum raytracing
EP03790730A EP1532586A2 (de) 2002-08-26 2003-08-20 Verfahren und vorrichtung zur erzeugung einer zweidimensionalen abbildung einer dreidimensionalen struktur
US12/608,864 USRE44347E1 (en) 2002-08-26 2003-08-20 Method and device for creating a two-dimensional representation of a three-dimensional structure
AU2003266174A AU2003266174A1 (en) 2002-08-26 2003-08-20 Method and device for creating a two-dimensional representation of a three-dimensional structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10239672A DE10239672B4 (de) 2002-08-26 2002-08-26 Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur

Publications (2)

Publication Number Publication Date
DE10239672A1 true DE10239672A1 (de) 2004-03-11
DE10239672B4 DE10239672B4 (de) 2005-08-11

Family

ID=31502078

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10239672A Expired - Fee Related DE10239672B4 (de) 2002-08-26 2002-08-26 Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur

Country Status (6)

Country Link
US (2) USRE44347E1 (de)
EP (1) EP1532586A2 (de)
JP (1) JP4348728B2 (de)
AU (1) AU2003266174A1 (de)
DE (1) DE10239672B4 (de)
WO (1) WO2004021274A2 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004007835A1 (de) * 2004-02-17 2005-09-15 Universität des Saarlandes Vorrichtung zur Darstellung von dynamischen komplexen Szenen
US8098243B2 (en) * 2005-09-23 2012-01-17 Samsung Electronics Co., Ltd. Method and apparatus for efficiently handling query for 3D display
WO2008011391A2 (en) * 2006-07-21 2008-01-24 University Of Utah Research Foundation Ray tracing a three-dimensional scene using a hierarchical data structure
US20080024489A1 (en) * 2006-07-28 2008-01-31 Robert Allen Shearer Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements
US8243081B2 (en) * 2006-08-22 2012-08-14 International Business Machines Corporation Methods and systems for partitioning a spatial index
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
US9665970B2 (en) 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping 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
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
US8674987B2 (en) * 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
US8018457B2 (en) 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
US7688320B2 (en) * 2006-09-27 2010-03-30 International Business Machines Corporation Methods and systems for texture prefetching based on a most recently hit primitive algorithm
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
US7884819B2 (en) * 2006-09-27 2011-02-08 International Business Machines Corporation Pixel color accumulation in a ray tracing image processing system
US20080079714A1 (en) * 2006-09-28 2008-04-03 Shearer Robert A Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
US7940266B2 (en) * 2006-10-13 2011-05-10 International Business Machines Corporation Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US20080088619A1 (en) * 2006-10-17 2008-04-17 Robert Allen Shearer Branch Prediction for Acceleration Data Structure Traversal
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
US8384711B2 (en) * 2006-11-29 2013-02-26 The University Of Utah Research Foundation Ray tracing a three dimensional scene using a grid
US7893936B2 (en) * 2007-01-12 2011-02-22 International Business Machines Corporation Generating efficient spatial indexes for predictably dynamic objects
US20080192051A1 (en) * 2007-02-14 2008-08-14 David Keith Fowler Expanding Empty Nodes in an Acceleration Data Structure
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
US20080231627A1 (en) * 2007-03-20 2008-09-25 Robert Allen Shearer Using Ray Tracing to Enhance Artificial Intelligence Character Behavior
US7773087B2 (en) * 2007-04-19 2010-08-10 International Business Machines Corporation Dynamically configuring and selecting multiple ray tracing intersection methods
US7652620B2 (en) * 2007-08-09 2010-01-26 Raytheon Company RCS signature generation for closely spaced multiple objects using N-point models
US7646332B2 (en) * 2007-08-09 2010-01-12 Raytheon Company Method and apparatus for interleaved gridding in distributed multiple computing for real-time RCS prediction
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
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
CN104112291B (zh) * 2008-03-21 2017-03-29 想象技术有限公司 用于光线追踪渲染的并行相交测试及着色的架构
US8217935B2 (en) * 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US7602332B1 (en) 2008-06-13 2009-10-13 Raytheon Company Reducing scattering center data using multi-volume aggregation
US7616151B1 (en) 2008-06-13 2009-11-10 Raytheon Company Reducing scattering center data using magnitude-based reduction
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
US8421801B2 (en) * 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
US7567205B1 (en) * 2008-09-18 2009-07-28 Raytheon Company Dynamic ray traversing
US7880671B2 (en) * 2008-09-18 2011-02-01 Raytheon Company Electromagnetic (EM) solver using a shooting bouncing ray (SBR) technique
US7750842B2 (en) * 2008-09-18 2010-07-06 Raytheon Company Parallel processing to generate radar signatures for multiple objects
US7592947B1 (en) 2008-09-18 2009-09-22 Raytheon Company Generating radar signatures for multiple objects
US8963918B2 (en) * 2008-09-30 2015-02-24 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
KR101610194B1 (ko) * 2008-10-15 2016-04-07 삼성전자주식회사 영상처리를 위한 데이터 처리 장치 및 방법
US8749552B2 (en) 2008-10-17 2014-06-10 Imagination Technologies Limited Synthetic acceleration shapes for use in ray tracing
US8363051B2 (en) * 2009-05-07 2013-01-29 International Business Machines Corporation Non-real-time enhanced image snapshot in a virtual world system
US8515092B2 (en) 2009-12-18 2013-08-20 Mattel, Inc. Interactive toy for audio output
US8390508B1 (en) 2010-04-05 2013-03-05 Raytheon Company Generating radar cross-section signatures
US8619078B2 (en) * 2010-05-21 2013-12-31 International Business Machines Corporation Parallelized ray tracing
US8629867B2 (en) 2010-06-04 2014-01-14 International Business Machines Corporation Performing vector multiplication
US8692825B2 (en) 2010-06-24 2014-04-08 International Business Machines Corporation Parallelized streaming accelerated data structure generation
KR101705072B1 (ko) * 2010-09-28 2017-02-09 삼성전자주식회사 영상 처리 장치 및 방법
KR101705581B1 (ko) 2010-09-30 2017-02-22 삼성전자주식회사 데이터 처리 장치 및 방법
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
CA2845730A1 (en) * 2011-08-18 2013-02-21 Utherverse Digital, Inc. Systems and methods of virtual world interaction
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
US10628997B2 (en) * 2017-08-24 2020-04-21 Emilio Santos Method for generating three-dimensional models from constrained sketches and an instruction set
US11295509B2 (en) * 2020-06-29 2022-04-05 Imagination Technologies Limited Intersection testing in a ray tracing system using multiple ray bundle intersection tests
US11308683B2 (en) 2020-06-29 2022-04-19 Imagination Technologies Limited Intersection testing in a ray tracing system using ray bundle vectors
US11494969B2 (en) * 2020-08-20 2022-11-08 Sony Interactive Entertainment LLC System and method for accelerated ray tracing with asynchronous operation and ray transformation

Family Cites Families (24)

* 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
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
DE19827590C2 (de) 1998-06-20 2001-05-03 Christoph Grosmann Verfahren und Vorrichtung zur Autostereoskopie
JP3889195B2 (ja) 1999-02-03 2007-03-07 株式会社東芝 画像処理装置、画像処理システムおよび画像処理方法
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6466227B1 (en) 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
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
US6597359B1 (en) 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing
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
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
US6868420B2 (en) * 2002-07-31 2005-03-15 Mitsubishi Electric Research Laboratories, Inc. Method for traversing quadtrees, octrees, and N-dimensional bi-trees
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
AU2003303111A1 (en) 2002-11-29 2004-07-29 Bracco Imaging, S.P.A. Method and system for scaling control in 3d displays
US7164420B2 (en) * 2003-07-24 2007-01-16 Autodesk, Inc. Ray tracing hierarchy

Also Published As

Publication number Publication date
JP2005536813A (ja) 2005-12-02
AU2003266174A1 (en) 2004-03-19
USRE44347E1 (en) 2013-07-09
WO2004021274A2 (de) 2004-03-11
EP1532586A2 (de) 2005-05-25
US20060066607A1 (en) 2006-03-30
DE10239672B4 (de) 2005-08-11
AU2003266174A8 (en) 2004-03-19
JP4348728B2 (ja) 2009-10-21
WO2004021274A3 (de) 2004-04-29
US7289118B2 (en) 2007-10-30

Similar Documents

Publication Publication Date Title
DE10239672B4 (de) Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
DE102019103326A1 (de) Robuste, effiziente multiprozessor-koprozessor-schnittstelle
DE102019103058A1 (de) Verfahren für fortgesetzte begrenzungsvolumenhierarchietraversierung auf schnittpunkte ohne shader-intervention
DE102019103336A1 (de) Verfahren zum effizienten gruppieren von cache-anforderungen für datenpfad-scheduling
DE102019103178A1 (de) Verfahren für vorankommen und programmierbare timeouts von baumtraversierungsmechanismen in hardware
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE69725057T2 (de) Gleitkommaprozessor für einen dreidimensionalen graphischen Beschleuniger
DE60306813T2 (de) Grafikverarbeitugsvorrichtung, verfahren und computerprogrammprodukte mit minimaltiefenokklusions-culling und zickzack-durchquerung
DE60127253T2 (de) Bildkachelung und -kompression für die 3D-Bilddarstellung
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
DE10035043A1 (de) Mehrdimensionale Indexierungsstruktur zur Verwendung mit linearen Optimierungsanfragen
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
DE102019135639A1 (de) Auf Echtzeit-Strahlverfolgung (RTRT) basierende adaptive Mehrfrequenzschattierung (AMFS)
DE102019128750A1 (de) Reduzierung des detailgrades eines polygonnetzes, um eine komplexität einer bildlich wiedergegebenen geometrie innerhalb einer szene zu verringern
DE102021205765A1 (de) Hardwarebasierte techniken der strahlverfolgung zur effizienten darstellung und verarbeitung eines beliebigen hüllkörpers
DE102013018445A1 (de) Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit
DE4303071A1 (de) Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung
DE102019132001A1 (de) Vorrichtung und verfahren für einen hierarchischen beamtracer
DE102021206234A1 (de) Frühzeitige freigabe von ressourcen in strahlverfolgungs-hardware
DE112016007098T5 (de) Indexierung von voxeln für das 3d-drucken
DE102022119422A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
DE112010005294T5 (de) Bildanzeigevorrichtung
DE102023124529A1 (de) Reduzieren falsch-positiver strahl-traversierungen unter verwenden von strahlabschneiden

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

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

8328 Change in the person/name/address of the agent

Representative=s name: DENDORFER & HERRMANN PATENTANWAELTE PARTNERSCHAFT,

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee