DE60123962T2 - Erzeugen von pixelwerten unter verwendung streng deterministischer methoden zum erzeugen von abtast-punkten - Google Patents

Erzeugen von pixelwerten unter verwendung streng deterministischer methoden zum erzeugen von abtast-punkten Download PDF

Info

Publication number
DE60123962T2
DE60123962T2 DE60123962T DE60123962T DE60123962T2 DE 60123962 T2 DE60123962 T2 DE 60123962T2 DE 60123962 T DE60123962 T DE 60123962T DE 60123962 T DE60123962 T DE 60123962T DE 60123962 T2 DE60123962 T2 DE 60123962T2
Authority
DE
Germany
Prior art keywords
sample
pixel
sample point
function
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60123962T
Other languages
English (en)
Other versions
DE60123962D1 (de
Inventor
Alexander Keller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia ARC GmbH
Original Assignee
Mental Images GmbH
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 Mental Images GmbH filed Critical Mental Images GmbH
Application granted granted Critical
Publication of DE60123962D1 publication Critical patent/DE60123962D1/de
Publication of DE60123962T2 publication Critical patent/DE60123962T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/55Radiosity

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)
  • Investigating Or Analysing Materials By The Use Of Chemical Reactions (AREA)
  • Processing Or Creating Images (AREA)
  • Color Image Communication Systems (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich im Allgemeinen auf das Gebiet der Computergraphik und genauer gesagt auf Systeme und Verfahren zum Erzeugen von Pixelwerten für Pixel in dem Bild, wie allgemein aus der WO 98/59322 mit dem Titel „System And Method For Generating Pixel Values For Pixels In An Image Using Strictly Deterministic Methodologies For Generating Sample Points" (hier nachstehend als die Grabenstein-Anmeldung bezeichnet) bekannt ist, die an den Rechtsinhaber dieser Anmeldung übertragen wurde.
  • HINTERGRUND DER ERFINDUNG
  • In der Computergraphik wird ein Computer verwendet, um digitale Daten zu erzeugen, die die Projektion von Oberflächen von Objekten in beispielsweise einer dreidimensionalen Szene, die durch eine oder mehrere Lichtquellen beleuchtet wird/werden, auf eine zweidimensionale Bildebene darstellen, um die Aufzeichnung der Szene beispielsweise durch eine Kamera zu simulieren. Die Kamera kann eine Linse zum Projizieren des Bildes der Szene auf die Bildebene aufweisen, oder sie kann eine Lochblenden-Kamera umfassen, bei der keine Linse verwendet wird. Das zweidimensionale Bild ist in der Form eines Arrays von Bildelementen (die variable „Pixel" oder „Pels" genannt werden), und die für jedes Pixel erzeugten digitalen Daten stellen die Farbe und Luminanz der Szene dar, wie sie auf die Bildebene an dem Punkt des jeweiligen Pixels in der Bildebene projiziert werden. Die Oberflächen der Objekte können eine beliebige Zahl von Eigenschaften, einschließlich Form, Farbe, Spiegelung, Textur usw. aufweisen, die vorzugsweise in dem Bild so nahe wie möglich wiedergegeben werden, um ein realistisch aussehendes Bild zu liefern.
  • Im Allgemeinen werden die Beiträge des Lichts, das von den verschiedenen Punkten in der Szene reflektiert wird, zu dem Pixelwert, der die Farbe und die Intensität eines bestimmten Pixels darstellt, in der Form einer oder mehrerer Integrale von relativ komplizierten Funktionen ausgedrückt. Da die in der Computergraphik verwendeten Integrale im Allgemeinen keine Lösung einer geschlossen Form aufweisen werden, müssen numerische Verfahren verwendet werden, um sie auszuwerten und dadurch den Pixelwert zu erzeugen. Typischerweise wurde ein herkömmliches „Monte-Carlo"-Verfahren bei der Computergraphik verwendet, um die Integrale numerisch auszuwerten. Im Allgemeinen werden bei dem Monte-Carlo-Verfahren, um ein Integral
    Figure 00020001
    auszuwerten, wobei f(x) eine reelle Funktion auf dem reellen numerischen Intervall von null bis einschließlich eins ist, zuerst eine Anzahl „N" statistisch unabhängiger Zufallszahlen xi, i = 1, ..., N, über dem Intervall erzeugt. Die Zufallszahlen xi werden als Abtastpunkte verwendet, für die Abtastungen f(xi) für die Funktion f(x) erzeugt werden, und ein Schätzwert f für das Integral wird erzeugt als
    Figure 00020002
  • Wenn die Anzahl von Zufallszahlen zunimmt, die beim Erzeugen der Abtastpunkte f(xi) verwendet werden, wird der Wert des Schätzwerts f zu dem tatsächlichen Wert des Integrals ⟨f⟩ konvergieren. Im Allgemeinen kann die Verteilung von Schätzwerten, die für die verschiedenen Werte von „N" erzeugt werden, d.h. für verschiedene Anzahlen von Abtastungen, die um den tatsächlichen Wert mit einer Standardabweichung σ normal verteilt sind, geschätzt werden durch
    Figure 00020003
    wenn die Werte xi, die verwendet werden, um die Abtastung f(xi) zu erzeugen, statistisch unabhängig sind, d.h. wenn die Werte xi tatsächlich zufällig erzeugt werden.
  • Im Allgemeinen wurde geglaubt, dass Zufalls-Verfahrensweisen, wie beispielsweise das Monte-Carlo-Verfahren, notwendig sind, um sicherzustellen, dass unerwünschte Artefakte, wie beispielsweise Moiré-Muster und Aliasing und dergleichen, die nicht in der Szene sind, nicht in dem erzeugten Bild erzeugt werden. Mehrere Probleme entstehen jedoch aus der Verwendung des Monte-Carlo-Verfahrens in der Computergraphik. Da die bei dem Monte-Carlo-Verfahren verwendeten Abtastpunkte xi zufällig verteilt sind, können sie zuerst in verschiedenen Regionen über dem Intervall clustern, über dem das Integral auszuwerten ist. Demgemäß kann es abhängig von der Menge von Zufallszahlen, die erzeugt werden, bei dem Monte-Carlo-Verfahren für bedeutende Abschnitte des Intervalls keine Abtastpunkte xi geben, für die Abtastungen f(xi) erzeugt werden. In diesem Fall kann der Fehler ziemlich groß werden. Im Zusammenhang des Erzeugens eines Pixelwerts in der Computergraphik kann der Pixelwert, der tatsächlich mit dem Monte-Carlo-Verfahren erzeugt wird, einige Elemente nicht wiederspiegeln, die ansonsten wiedergespiegelt werden würden, wenn garantiert wäre, dass die Abtastpunkte xi gleichmäßiger über dem Intervall verteilt sind. Dieses Problem kann durch Aufteilen des Intervalls in eine Mehrzahl von Subintervallen etwas gemildert werden, wobei es jedoch im Allgemeinen schwierig ist, a priori die Anzahl von Subintervallen zu bestimmen, in die das Intervall aufgeteilt werden sollte, und außerdem kann bei einer mehrdimensionalen Integrationsregion (die tatsächlich bei der Computergraphik anstatt des hier beschriebenen eindimensionalen Intervalls verwendet werden würde) die Partitionierung der Region in Subregionen von gleicher Größe ziemlich kompliziert sein.
  • Da das Verfahren Gebrauch von Zufallszahlen macht, ist der Fehler |f – ⟨f⟩| (wobei |x| den Absolutwert des Werts „x" darstellt) zwischen dem Schätzwert f und dem tatsächlichen Wert ⟨f⟩ außerdem probabilistisch, und da die Fehlerwerte für verschiedene große Werte von „N" nahe der Normalverteilung um den tatsächlichen Wert ⟨f⟩ sind, ist garantiert, dass nur 68% der Schätzwerte f, die erzeugt werden können, innerhalb einer Standardabweichung des tatsächlichen Werts ⟨f⟩ liegen.
  • Außerdem nimmt, wie aus Gleichung (3) offensichtlich ist, die Standardabweichung σ mit zunehmenden Abtastzahlen N proportional zu dem Kehrwert der Quadratwurzel von „N" (d.h. 1/√N) ab. Somit wird es notwendig sein, wenn gewünscht wird, den statistischen Fehler um einen Faktor zwei zu verringern, die Anzahl von Abtastungen N um einen Faktor vier zu erhöhen, was seinerseits die Berechnungslast, die erforderlich ist, um die Pixelwerte zu erzeugen, für jedes der zahlreichen Pixel in dem Bild erhöht.
  • Da das Monte-Carlo-Verfahren außerdem Zufallszahlen erfordert, wird ein effizienter Mechanismus zum Erzeugen von Zufallszahlen benötigt. Im Allgemeinen werden digitale Computer mit sogenannten „Zufallszahlen"-Generatoren bereitgestellt, die Computerprogramme sind, die verarbeitet werden können, um eine Menge von Zahlen zu erzeugen, die näherungsweise zufällig sind. Da die Zufallszahlengeneratoren deterministische Techniken verwenden, sind die Zahlen, die erzeugt werden, nicht wirklich zufällig. Die Eigenschaft, dass aufeinanderfolgenden Zufallszahlen von einem Zufallszahlengenerator statistisch unabhängig sind, sollte jedoch durch deterministische Implementierungen von Pseudo-Zufallszahlen auf einem Computer beibehalten werden.
  • Die Grabenstein-Anmeldung beschreibt ein Computergraphiksystem und -verfahren zum Erzeugen von Pixelwerten für Pixel in einem Bild mit einer streng deterministischen Verfahrensweise zum Erzeugen von Abtastpunkten, das die oben erwähnten Probleme mit dem Monte-Carlo-Verfahren vermeidet. Die bei der Grabenstein-Anmeldung beschriebene streng deterministische Verfahrensweise liefert eine Abtastpunktfolge mit niedriger Diskrepanz, die a priori gewährleistet, dass die Abtastpunkte im Allgemeinen gleichmäßiger in der ganzen Region verteilt sind, über die die jeweiligen Integrale ausgewertet werden. Bei einer Ausführungsform basieren die verwendeten Abtastpunkte auf einer sogenannten Halton-Folge (siehe beispielsweise J. H. Halton, Numerische Mathematik, Bd. 2, Seiten 84–90 (1960) und W. H. Press, u.a., Numerical Recipes in Fortran (zweite Auflage), Seite 300 (Cambridge University Press, 1992). Bei einer Halton-Folge, die für die Zahl zur Basis „p" erzeugt wurde, wobei die Basis „p" eine ausgewählte Primzahl ist, wird der „k-te" Wert der Folge, der durch H k / p dargestellt wird, durch die Verwendung eines „Radical-Inverse"-Vorgangs erzeugt, d.h. durch
    • (1) Schreiben des Werts „k" als eine numerische Darstellung des Werts in der ausgewählten Basis „p", um dadurch eine Darstellung für die Werte als DMDM-1...D2D1 bereitzustellen, wobei Dm (m = 1, 2, ..., M) die Ziffern der Darstellung sind,
    • (2) Bringen eines Radixpunktes (der einem Dezimalpunkt für Zahlen entspricht, die zur Basis 10 geschrieben sind) an dem niederstwertigen Ende der Darstellung DMDM-1...D2D1, die bei Schritt (1) oben geschrieben wird, und
    • (3) Reflektieren der Ziffern um den Radixpunkt, um 0,D1D2...DM-1DM bereitzustellen, was H k / p entspricht.
  • Es ist ersichtlich, dass, ohne Rücksicht auf die für die Darstellung ausgewählten Basis „p" für jede Reihe von Werten eins, zwei, ..."k", die zur Basis „p" geschrieben ist, die niederstwertigen Ziffern der Darstellung sich mit einer schnelleren Rate als die höchstwertigen Ziffern ändern werden. Als Ergebnis werden sich bei der Halton-Folge H 1 / p, H 2 / p, ... H k / p die höchstwertigen Ziffern mit der schnelleren Rate ändern, sodass die frühen Werte in der Folge im Allgemeinen weit über das Intervall von null bis eins verteilt werden, und spätere Werte in der Folge Zwischenräume zwischen den früheren Werten in der Folge auffüllen werden. Im Gegensatz zu den bei dem Monte-Carlo verwendeten Zufalls- oder Pseudo-Zufallszahlen, wie oben beschrieben, sind die Werte der Halton-Folge nicht statistisch unabhängig; im Gegenteil, die Werte der Halton-Folge sind streng deterministisch, wobei sie sich über dem Intervall „maximal vermeiden" und so nicht clustern werden, wohingegen die bei dem Monte-Carlo-Verfahren verwendeten Zufalls- oder Pseudo-Zufallszahlen clustern können.
  • Es ist ersichtlich, dass die Halton-Folge, wie oben beschrieben, eine Folge von Werten über dem Intervall von null bis einschließlich eins entlang einer einzelnen Dimension bereitstellen wird. Eine mehrdimensionale Halton-Folge kann auf eine ähnliche Art und Weise erzeugt werden, wobei jedoch eine unterschiedliche Basis für jede Dimension verwendet wird.
  • Eine verallgemeinerte Halton-Folge, von der die oben beschriebene Halton-Folge ein Sonderfall ist, wird wie folgt erzeugt. Für jeden Startpunkt entlang des numerischen Intervalls von null bis einschließlich eins wird eine unterschiedliche Halton-Folge erzeugt. Wenn die Pseudo-Summe x⊕py für beliebiges x und y über dem Intervall von null bis einschließlich eins für eine beliebige ganze Zahl „p" mit einem Wert größer als zwei definiert wird, wird die Pseudo-Summe durch Addieren der Ziffern, die „x" und „y" darstellen, in umgekehrter Reihenfolge von der höchstwertigen Ziffer zu der niederstwertigen Ziffer und für jede Addition ebenfalls durch Addieren in dem Übertrag, der aus der Summe der nächsten höherwertigen Ziffer erzeugt wird, gebildet. Somit wird, wenn „x" zur Basis „p" durch 0.X1X2...XM-1XM dargestellt wird, wobei jedes „Xm" eine Ziffer zur Basis „p" ist, und wenn „y" zur Basis „p" durch 0.Y1Y2...YN-1YN dargestellt wird, wobei jedes „Yn" eine Ziffer zur Basis „p" ist (und wobei sich „M", die Anzahl von Ziffern in der Darstellung von „x" zur Basis „p", und „N", die Anzahl von Ziffern in der Darstellung von „y" zur Basis „p", unterscheiden können), dann wird die Pseudo-Summe „z" dargestellt durch 0.Z1Z2...ZL-1ZL, wobei jedes „Z1" eine Ziffer zur Basis „p" ist, die durch Z1 = (X1 + Y1 + C1)modp gegeben wird, wobei „mod" die Modulo-Funktion darstellt, und
    Figure 00060001
    ein Übertragswert von der „1-1-ten" Zifferposition ist, wobei C1 auf null gesetzt ist.
  • Mit der Pseudo-Summenfunktion, wie oben beschrieben, wird die verallgemeinerte Halton-Folge, die bei dem bei der Grabenstein-Anmeldung beschriebenen System verwendet wird, wie folgt erzeugt. Wenn „p" eine ganze Zahl und x0 ein beliebiger Wert auf dem Intervall von null bis einschließlich eins ist, dann wird die „p" adische Zahl der von-Neumann-Kakutani-Transformation Tp(x) gegeben durch
    Figure 00060002
    und die verallgemeinerte Halton-Folge x0, x1, x2... wird rekursiv definiert als xn+1 = Tp(xn) (5)
  • Aus Gleichungen (4) und (5) ist ersichtlich, dass für jeden Wert von „p" die verallgemeinerte Halton-Folge vorsehen kann, das eine unterschiedliche Folge für jeden Startwert von „x", d.h. für jedes x0, erzeugt werden wird. Es ist ersichtlich, dass die Halton-Folge H k / p, wie oben beschrieben, ein Sonderfall für die verallgemeinerte Halton-Folge (Gleichungen (4) und (5)) für x0 = 0 ist.
  • Der Gebrauch einer streng deterministischen Folge mit niedriger Diskrepanz kann eine Anzahl von Vorteilen gegenüber den Zufalls- oder Pseudo-Zufallszahlen bieten, die in Verbindung mit der Monte-Carlo-Technik verwendet werden. Im Gegensatz zu den in Verbindung mit der Monte-Carlo-Technik verwendeten Zufallszahlen gewährleisten die Folgen mit niedriger Diskrepanz, dass die Abtastpunkte gleichmäßiger über eine jeweilige Region oder ein Zeitintervall verteilt sind, wodurch der Fehler in dem Bild verringert wird, der aus den Clustern derartiger Abtastpunkte resultieren kann, die bei der Monte-Carlo-Technik auftreten können. Das kann die Erzeugung von Bildern verbesserter Qualität ermöglichen, wenn die gleiche Anzahl von Abtastpunkten mit den gleichen Berechnungskosten wie bei der Monte-Carlo-Technik verwendet werden.
  • Die folgenden zwei Dokumente sind Stand der Technik für diese Anmeldung: A. Keller: „INSTANT RADIOSITY", COMPUTER GRAPHICS PROCEEDINGS, SIGGRAPH 97, Los Angeles, 3.–8. August 1997, READING, ADDISON WESLEY, US, 3. August 1997 (1997-08-03), Seiten 49–56 und "QUASI-MONTE CARLO RENDERING WITH ADAPTIVE SAMPLING", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP., New York, US, Bd. 39, Nr. 9, 1. September 1996 (1996-09-01), Seiten 215–224.
  • Die vorliegende Erfindung ist, wie in den Ansprüchen beansprucht. Kurz zusammengefasst umfasst die Erfindung ein Computergraphiksystem zum Erzeugen eines Pixelwerts für ein Pixel in einem Bild, wobei das Pixel für einen Punkt in einer Szene repräsentativ ist, wie er auf einer Bildebene einer simulierten Kamera aufgezeichnet wird. Das Computergraphiksystem umfasst einen Abtastpunktgenerator und eine Funktions-Auswerteeinrichtung. Der Abtastpunktgenerator ist konfiguriert, um eine Menge von Abtastpunkten zu erzeugen, die mindestens ein simuliertes Element der simulierten Kamera darstellen, wobei die Abtastpunkte Elemente veranschaulichender Weise für Abtastpunkte auf der Bildebene während des Zeitintervalls darstellen, währenddessen der Verschluss geöffnet ist, und auf der Linse eine Hammersley-Folge, und zur Verwendung bei globaler Beleuchtung eine verwürfelte Halton-Folge. Die Funktions-Auswerteeinrichtung, die konfiguriert ist, um mindestens einen Wert zu erzeugen, der eine Auswertung der ausgewählten Funktion bei einem der durch den Abtastpunktgenerator erzeugten Abtastpunkte darstellt, wobei der Wert, der durch die Funktions-Auswerteeinrichtung erzeugt wurde, dem Pixelwert entspricht.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese Erfindung wird insbesondere in den beigefügten Ansprüchen aufgezeigt. Die obigen und weitere Vorteile dieser Erfindung können besser durch Bezug auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden werden, in denen zeigen:
  • 1 ein veranschaulichendes Computergraphiksystem, das in Übereinstimmung mit der Erfindung aufgebaut ist.
  • AUSFÜHRLICHE BESCHREIBUNG EINER VERANSCHAULICHENDEN AUSFÜHRUNGSFORM
  • Die Erfindung stellt ein Computergraphiksystem und ein Verfahren zum Erzeugen von Pixelwerten für Pixel in einem Bild einer Szene bereit, das Gebrauch von einer streng deterministischen Verfahrensweise zum Erzeugen von Abtastpunkten zum Gebrauch beim Erzeugen von Abtastpunkten zum Auswerten des Integrals oder der Integrale, dessen/deren Funktionen) die Beiträge des von den verschiedenen Punkten in der Szene reflektierten Lichts zu dem jeweiligen Pixelwert darstellt, anstatt der Zufalls- oder Pseudo-Zufalls-Monte-Carlo-Verfahrensweise macht, die in der Vergangenheit verwendet wurde. Die streng deterministische Verfahrensweise gewährleistet a priori, dass die Abtastpunkte im Allgemeinen gleichmäßiger über dem Intervall oder der Region verteilt werden, über das/die das Integral/die Integrale auf eine Weise mit niedriger Diskrepanz auszuwerten ist (sind).
  • Die hier beigefügte 1 stellt ein veranschaulichendes Computersystem 10 dar, das Gebrauch von einer derartigen streng deterministischen Verfahrensweise macht. Mit Bezug auf 1 umfasst das Computersystem 10 bei einer Ausführungsform ein Prozessormodul 11 und Bedienerschnittstellenelemente mit Bedienereingabekomponenten, wie beispielsweise eine Tastatur 12A und/oder eine Maus 12B (im Allgemeinen als Bedienereingabeelement(e) 12 gekennzeichnet) und ein Bedienerausgabeelement, wie beispielsweise eine Videoanzeigevorrichtung 13. Das veranschaulichende Computersystem 10 ist von der herkömmlichen Computerarchitektur mit gespeichertem Programm. Das Prozessormodul 11 umfasst beispielsweise einen oder mehrere Prozessor-, Speicher- und Massenspeichervorrichtungen, wie beispielsweise eine Platte und/oder Bandspeicherelemente (nicht getrennt gezeigt), die Verarbeitungs- und Speichervorgänge in Verbindung mit den dazu bereitgestellten digitalen Daten durchführen. Das(Die) Bedienereingabeelement(e) 12 wird(werden) bereitgestellt, um einem Bediener zu ermöglichen, Information zur Verarbeitung einzugeben. Die Videoanzeigeeinheit 13 wird bereitgestellt, um durch das Prozessormodul 11 erzeugte ausgegebene Information, einschließlich Daten, die der Bediener zur Verarbeitung eingeben kann, Information, die der Bediener eingeben kann, um die Verarbeitung zu steuern, sowie auch Information, die während der Verarbeitung erzeugt wird, dem Bediener auf einem Bildschirm 14 anzuzeigen. Das Prozessormodul 11 erzeugt Information zur Anzeige durch die Videoanzeigevorrichtung 13 mit einer sogenannten „graphischen Benutzerschnittstelle" („GUI" = graphical user interface), bei der Information für verschiedene Anwendungsprogramme mit verschiedenen „Fenstern" angezeigt wird. Obwohl das Computersystem 10 gezeigt wird, wie es bestimmte Komponenten, wie beispielsweise die Tastatur 12A und die Maus 12B, um von einem Bediener eingegebene Information zu empfangen, und eine Videoanzeigevorrichtung 13, um ausgegebene Information dem Bediener anzuzeigen, umfasst, ist ersichtlich, dass das Computersystem 10 eine Vielfalt von Komponenten zusätzlich zu jenen oder anstatt jener aufweisen kann, die in 1 dargestellt werden.
  • Außerdem umfasst das Prozessormodul 11 einen oder mehrere Netzwerk-Ports, die im Allgemeinen durch die Bezugsziffer 14 gekennzeichnet werden, die mit Kommunikationsverbindungen verbunden sind, die das Computersystem 10 in einem Computernetzwerk verbinden. Die Netzwerk-Ports ermöglichen dem Computersystem 10, Information an andere Computersysteme und andere Vorrichtungen in dem Netzwerk zu übertragen und Information von diesen zu empfangen. Bei einem typischen Netzwerk, das beispielsweise gemäß dem Client-Server-Musterbeispiel organisiert ist, werden bestimmte Computersysteme in dem Netzwerk als Server gekennzeichnet, die Daten und Programme (im Allgemeinen „Information") zur Verarbeitung durch die anderen Client-Computersysteme speichern, um dadurch den Client-Computersystemen zu ermöglichen, die Information zweckmäßigerweise gemeinsam zu benutzen. Ein Client-Computersystem, das Zugriff auf Information benötigt, die durch einen bestimmten Server aufrechterhalten wird, wird dem Server ermöglichen, die Information zu ihm über das Netzwerk herunterzuladen. Nach Verarbeitung der Daten kann das Client-Computersystem ebenfalls die verarbeiteten Daten zu dem Server zur Speicherung zurückzugeben. Zusätzlich zu Computersystemen (einschließlich den oben beschriebenen Servern und Clients) kann ein Netzwerk ebenfalls beispielsweise Drucker und Faksimile-Vorrichtungen, digitale Audio- oder Videospeicher- und Verteilungsvorrichtungen und dergleichen umfassen, die zwischen den verschiedenen, in dem Netzwerk verbundenen Computersystemen gemeinsam benutzt werden können. Die die Computersysteme im Netzwerk untereinander verbindenden Kommunikationsverbindungen können, wie es herkömmlich ist, jedes zweckmäßige informationsführende Medium umfassen, einschließlich Drähte, optische Fasern oder andere Medien zum Führen von Signalen zwischen den Computersystemen. Computersysteme transferieren Information über das Netzwerk mittels Nachrichten, die über die Kommunikationsverbindungen transferiert werden, wobei jede Nachricht Information und einen Identifizierer umfasst, der die Vorrichtung identifiziert, die die Nachricht zu empfangen hat.
  • Es wird hilfreich sein, anfangs einige Hintergrundinformationen über Vorgänge bereitzustellen, die durch das Computergraphiksystem beim Erzeugen eines Bildes durchgeführt werden. Im Allgemeinen erzeugt das Computergraphiksystem ein Bild, um zu versuchen, ein Bild einer Szene zu simulieren, das durch eine Kamera erzeugt werden würde. Die Kamera umfasst einen Verschluss, der beginnend bei einer Zeit t0 für eine vorbestimmte Zeit T geöffnet sein wird, um Licht von der Szene zu ermöglichen, auf eine Bildebene gerichtet zu werden. Die Kamera kann ebenfalls eine Linse umfassen, die dazu dient, Licht von der Szene auf die Bildebene zu fokussieren. Der durchschnittliche Strahlungsfluss Lm,n durch ein Pixel bei der Position (m,n) auf einer Bildebene P, die die Ebene des Aufzeichnungsmediums der Kamera darstellt, wird bestimmt durch
    Figure 00100001
    wobei sich „Ap" auf den Bereich des Pixels bezieht, AL auf den Bereich des Abschnitts der Linse bezieht, durch die Lichtstrahlen von der Szene zu dem Pixel laufen, und fm,n einen Filterkern darstellt, der mit dem Pixel verbunden ist. Eine Prüfung des Integrals in Gleichung (6) wird offenbaren, dass die Variablen der Integration „x", „y" und „t" im Wesentlichen Dummy-Variablen sind, wobei sich die Variable „y" auf die Integration über den Linsenbereich (AL), die Variable „t" auf die Integration über die Zeit (das Zeitintervall von t0 bis t0 + T) und die Variable „x" auf die Integration über den Pixelbereich (Ap) bezieht.
  • Der Wert des Integrals in der Gleichung (6) wird durch Kennzeichnen von Np Abtastpunkten xi in dem Pixelbereich und durch Schießen für jeden Abtastpunkt von NT Strahlen zu Zeiten ti,j in dem Zeitintervall t0 bis t0 + T durch den Fokus in die Szene approximiert, wobei jeder Strahl NL Abtastpunkte yi,j,k auf dem Linsenbereich AL überspannt. Die Art und Weise, mit der Subpixel-Jitter-Positionen xi, Zeitpunkte ti,j und Positionen auf der Linse yi,j,k bestimmt werden, wird nachstehend beschrieben. Diese drei Parameter bestimmen den primären Strahl, der die Szenen-Geometrie in h(xi,ti,j,yi,j,k) mit der Strahlenrichtung ω(xt,ti,j,yi,j,k) trifft. Auf diese Art und Weise kann der Wert des Integrals in Gleichung (6) approximiert werden als
    Figure 00110001
    wobei „N" die Gesamtzahl der auf das Pixel gerichteten Strahlen ist.
  • Es ist ersichtlich, dass Strahlen, die von der Szene zu dem Bild hin gerichtet sind, Strahlen direkt von einer oder mehreren Lichtquellen in der Szene sowie auch Strahlen, die von den Oberflächen von Objekten in der Szene reflektiert werden, umfassen können.
  • Außerdem ist ersichtlich, dass ein Strahl, der von einer Oberfläche reflektiert wird, auf die Oberfläche direkt von einer Lichtquelle gerichtet worden, oder ein Strahl, der von einer anderen Oberfläche reflektiert wurde, sein kann. Für eine Oberfläche, die Lichtstrahlen reflektiert, wird ein Reflexions-Operator Tfr definiert, der einen diffusen Abschnitt
    Figure 00110002
    einen glänzenden Abschnitt
    Figure 00110003
    und einen spiegelnden Abschnitt
    Figure 00110004
    umfasst, oder
    Figure 00110005
  • In diesem Fall kann die Fredholm'sche Integralgleichung L = Le + TfrL, die den Lichttransport regelt, dargestellt werden als
    Figure 00110006
    wobei Transparenz zwecks Einfachheit ignoriert wurde; Transparenz wird auf eine analoge Art und Weise behandelt. Die einzelnen Glieder in der Gleichung (9) stellen dar:
    • (i) Le Fluss aufgrund einer Lichtquelle;
    • (ii)
      Figure 00120001
      direkte Beleuchtung, d.h. der von einer Oberfläche reflektierter Fluss, der darauf direkt durch eine Lichtquelle geliefert wurde,; die spiegelnde Komponente, die dem spiegelnden Abschnitt
      Figure 00120002
      des Reflexions-Operators zugeordnet ist, wird getrennt behandelt, da sie als eine δ-Verteilung modelliert ist;
    • (iii)
      Figure 00120003
      glänzende Beleuchtung, die durch rekursive Verteilung der Strahlverfolgung gehandhabt wird, wobei bei der Rekursion die Quellenbeleuchtung bereits durch die direkte Beleuchtung berücksichtigt wurde (Punkt (ii) oben);
    • (iv)
      Figure 00120004
      eine spiegelnde Komponente, die durch rekursives Verwenden von „L" für den reflektierten Strahl gehandhabt wird;
    • (v)
      Figure 00120005
      eine kaustische Komponente, die ein Strahl ist, der von einer glänzenden oder spiegelnden Oberfläche (siehe
      Figure 00120006
      Operator) reflektiert wurde, bevor er eine diffuse Oberfläche (siehe Tfd Operator) trifft; dieser Beitrag kann durch eine kaustische Photonenabbildung hoher Auflösung approximiert werden; und
    • (vi) TfdTfdL Umgebungslicht, das sehr gleichmäßig ist und daher mit einer globalen Photonenabbildung niedriger Auflösung approximiert wird.
  • Wie oben bemerkt, wird der Wert des Integrals (Gleichung (6)) durch Lösung der Gleichung (7) unter Verwendung von Abtastpunkten xi, ti,j, und yi,j,k approximiert, wobei sich „xi" auf Abtastpunkte in dem Bereich AL des jeweiligen Pixels an der Stelle (m,n) in der Bildebene, „ti,j" auf Abtastpunkte in dem Zeitintervall t0 bis t0 + T, währenddessen der Verschluss offen ist, und, "yi,j,k" auf Abtastpunkte auf der Linse AL bezieht. In Übereinstimmung mit einem Aspekt der Erfindung umfassen die Abtastpunkte xi zweidimensionale Hammersley-Punkte, die als
    Figure 00120007
    wobei 0 ≤ i < N := (2n)2 für einen ausgewählten ganzzahligen Parameter „n" definiert sind und sich Φi(i) auf das Radical-Inverse von „i" zur Basis „Zwei" bezieht. Im Allgemeinen wird der „s"-dimensionale Hammersley-Punktmenge definiert als
    Figure 00120008
    wobei IS der s-dimensionale Einheitswürfel (0,1) ist (d.h. ein s-dimensionaler Würfel, der „null" einschließt und „eins" ausschließt), wobei die Anzahl von Punkten „N" in der Menge festgelegt ist und b1, ...,bx-1 Basen sind. Die Basen müssen keine Primzahlen sein, wobei sie jedoch vorzugsweise ziemlich prim sind, um eine relativ gleichmäßige Verteilung bereitzustellen. Die Radical-Inverse-Funktion Φb wird ihrerseits definiert als
    Figure 00130001
    wobei (αj) ∞ / j = 0 die Darstellung von „i" in der ganzzahligen Basis „b" ist. Die zweidimensionalen Hammersley-Punkte bilden ein stratifiziertes Muster auf einem 2n mal 2n Gitter. Wenn das Gitter als Subpixel betrachtet wird, kann das vollständige Subpixelgitter, das unter der Bildebene liegt, einfach durch Anfügen von Kopien des Gitters aneinander gefüllt werden.
  • Mit den gegebenen ganzzahligen Subpixel-Koordinaten (sx, sy) können die Instanz „i" und die Koordinaten (x, y) für den Abtastpunkt xi in der Bildebene wie folgt bestimmt werden. Wenn
    Figure 00130002
    vorläufig geprüft wird, beobachtet man, dass
    • (a) jede Linie in dem stratifizierten Muster eine verschobene Kopie einer anderen ist, und
    • (b) das Muster zu der Linie y = x symmetrisch ist, d.h., jede Spalte ist eine verschobene Kopie einer anderen Spalte.
  • Demgemäß wird, wenn die ganzzahlige Permutation durch σ(k) := 2nΦ2(k) für 0 ≤ k < 2n gegeben wird und Subpixel-Koordinaten (sx, sy) auf Strata-Koordinaten (j,k) := (sx mod2n, sy mod22) abgebildet werden, eine Instanzenzahl „i" berechnet als i = j2n + σ(k) (12)und die Positionen der verwackelten (jittered) Subpixel-Abtastpunkte werden gemäß
    Figure 00140001
    bestimmt.
  • Ein effizienter Algorithmus zum Erzeugen der Positionen der verwackelten (jittered) Subpixel-Abtastpunkte xi wird nachstehend in Verbindung mit dem Code Segment 1 bereitgestellt. Ein Muster von Abtastpunkten, deren Positionen bestimmt werden, wie oben in Verbindung mit Gleichungen (12) und (13) beschrieben wurde, weist einen Vorteil einer sehr verringerten Diskrepanz gegenüber einem Muster auf, das mit einer Halton-Folge oder einer gefensterten Halton-Folge bestimmt wird, wie bei der oben erwähnten Grabenstein-Anmeldung beschrieben ist, und daher gibt die oben in Verbindung mit Gleichung (7) beschriebene Approximation im Allgemeinen eine bessere Schätzung des Wertes des oben in Verbindung mit Gleichung (6) beschriebenen Integrals. Außerdem werden, wenn „n" ausreichend groß ist, Abtastpunkte in benachbarten Pixeln unterschiedliche Muster aufweisen, was die Wahrscheinlichkeit verringert, dass unerwünschte Artefakte in dem Bild erzeugt werden.
  • Ein Strahlenbaum ist eine Sammlung von Pfaden von Lichtstrahlen, die von einem Punkt auf der Bildebene der simulierten Kamera in die Szene verfolgt werden. Das Computergraphiksystem 10 erzeugt einen Strahlenbaum, indem einer Übertragung, anschließenden Reflexion und Schattenstrahlen mit Trajektorienaufteilung rekursiv gefolgt wird. In Übereinstimmung mit einem anderen Aspekt der Erfindung wird ein Pfad durch die Komponenten eines Vektors einer global verallgemeinerten verwürfelten Hammersley-Punktmenge bestimmt. Im Allgemeinen verringert oder eliminiert eine verwürfelte Hammersley-Punktemenge ein Problem, das in Verbindung mit höher dimensionierten Folgen niedriger Diskrepanz entstehen kann, da die Radical-Inverse-Funktion Φb typischerweise Subfolgen von b-1 äquidistanten Werten aufweist, die mit 1/b beabstandet sind. Obwohl diese Korrelationsmuster in dem vollen s-dimensionalen Raum kaum bemerkbar sind, sind sie unerwünscht, da sie für Aliasing anfällig sind. Das Computergraphiksystem 10 dämpft diese Wirkung durch Verwürfeln, was der Anwendung einer Permutation auf die Ziffern der binären Darstellung entspricht, die bei der Radical- Inversion verwendet wird. Für eine Permutation σ von einer symmetrischen Gruppe Sb über ganze Zahlen 0, ..., b-1 wird das verwürfelte Radical-Inverse definiert als
    Figure 00150001
  • Wenn die Permutation „σ" die Identität ist, entspricht das verwürfelte Radical-Inverse dem nicht-verwürfelten Radical-Inverse. Bei einer Ausführungsform erzeugt das Computergraphiksystem die Permutation σ rekursiv wie folgt. Beginnend von der Permutation σ2 = (0,1) zur Basis b = 2 wird die Folge von Permutationen wie folgt definiert:
    • (i) wenn die Basis „b" gerade ist, wird die Permutation σb erzeugt, indem zuerst die Werte von
      Figure 00150002
      genommen und die Werte von
      Figure 00150003
      angehängt werden, und
    • (ii) wenn die Basis „b" ungerade ist, wird die Permutation σb erzeugt, indem die Werte von σb-1 genommen werden, jeder Wert, der größer als oder gleich
      Figure 00150004
      ist, um eins inkrementiert wird, und der Wert
      Figure 00150005
      in der Mitte eingefügt wird.
  • Diese rekursive Prozedur führt zu
    σ2 = (0,1)
    σ3 = (0,1,2)
    σ4 = (0,2,1,3)
    σ5 = (0,3,2,1,4)
    σ6 = (0,2,4,1,3,5)
    σ7 =(0,2,5,3,1,4,6)
    σ8 = (0,4,2,6,1,5,3,7)...
  • Das Computergraphiksystem 10 kann eine verallgemeinerte Punktmenge mit niedriger Diskrepanz wie folgt erzeugen. Es ist möglich, eine Folge mit niedriger Diskrepanz zu erhalten, indem ein beliebiger rationaler s-dimensionaler Punkt „x" als ein Startpunkt genommen und ein Nachfolger durch Anwenden der entsprechenden inkrementalen Radical-Inverse-Funktion auf die Komponenten von „x" bestimmt wird. Das Ergebnis wird als die verallgemeinerte Punktmenge mit niedriger Diskrepanz bezeichnet. Diese kann sowohl auf die Halton-Folge als auch die Hammersley-Folge angewendet werden. Im Fall der verallgemeinerten Halton-Folge kann dies formalisiert werden wie
    Figure 00160001
    wobei der ganzzahlige Vektor (i1, i2, ..., is) den Versatz je Komponente darstellt und im Voraus für eine verallgemeinerte Folge festgelegt wird. Der ganzzahlige Vektor kann durch Anwenden des Inversen der Radical-Inversion auf den Startpunkt „x" bestimmt werden. Eine verallgemeinerte Hammersley-Folge kann auf eine analoge Art und Weise erzeugt werden.
  • Bei der Trajektorienaufteilung ist im Allgemeinen die Trajektorienaufteilung die Auswertung eines lokalen Integrals, der von kleiner Dimension ist und der den tatsächlichen Integranden gleichmäßiger macht, was die Gesamtkonvergenz verbessert. Wenn Replikation angewendet wird, werden Positionen von Abtastpunkten niedriger Diskrepanz bestimmt, die beim Auswerten des lokalen Integrals verwendet werden können. Die Abtastpunkte niedriger Diskrepanz werden durch die entsprechenden Elemente der global verwürfelten Hammersley-Punktmenge verschoben. Da dies Trajektorienaufteilung mehrere Male auf der gleichen Ebene in dem Strahlenbaum auftreten kann, werden Zweige des Strahlenbaums dekorreliert, um Artefakte zu vermeiden, wobei die Dekorrelation durch Verallgemeinern der global verwürfelten Hammersley-Punktmenge erreicht wird.
  • Ein effizienter Algorithmus zum Erzeugen eines Strahlenbaums wird nachstehend in Verbindung mit dem Code Segment 2 bereitgestellt. Im Allgemeinen werden bei diesem Algorithmus die Instanznummer „i" des Vektors mit niedriger Diskrepanz, wie oben in Verbindung mit Gleichung (12) bestimmt wurde, und die Anzahl „d" verwendeter Komponenten, die der aktuellen Integraldimension entspricht, zu der Datenstruktur hinzugefügt, die für den jeweiligen Strahl in dem Strahlenbaum aufrechterhalten wird. Der Strahlenbaum einer Subpixelprobe wird durch die Instanznummer „i" vollständig spezifiziert. Nachdem die Dimension auf „zwei" eingestellt wurde, die die Komponente der globalen Hammersley-Punktmenge bestimmt, die als nächstes zu verwenden ist, wird der primäre Strahl in die Szene geworfen, um seinen Strahlenbaum zu überspannen. Beim Bestimmen der deterministischen Aufteilung durch die Komponenten von Abtastpunkten niedriger Diskrepanz teilt das Computergraphiksystem 10 anfangs die erforderliche Anzahl von Dimensionen „Δd" zu. Beispielsweise wird beim Simulieren von glänzender Streuung die erforderliche Anzahl von Dimensionen „zwei" entsprechen. Danach erzeugt das Computergraphiksystem 10 Streurichtungen aus dem Versatz, der durch die verwürfelten radikalen Inversen
    Figure 00170001
    gegeben wird, was die Instanzen
    Figure 00170002
    ergibt, wobei sich „⊕" auf die Addition Modulo „eins" bezieht. Jede Richtung der „M" replizierten Strahlen wird durch yi,j bestimmt und tritt in die nächste Ebene des Strahlenbaums d' := d + Δd als die neue Integraldimension ein, um die nächsten Elemente des Vektors mit niedriger Diskrepanz zu verwenden, und durch i' = i + j bestimmt, um anschließende Trajektorien zu dekorrelieren. Mit einer unendlichen Folge von Abtastpunkten niedriger Diskrepanz wird die Replikations-Heuristik in eine adaptive konsistente Abtastanordnung umgewandelt. D.h., das Computergraphiksystem 10 kann die Abtastrate ΔM festlegen, aktuelle und vorhergehende Abschätzungen alle ΔM Proben vergleichen und, falls sich die Abschätzungen um weniger als ein vorbestimmter Schwellenwert unterschreiten, die Abtastung beenden. Das Computergraphiksystem 10 kann seinerseits den Schwellenwert durch Importance-Information, d.h., wie viel der lokale Integral zu dem globalen Integral beiträgt, bestimmen.
  • Wie oben bemerkt, ist das oben in Verbindung mit Gleichung (6) beschriebene Integral über eine endliche Zeitspanne T von t0 bis t0 + T, wobei während dieser Zeit der Verschluss der simulierten Kamera offen ist. Während dieser Zeitspanne kann, wenn sich ein Objekt in der Szene bewegt, das sich bewegende Objekt vorzugsweise in dem Bild als unscharf dargestellt werden, wobei das Ausmaß der Verunschärfung eine Funktion der Bewegung des Objekts und des Zeitintervalls t0 + T ist. Im Allgemeinen wird die Bewegung während der Zeit, in der ein Bild aufgezeichnet wird, durch Bewegungsvektoren linear approximiert, wobei in diesem Fall der Integrand (Gleichung (6)) relativ gleichmäßig über die Zeit ist, in der der Verschluss offen ist, und zur korrelierten Abtastung geeignet ist. Für eine Strahleninstanz „i", die an der Subpixelposition xi startete, wird der Versatz Φ3(i) in dem Zeitintervall und die NT-1 anschließenden Abtastungen
    Figure 00180001
    mod1 für 0 < j < NT, d.h.
    Figure 00180002
    erzeugt. Das Bestimmen von Abtastpunkten auf diese Art und Weise füllt den Abtastraum, was zu einer schnelleren Konvergenz zu dem Wert des Integrals führt (Gleichung (6)). Für eine anschließende Trajektorienaufteilung werden Strahlen durch Setzen der Instanz i' = i + j dekorreliert.
  • Zusätzlich zum Bestimmen der Position des verwackelten (jittered) Subpixel-Abtastpunkts xi und Einstellen der Kamera und der Szene gemäß dem Abtastpunkt ti,j für die Zeit, simuliert das Computergraphiksystem ebenfalls die Tiefenschärfe. Beim Simulieren der Tiefenschärfe wird angenommen, dass die zu simulierende Kamera mit einer Linse ausgestattet ist, die bekannte optische Eigenschaften aufweist, und unter Verwendung von geometrischer Optik wird der Subpixel-Abtastpunkt xi durch die Linse abgebildet, um einen abgebildeten Punkt x'i zu ergeben. Die Linse wird durch Abbilden der abhängigen Abtastungen
    Figure 00180003
    auf den Linsenbereich AL mit einer geeigneten Transformation einer Mehrzahl von bekannten Transformationen abgetastet. Danach wird ein Strahl von dem durch yi,j,k spezifizierten Abtastpunkt auf der Linse durch den Punkt x'i in die Szene geschossen. Der Versatz (Φ5(i + j,σ5), Φ7(i + j,σ7)) in Gleichung (18) umfasst die nächsten Komponenten, die von der verallgemeinerten verwürfelten Hammersley-Punktmenge genommen werden, die zur Trajektorienaufteilung durch die Elemente
    Figure 00190001
    der zweidimensionalen Hammersley-Punktmenge verschoben wird. Die Instanz des von dem Abtastpunkt yi,j,k ausgehenden Strahls wird auf „i + j + k" gesetzt, um das Aufteilen des Strahlenbaums weiter zu dekorrelieren. Bei Gleichung (18) werden die verwürfelten Abtastungen (Φ5(i + j,σ5), Φ7(i + j,σ7)) anstatt der nicht verwürfelten Abtastungen von (Φ5(i + j), Φ7(i + j)) verwendet, da bei den Basen „fünf" und „sieben" die bis zu fünf unverwürfelten Abtastungen auf einer geraden Linie liegen werden, was für die verwürfelten Abtastungen nicht der Fall sein wird.
  • In Verbindung mit der Bestimmung eines Werts für die direkte Beleuchtung
    Figure 00190002
    wird die direkte Beleuchtung als ein Integral über die Oberfläche der Szene ∂V dargestellt, wobei das Integral in eine Summe von Integralen jeweils über eine der „L" einzelnen Bereichslichtquellen in der Szene zerlegt ist. Die einzelnen Integrale werden ihrerseits durch abhängige Abtastung ausgewertet, d.h.
    Figure 00190003
    wobei sich suppLe,k auf die Oberfläche der jeweiligen „k-ten" Lichtquelle bezieht. Beim Auswählen der Abschätzung des Integrals für die „k-te" Lichtquelle für den Mk-ten Abfragestrahl werden Schattenstrahlen den Bruchteil der Sichtbarkeit der Bereichslichtquelle bestimmen, da sich die Pont-Sichtbarkeit viel mehr als der gleichmäßige Schatteneffekt verändert. Für jede Lichtquelle wird die Emission Le durch einen geometrischen Ausdruck G gedämpft, der die Sichtbarkeit umfasst, und die Oberflächeneigenschaften werden durch eine bidirektionale Verteilungsfunktion fr – fs gegeben. Diese Integrale sind lokale Integrale in dem Strahlenbaum, die den Wert eines Knotens in dem Strahlenbaum ergeben, und können mit abhängiger Abtastung effizient ausgewertet werden. Bei abhängiger Abtastung kommt der Abfragestrahl mit der nächsten freien integralen Abmessung „d" und der Instanz „i", aus denen die abhängigen Abtastungen in Übereinstimmung mit
    Figure 00200001
    bestimmt werden. Der Versatz
    Figure 00200002
    wird erneut von der entsprechenden verallgemeinerten verwürfelten Hammersley-Punktmenge genommen, die die zweidimensionale Hammersley-Punktmenge
    Figure 00200003
    auf die Lichtquelle verschiebt. Durch Auswählen der Abtastrate
    Figure 00200004
    als eine Potenz von zwei wird das lokale Minimum für die Diskrepanz der Hammersley-Punktmenge erhalten, die die Lichtquelle perfekt stratifiziert. Als eine Alternative kann die Lichtquelle mit einer beliebig gewählten Zahl Mk von Abtastpunkten mit
    Figure 00200005
    als eine Replikationsregel abgetastet werden. Aufgrund der impliziten Stratifikation der Positionen der Abtastpunkte, wie oben beschrieben, wird die lokale Konvergenz sehr gleichmäßig sein.
  • Der glänzende Beitrag Tfe(L – Le) wird auf eine Art und Weise bestimmt, die der ähnlich ist, die oben in Verbindung mit Bereichslichtquellen beschrieben wird (Gleichungen (19) und (20)), mit der Ausnahme, dass ein Modell fg anstatt der bidirektionalen Verteilungsfunktion fr verwendet wird, um glänzende Streuung zu simulieren. Beim Bestimmen des glänzenden Beitrags werden zweidimensionale Hammersley-Punkte für eine feste Aufteilungsrate M erzeugt und modulo „eins" durch den Versatz
    Figure 00200006
    verschoben, der von der aktuellen Strahlenbaumtiefe genommen wird, die durch das Dimensionsfeld „d" des ankommenden Strahls gegeben wird. Die in der Streurichtung gespannten Strahlenbäume werden durch Zuweisen der Instanzfelder i' = i + j auf eine Art und Weise dekorreliert, die der ähnlich ist, die für die Simulation der Bewegungsunschärfe und der Tiefenschärfe durchgeführt wurde, wie oben beschrieben ist. Die für alle Strahlen erzeugten Abschätzungen werden durch die Aufteilungsrate „M" gemittelt und dem Strahlenbaum hinauf ausgebreitet.
  • Volumetrische Wirkungen werden typischerweise durch Durchführen einer Linienintegration entlang jeweiliger Strahlen von ihren Ursprüngen bis zu dem nächsten Oberflächenpunkt in der Szene durchgeführt. Wenn eine volumetrische Wirkung bereitgestellt wird, erzeugt das Computergraphiksystem 10 aus den Strahlendaten einen entsprechenden Versatz
    Figure 00210001
    den es dann verwendet, um die M äquidistanten Abtastungen auf dem Einheitsintervall zu verschieben, der als ein eindimensionaler Torus gesehen wird. Indem dies durchgeführt wird, wird die Rendering-Zeit im Vergleich zu der Verwendung einer nicht-korrelierten Jittering-Verfahrensweise verringert.
  • Die globale Beleuchtung umfasst eine Klasse von optischen Wirkungen, wie beispielsweise indirekte Beleuchtung, diffuse und glänzende Interreflexionen, Kaustiken und Farbbluten, die das Computergraphiksystem 10 beim Erzeugen eines Bildes von Objekten in einer Szene simuliert. Die Simulation der globalen Beleuchtung beinhaltet typischerweise die Auswertung einer Rendering-Gleichung. Für die allgemeine Form einer veranschaulichenden Rendering-Gleichung, die bei der globalen Beleuchtungssimulation verwendet wird, nämlich: L(x →,w →) = Le(x →,w →) + ∫Sf(x →,w →' → w →)G(x →,x →')V(x →,x →')L(x →,w →')dA' (21)ist ersichtlich, dass das an einem bestimmten Punkt x → in einer Szene gestrahlte Licht im Allgemeinen die Summe von zwei Komponenten ist, nämlich der Lichtmenge (falls vorhanden), die von dem Punkt emittiert wird, und der Lichtmenge (falls vorhanden), die von allen anderen Punkten ausgeht und die von dem Punkt x → reflektiert oder anderweitig gestreut wird. In der Gleichung (21) stellt L(x →,w →) die Strahldichte an dem Punkt x → in der Richtung w → = (θ, φ) dar (wobei „θ" den Richtungswinkel w → bezogen auf eine Richtung senkrecht zu der Oberfläche des Objekts in der den Punkt x → enthaltenden Szene, die, und „φ" den Winkel der Komponente der Richtung w → in einer Ebene tangential zu dem Punkt x → darstellt). Auf ähnliche Art und Weise stellt L(x →',w →') in dem Integral die Strahldichte an dem Punkt x →' in der Richtung w →' = (θ',φ') dar (wobei „θ" den Richtungswinkel w →' bezogen auf eine Richtung senkrecht zu der Oberfläche des Objekts in der Szene darstellt, die den Punkt x →' enthält, und „φ" den Winkel der Komponente der Richtung w →' in einer Ebene tangential zu dem Punkt x →' darstellt), und das Licht darstellt, falls vorhanden, das von dem Punkt x →' emittiert wird, das von dem Punkt x → reflektiert oder anderweitig gestreut werden kann.
  • In Gleichung (21) stellt Le(x →,w →) die erste Komponente dar, nämlich die Strahldichte aufgrund der Emission von dem Punkt x → in der Richtung w →, und das Integral über die Kugel S' stellt die zweite Komponente der Summe dar, nämlich die Strahldichte aufgrund der Streuung des Lichtes am Punkt x →. f(x →, w →' → w →) ist eine bidirektionale Streuverteilungsfunktion, die beschreibt, wie viel des aus der Richtung w →' kommenden Lichtes reflektiert, gebrochen oder anderweitig in der Richtung w → gestreut wird, und ist im Allgemeinen die Summe einer diffusen Komponente, einer glänzenden Komponente und einer spiegelnden Komponente. In der Gleichung (21) ist die Funktion G(x →, x →') ein geometrischer Ausdruck
    Figure 00220001
    wobei θ und θ' Winkel bezogen auf die Normalen der jeweiligen Oberflächen bei Punkten x → bzw. x →' sind. Ferner ist in der Gleichung (21) V(x →, x →') eine Sichtbarkeitsfunktion, die gleich dem Wert eins ist, wenn der Punkt x →' von dem Punkt x → sichtbar ist, und null ist, wenn der Punkt x →' von dem Punkt x → nicht sichtbar ist.
  • Das Computergraphiksystem 10 macht Gebrauch von der globalen Beleuchtung insbesondere in Verbindung mit der Bestimmung der diffusen Komponente TfdTfdL und der kaustischen Komponente TfdTfg+fsL mit einer Photonenabbildungstechnik. Im Allgemeinen wird eine Photonenabbildung durch Simulieren der Emission von Photonen durch (eine) Lichtquelle(n) in der Szene und Verfolgen des Pfads jeder der Photonen aufgebaut. Für jedes simulierte Photon, das eine Oberfläche eines Objekts in der Szene trifft, wird Information hinsichtlich des simulierten Photons in einer als eine Photonenabbildung bezeichnete Datenstruktur gespeichert, die beispielsweise die Farbe, die Position und den Richtungswinkel des simulierten Photons umfasst. Danach wird ein Vorgang in der Art eines russischen Rouletts durchgeführt, um den Zustand des Photons zu bestimmen, d.h., ob angenommen wird, dass das simulierte Photon durch die Oberfläche absorbiert oder reflektiert wurde. Wenn angenommen wird, dass ein simuliertes Photon durch die Oberfläche reflektiert wurde, wird die Richtung des simulierten Photons bestimmt, indem beispielsweise eine bidirektionale Reflexionsvermögens-Verteilungsfunktion („BRDF" = bidirectional reflectance distribution function) verwendet wird. Wenn das reflektierte simulierte Photon eine weitere Oberfläche trifft, werden diese Vorgänge wiederholt (siehe die oben erwähnte Grabenstein-Anmeldung). Die Datenstruktur, bei der die Information für die verschiedenen simulierten Photonen gespeichert ist, kann jede zweckmäßige Form aufweisen; typischerweise werden k-dimensionale Bäume für eine ganze Zahl „k" verwendet. Nachdem die Photonenabbildung erzeugt wurde, kann sie beim Rendering der jeweiligen Komponenten des Bildes verwendet werden.
  • Beim Erzeugen einer Photonenabbildung simuliert das Computergraphiksystem 10 Photonentrajektorien, womit die Notwendigkeit vermieden wird, den Kern der darunter liegenden Integralgleichung zu diskretisieren. Die Wechselwirkungen der Photonen mit der Szene, wie oben beschrieben, werden gespeichert und zur Dichteschätzung verwendet. Das Computergraphiksystem 10 macht Gebrauch von einer verwürfelten Halton-Folge, die bessere Diskrepanzeigenschaften bei höheren Dimensionen aufweist, als es eine nicht-verwürfelte Halton-Folge tut. Die verwürfelte Halton-Folge weist ebenfalls gegenüber einer Zufallsfolge den Vorteil auf, dass der Approximationsfehler gleichmäßiger abnimmt, was die Verwendung eines adaptiven Terminierungsschemas während der Erzeugung der Abschätzung des Integrals ermöglichen wird. Da die verwürfelte Halton-Folge streng deterministisch ist, kann außerdem die Erzeugung von Abschätzungen ohne weiteres durch Zuweisen bestimmter Segmente der Folge mit niedriger Diskrepanz zu einigen einer Mehrzahl von Prozessoren parallelisiert werden, die an Teilen der Berechnung unabhängig und parallel arbeiten können. Da gewöhnlicherweise der Raum, in den Photonen durch Auswählen von Richtungen geschossen werden, viel größer als der Bereich der Lichtquellen sein wird, von dem die Photonen anfangs geschossen wurden, ist es vorteilhaft, Gebrauch von Komponenten mit niedriger Diskrepanz, beispielsweise Φ2 oder Φ3 (wobei sich, wie oben, Φb auf die Radical-Inverse-Funktion zur Basis „b" bezieht) zur Winkelstreuung und Komponenten höherer Diskrepanz, beispielsweise Φ5 oder Φ7 zur Bereichsabtastung zu machen, was ein gleichmäßigeres Füllen des Raums ermöglichen wird.
  • Das Computergraphiksystem 10 schätzt die Strahldichte von den Photonen in Übereinstimmung mit
    Figure 00240001
    wobei in der Gleichung (23) Φi die Energie des jeweiligen „i-ten" Photons darstellt, φi die Einfallsrichtung des „i-ten" Photons ist, „Bk(x)" die Menge der „k" nächsten Photonen um den Punkt „x" darstellt und „A" einen Bereich um den Punkt „x" darstellt, der die Photonen in der Menge Bk(x) umfasst. Das Computergraphiksystem 10 macht Gebrauch von einer nicht erwartungstreuen jedoch konsistenten Schätzfunktion, die für ** verwendet wird, die wie folgt bestimmt wird. Wenn der Radius r(Bk(x)) des Abfrageballs (query ball) (** was ist das?**) genommen wird, wird eine tangentiale Platte D von Radius r(Bk(x)), der an dem Punkt x zentriert ist, in M Subdomäne gleicher Größe Di aufgeteilt, d.h.
  • Figure 00240002
  • Die Menge P = {Di|Di ⋂ {xi|D|i∊Bk(x)}≠0} (25)enthält alle die Subdomänen Di, die einen Punkt xi|D auf der Platte enthalten, der die Position des „i-ten" Photons ist, das auf die durch die Platte D definierte Ebene entlang seiner Einfallsrichtung ωi projiziert wird. Vorzugsweise wird die Anzahl M von Subdomänen von der Größenordnung von √k sein, und die Winkelunterteilung wird feiner als die Radialunterteilung sein, um Geometriegrenzen zu erfassen. Der tatsächliche Bereich A wird dann bestimmt durch
    Figure 00250001
  • Das Bestimmen der tatsächlichen Abdeckung der Platte D durch Photonen verbessert erheblich die Strahldichte-Abschätzung (Gleichung (23)) in Ecken und an Grenzen, bei denen der Bereich, der durch die Standardabschätzung πr2(Bk(x))erhalten wird, zu klein sein würde, was der Fall an Ecken sein würde, oder zu groß sein würde, was der Fall an Grenzen sein würde. Um die Verunschärfung scharfer Konturen von Kaustiken und Schatten zu vermeiden, stellt das Computergraphiksystem 10 die Strahldichte-Abschätzung L auf schwarz ein, wenn alle Domäne Di, die x berühren, keine Photonen enthalten.
  • Es ist ersichtlich, dass in Regionen hoher Photonendichte die „k" nächsten Photonen zu einem Radius r(Bk(x)) führen können, der nahezu null ist, was eine Übermodulation der Abschätzung verursachen kann. Die Übermodulation kann vermieden werden, indem ein minimaler Radius rmin ausgewählt wird, der verwendet wird, wenn r(Bk(x)) geringer als rmin ist. In diesem Fall wird anstelle von Gleichung (23) die Abschätzung in Übereinstimmung mit
    Figure 00250002
    erzeugt, wobei angenommen wird, dass jedes Photon mit 1/N des Gesamtflusses Φ gestartet wird. Die Schätzfunktion in Gleichung (27) liefert eine Abschätzung für den mittleren Fluss der „k" Photonen, wenn r(Bk(x)) < rmin ist.
  • Die globale Photonenabbildung ist im Allgemeinen ziemlich grob, und als ein Ergebnis können Subpixel-Abtastungen zu identischen Photonenabbildungsanfragen führen. Als Ergebnis ist die direkte Visualisierung der globalen Photonenabbildung unscharf, und es ist vorteilhaft, einen Glättungsvorgang in Verbindung damit durchzuführen. Beim Durchführen eines derartigen Vorgangs führt das Computergraphiksystem 10 eine lokale Durchlauf-Integration durch, die Artefakte der direkten Visualisierung entfernt. Demgemäß erzeugt das Computergraphiksystem eine Approximation für den diffusen Beleuchtungsausdruck
    Figure 00250003
    als
    Figure 00260001
    wobei der Integral über die Halbkugel S2(x) der Einfallsrichtungen, die durch die Oberflächennormale in „x" ausgerichtet ist, durch Importance-Sampling ausgewertet wird. Das Computergraphiksystem 10 stratifiziert die Abtastpunkte auf einem zweidimensionalen Gitter durch Anwenden von abhängiger Trajektorienaufteilung mit der Hammersley-Folge, und wendet danach Bestrahlungsstärke-Interpolation an. Anstatt den einfallenden Fluss Φi der jeweiligen Photonen zu speichern, speichert das Computergraphiksystem 10 ihre reflektierte diffuse Leistung fd(xii mit den jeweiligen Photonen in der Photonenabbildung, was eine genauere Approximation als die ermöglicht, die lediglich durch Abtastung der diffusen BRDF in den getroffenen Punkten der Final-Gather-Strahlen erhalten wird. Außerdem wird die BRDF-Auswertung lediglich einmal je Photon benötigt, wobei die Auswertungen während des Final-Gathering eingespart werden. Anstatt der Abtastung des vollen Gitters verwendet das Computergraphiksystem 10 die adaptive Abtastung, bei der eine Verfeinerung durch Kontrast, durch die Final-Gather-Strahlen durchlaufenden Abstand, um den projizierten Raumwinkel gleichmäßiger abzutasten, und die Anzahl von Photonen, die von dem Abschnitt der projizierten Halbkugel einfallen, ausgelöst wird. Das Computergraphiksystem füllt Positionen in dem Gitter, die nicht durch Interpolation abgetastet werden. Die resultierende Bildmatrix der projizierten Halbkugel wird Median-gefiltert, um schwache Singularitäten zu entfernen, wonach die Approximation erzeugt wird. Das Computergraphiksystem 10 führt den gleichen Vorgang in Verbindung mit hemisphärischer Himmelsbeleuchtung durch.
  • Das Computergraphiksystem 10 verarbeitet Final-Gather-Strahlen, die Objekte treffen, die keine Kaustiken verursachen, wie beispielsweise ebene Glasfenster, durch rekursive Strahlenverfolgung. Wenn der getroffene Punkt eines Final-Gather-Strahls näher zu seinem Ursprung als eine vorbestimmte Schwelle ist, führt das Computergraphiksystem 10 ebenfalls eine rekursive Strahlenverfolgung durch. Dies verringert die Wahrscheinlichkeit, dass unscharfe Artefakte in Ecken erscheinen werden, die andernfalls auftreten könnten, da für nahe liegende getroffene Punkte die gleichen Photonen gesammelt werden würden, was indirekterweise die unscharfe Struktur der globalen Photonenabbildung freilegen würde.
  • Im Allgemeinen wurden Photonenabbildungen als ein Schnappschuss zu einem Zeitpunkt genommen und waren somit in Verbindung mit dem Rendering der Bewegungsunschärfe ungeeignet. Nach der Beobachtung, dass die Mittelwertbildung des Ergebnisses einer Mehrzahl von Photonenabbildungen im Allgemeinen ähnlich der Abfrage einer Photonenabbildung mit der Gesamtzahl von Photonen von allen der Mehrzahl von Photonenabbildungen ist, erzeugt das Computergraphiksystem 10 NT Photonenabbildungen, wobei NT, wie oben beschrieben, zu Zeitpunkten
    Figure 00270001
    für 0 ≤ b < NT bestimmt wird. Während des Renderings verwendet das Computergraphiksystem 10 die Photonenabbildung mit der kleinsten Zeitdifferenz <ti,j – tb| in Verbindung mit dem Rendering für den Zeitabtastpunkt tij.
  • Die Erfindung biete eine Anzahl von Vorteilen. Insbesondere stellt die Verbindung ein Computergraphiksystem bereit, das Gebrauch von streng deterministischer verteilter Strahlenverfolgung basierend auf Abtastung niedriger Diskrepanz und abhängiger Trajektorienaufteilung in Verbindung mit dem Rendering eines Bildes einer Szene macht. Im Allgemeinen ist die strenge deterministische verteilte Strahlenverfolgung, die auf Abtastung niedriger Diskrepanz und abhängiger Trajektorienaufteilung basiert, einfacher zu implementieren als eine auf Zufalls- oder Pseudo-Zufallszahlen basierende Implementierung. Aufgrund der Eigenschaften der Radical-Inverse-Funktion ist die Stratifikation von Abtastpunkten intrinsisch und muss nicht unabhängig von der Erzeugung der Positionen der Abtastpunkte betrachtet werden. Da die Verfahrensweise außerdem streng deterministisch ist, kann sie ohne weiteres durch Aufteilen des Bildes in eine Mehrzahl von Aufgaben parallelisiert werden, die durch eine Mehrzahl von Prozessoren parallel ausgeführt werden können. Es gibt keine Notwendigkeit, eine Maßnahme zu treffen, um zu gewährleisten, dass die Positionen von Abtastpunkten nicht korreliert sind, was im Allgemeinen notwendig ist, wenn eine auf Zufalls- oder Pseudo-Zufallszahlen basierende Verfahrensweise zur parallelen Verarbeitung zu implementieren ist.
  • Im Allgemeinen wird ein Computergraphiksystem, das Gebrauch von Abtastung mit niedriger Diskrepanz bei der Bestimmung von Abtastpunkten macht, besser arbeiten als ein Computergraphiksystem, das Gebrauch von Zufalls- oder Pseudo-Zufallsabtastung macht, wobei sich jedoch die Leistung auf die eines Systems verschlechtern kann, das Gebrauch von Zufalls- oder Pseudo-Zufallsabtastung in höheren Dimensionen macht. Indem dafür gesorgt wird, dass das Computergraphiksystem eine abhängige Aufteilung durch Replikation durchführt, kann die überdurchschnittliche Konvergenz der niedrig-dimensionalen Abtastung mit niedriger Diskrepanz mit der Wirkung ausgenutzt werden, dass der gesamte Integrand gleichmäßiger wird, was zu einer besseren Konvergenz als mit der geschichteten Zufalls- oder Pseudo-Zufallsabtastung führt. Da das Computergraphiksystem ebenfalls Gebrauch von der abhängigen Trajektorienabtastung mittels unendlicher Folgen niedriger Diskrepanz macht, kann eine konsistente adaptive Abtastung beispielsweise von Lichtquellen ebenfalls durchgeführt werden.
  • Außerdem ist ersichtlich, dass, obwohl das Computergraphiksystem beschrieben wurde, wie es Gebrauch von Abtastpunkten macht, die mit verallgemeinerten verwürfelten und/oder nicht verwürfelten Hammersley- und Halton-Folgen erzeugt werden, ist ersichtlich, dass im Allgemeinen jedes (t, m, s)-Netz oder jede (t, s)-Folge verwendet werden kann.
  • Code Segment 1
  • Das Folgende ist ein Code-Fragment in der C++ Programmiersprache zum Erzeugen der Positionen der verwackelten (jittered) Subpixel-Abtastpunkte xi
    Figure 00280001
    Figure 00290001
  • Code Segment 2
  • Das Folgende ist ein Code-Fragment in der C++ Programmiersprache zum Erzeugen eines Strahlenbaums
    Figure 00290002
    Figure 00300001
  • Es ist ersichtlich, dass ein System in Übereinstimmung mit der Erfindung vollständig oder teilweise aus Spezialzweck-Hardware oder einem Allzweck-Computersystem oder jeder Kombination davon aufgebaut sein kann, wobei jeder Abschnitt davon durch ein geeignetes Programm gesteuert werden kann. Jedes Programm kann vollständig oder teilweise einen Teil des Systems umfassen oder auf dem System auf eine herkömmliche Art und Weise gespeichert sein, oder es kann vollständig oder teilweise in dem System über ein Netzwerk oder einen anderen Mechanismus zum Transferieren von Information auf eine herkömmliche Art und Weise bereitgestellt werden. Außerdem ist ersichtlich, dass das System mit Information betrieben und/oder anderweitig gesteuert werden kann, die durch einen Bediener mit Bedienereingabeelementen (nicht gezeigt) bereitgestellt wird, die direkt mit dem System verbunden sein können oder die die Information zu dem System über ein Netzwerk oder einen anderen Mechanismus zum Transferieren von Information auf eine herkömmliche Art und Weise transferieren können.
  • Die vorhergehende Beschreibung wurde auf eine spezifische Ausführungsform dieser Erfindung beschränkt. Es ist jedoch offensichtlich, dass verschiedene Variationen und Modifikationen an der Erfindung durchgeführt werden können, wobei einige oder alle Vorteile der Erfindung erzielt werden. Es ist die Aufgabe der beigefügten Ansprüche, diese und derartige andere Variationen und Modifikationen abzudecken, wie sie in den Schutzumfang der Erfindung kommen, der durch die Ansprüche definiert wird.

Claims (7)

  1. Computergraphiksystem zum Erzeugen eines Pixelwerts für ein Pixel in einem Bild, wobei das Pixel für einen Punkt in einer Szene repräsentativ ist, wie er auf einer Bildebene einer simulierten Kamera aufgezeichnet wird, wobei das Computergraphiksystem umfasst: A. einen Abtastpunktgenerator, der konfiguriert ist, um einen Satz von Abtastpunkten zu erzeugen, die mindestens ein simuliertes Element der simulierten Kamera darstellen, wobei die simulierte Kamera mit einem simulierten Verschluss ausgestattet wird, wobei die Abtastpunkte Elemente einer Hammersley-Folge darstellen, wobei der Abtastpunktgenerator konfiguriert ist, um Abtastpositionspunkte xi zu erzeugen, die flimmernde Abtastpunktpositionen auf einem Subpixelgitter für mindestens ein Pixel auf der Bildebene darstellen, wobei der Abtastpunktgenerator ferner konfiguriert ist, um für mindestens eine Abtastpunktposition auf einem Subpixel für mindestens ein Pixel auf der Bildebene Abtastzeitpunkte tij zu erzeugen, die "j" Zeitpunkte während eines Zeitintervalls t0 bis t0+T darstellen, in dem der Verschluss zur Verwendung durch die Funktions-Auswerteeinrichtung beim Auswerten der ausgewählten Funktion geöffnet wird, wobei der Abtastpunktgenerator ferner konfiguriert ist, um die Abtastzeitpunkte tij in Übereinstimmung mit
    Figure 00320001
    zu erzeugen, wobei sich „0+" auf ein Additionsmodul eines vorbestimmten Werts bezieht, NT einer vorbestimmten Anzahl von Malen entspricht, bei denen Abtastzeitpunkte tij erzeugt werden, und Φb(q) die Radical-Inverse-Function von „q" zur Basis „b" ist; und B. eine Funktions-Auswerteeinrichtung, die konfiguriert ist, um mindestens einen Wert zu erzeugen, der eine Auswertung der ausgewählten Funktion an einem der durch den Abtastpunktgenerator erzeugten Abtastpunkte darstellt, wobei der durch die Funktions-Auswerteeinrichtung erzeugte Wert dem Pixelwert entspricht.
  2. Computergraphiksystem gemäß Anspruch 1, bei dem der Abtastpunktgenerator konfiguriert ist, um die Abtastpositionspunkte xi in Übereinstimmung mit
    Figure 00330001
    zu erzeugen, wobei (sx, sy) Subpixel-Koordinaten sind, die auf Strata-Koordinaten (j, k) := (sx mod 2n, sy mod 2n) abgebildet sind, und die Instanznummer „i" i = J2n + σ(k)entspricht, wobei die ganzzahlige Permutation σ(k) := 2nΦ2(k) für 0 ≤ k < 2n für „n" eine ausgewählte ganze Zahl und Φb(q) die Radical-Inverse-Function von „q" zur Basis „b" ist.
  3. Computergraphikverfahren zum Erzeugen eines Pixelwerts für ein Pixel in einem Bild, wobei das Pixel für einen Punkt in einer Szene repräsentativ ist, wie er auf einer Bildebene einer simulierten Kamera aufgezeichnet wird, wobei das Computergraphiksystem umfasst: A. einen Abtastpunktgeneratorschritt eines Erzeugens eines Satzes von Abtastpunkten, die mindestens ein simuliertes Element der simulierten Kamera darstellen, wobei die simulierte Kamera mit einem simulierten Verschluss ausgestattet wird, wobei die Abtastpunkte Elemente einer Hammersley-Folge darstellen, wobei der Abtastpunktgeneratorschritt einen Schritt des Erzeugens von Abtastpositionspunkten xi umfasst, die flimmernde Abtastpunktpositionen auf einem Subpixelgitter für mindestens ein Pixel auf der Bildebene darstellen, wobei der Abtastpunktgeneratorschritt ferner den Schritt eines Erzeugens für mindestens eine Abtastpunktposition auf einem Subpixel für mindestens ein Pixel auf der Bildebene von Abtastzeitpunkten tij umfasst, die "j" Zeitpunkte während eines Zeitintervalls t0 bis t0+T darstellen, in dem der Verschluss in Übereinstimmung mit
    Figure 00340001
    geöffnet wird, wobei sich „⊕" auf ein Additionsmodul eines vorbestimmten Werts bezieht, NT einer vorbestimmten Anzahl von Malen entspricht, bei denen Abtastzeitpunkte tij erzeugt werden, und Φb(q) die Radical-Inverse-Function von „q" zur Basis „b" ist; und B. einen Funktions-Auswerteschritt, der mindestens einen Wert erzeugt, der eine Auswertung der ausgewählten Funktion an einem der durch den Abtastpunktgenerator erzeugten Abtastpunkte darstellt, wobei der während des Funktions-Auswerteschritts erzeugte Wert dem Pixelwert entspricht.
  4. Computergraphikverfahren gemäß Anspruch 3, bei dem der Abtastpunkterzeugungsschritt den Schritt eines Erzeugens der Abtastpositionspunkte xi in Übereinstimmung mit
    Figure 00340002
    umfasst, wobei (sx, sy) Subpixel-Koordinaten sind, die auf Strata-Koordinaten (j, k) := (sx mod 2n, sy mod 2n) abgebildet sind, und die Instanznummer „i" i = j2n + σ(k),entspricht, wobei die ganzzahlige Permutation σ(k) =: 2nΦ2(k) für 0 ≤ k < 2n für „n" eine ausgewählte ganze Zahl und Φb(q) die Radical-Inverse-Function von „q" zur Basis „b" ist.
  5. Computerprogrammprodukt zur Verwendung in Verbindung mit einem Computer, um ein Computergraphiksystem zum Erzeugen eines Pixelwerts für ein Pixel in einem Bild bereitzustellen, wobei das Pixel für einen Punkt in einer Szene repräsentativ ist, wie er auf einer Bildebene einer simulierten Kamera aufgezeichnet wird, wobei das Computerprogrammprodukt ein maschinenlesbares Medium umfasst, das darauf codiert hat: A. ein Abtastpunktgeneratormodul, das konfiguriert ist, um dem Computer zu ermöglichen, einen Satz von Abtastpunkten zu erzeugen, die mindestens ein simuliertes Element der simulierten Kamera darstellen, wobei die simulierte Kamera mit einem simulierten Verschluss ausgestattet wird, wobei die Abtastpunkte Elemente einer Hammersley-Folge darstellen, wobei das Abtastpunktgeneratormodul konfiguriert ist, um dem Computer zu ermöglichen, Abtastpositionspunkte xi zu erzeugen, die flimmernde Abtastpunktpositionen auf einem Subpixelgitter für mindestens ein Pixel auf der Bildebene darstellen, wobei das Abtastpunktgeneratormodul ferner konfiguriert ist, um dem Computer zu ermöglichen, für mindestens eine Abtastpunktposition auf einem Subpixel für mindestens ein Pixel auf der Bildebene Abtastzeitpunkte tij zu erzeugen, die "j" Zeitpunkte während eines Zeitintervalls t0 bis t0+T darstellen, in dem der Verschluss zur Verwendung durch die Funktions-Auswerteeinrichtung beim Auswerten der ausgewählten Funktion geöffnet wird, wobei das Abtastpunktgeneratormodul ferner konfiguriert ist, um dem Computer zu ermöglichen, die Abtastzeitpunkte tij in Übereinstimmung mit
    Figure 00350001
    zu erzeugen, wobei sich „⊕„ auf ein Additionsmodul eines vorbestimmten Werts bezieht, NT einer vorbestimmten Anzahl von Malen entspricht, bei denen Abtastzeitpunkte tij erzeugt werden, und Φb(q) die Radical-Inverse-Function von „q" zur Basis „b" ist; und
  6. ein Funktions-Auswertemodul, das konfiguriert ist, um mindestens einen Wert zu erzeugen, der eine Auswertung der ausgewählten Funktion an einem der durch den Abtastpunktgenerator erzeugten Abtastpunkte darstellt, wobei der durch die Funktions-Auswerteeinrichtung erzeugte Wert dem Pixelwert entspricht.
  7. Computerprogrammprodukt gemäß Anspruch 5, bei dem das Abtastpunktgeneratormodul konfiguriert ist, um dem Computer zu ermöglichen, die Abtastpositionspunkte xi in Übereinstimmung mit
    Figure 00360001
    zu erzeugen, wobei (sx, sy) Subpixel-Koordinaten sind, die auf Strata-Koordinaten (j, k) := (sx mod 2n, sy mod 2n) abgebildet sind, und die Instanznummer „i" i = j2n + σ(k),entspricht, wobei die ganzzahlige Permutation σ(k) =: 2nΦ2(k) für 0 ≤ k < 2n für „n" eine ausgewählte ganze Zahl und Φb(q) die Radical-Inverse-Function von „q" zur Basis „b" ist.
DE60123962T 2000-06-19 2001-06-19 Erzeugen von pixelwerten unter verwendung streng deterministischer methoden zum erzeugen von abtast-punkten Expired - Lifetime DE60123962T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US21228600P 2000-06-19 2000-06-19
US212286P 2000-06-19
US26593401P 2001-02-01 2001-02-01
US265934P 2001-02-01
PCT/IB2001/001983 WO2002003326A2 (en) 2000-06-19 2001-06-19 Generating pixel values using strictly deterministic methodologies for generating sample points

Publications (2)

Publication Number Publication Date
DE60123962D1 DE60123962D1 (de) 2006-11-30
DE60123962T2 true DE60123962T2 (de) 2007-09-06

Family

ID=26906974

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60123962T Expired - Lifetime DE60123962T2 (de) 2000-06-19 2001-06-19 Erzeugen von pixelwerten unter verwendung streng deterministischer methoden zum erzeugen von abtast-punkten

Country Status (7)

Country Link
US (5) US7227547B2 (de)
EP (1) EP1305775B1 (de)
AT (1) ATE343185T1 (de)
AU (1) AU2002210811A1 (de)
DE (1) DE60123962T2 (de)
ES (1) ES2272547T3 (de)
WO (1) WO2002003326A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170254B2 (en) 2017-09-07 2021-11-09 Aurora Innovation, Inc. Method for image analysis
US11334762B1 (en) 2017-09-07 2022-05-17 Aurora Operations, Inc. Method for image analysis

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7432935B2 (en) 2002-11-19 2008-10-07 Mental Images Gmbh Image synthesis methods and systems for generating sample points in a graphics scene
US7187379B2 (en) * 2000-06-19 2007-03-06 Mental Images Gmbh Generating an image using sample points determined on a sub-pixel grid offset using elements of a low-discrepancy sequence
ES2272547T3 (es) * 2000-06-19 2007-05-01 Mental Images Gmbh Generacion de valores de pixeles utilizando metodologias estrictamente deterministicas para generar puntos de muestra.
US7589729B2 (en) * 2002-05-15 2009-09-15 Mental Images Gmbh Image synthesis by rank-1 lattices
CA2495277A1 (en) * 2002-05-15 2003-11-27 Mental Images Gmbh Evaluating integrals using stratification of integration domain using rank-1 lattices
US6989838B2 (en) 2003-06-26 2006-01-24 Intel Corporation Methods, systems, and data structures for generating a rasterizer
US7990380B2 (en) * 2004-09-30 2011-08-02 Intel Corporation Diffuse photon map decomposition for parallelization of global illumination algorithm
EP1915739B1 (de) * 2005-08-18 2011-07-13 NVIDIA Corporation Verfahren und system zur bildsynthese
US8144166B2 (en) * 2006-08-01 2012-03-27 Microsoft Corporation Dynamic pixel snapping
US8497874B2 (en) * 2006-08-01 2013-07-30 Microsoft Corporation Pixel snapping for anti-aliased rendering
US8508552B2 (en) * 2006-09-08 2013-08-13 Microsoft Corporation Pixel snapping with relative guidelines
US8102394B2 (en) * 2006-12-14 2012-01-24 Mental Images Gmbh Computer graphics using meshless finite elements for light transport
US8106906B1 (en) * 2007-05-25 2012-01-31 Pixar Optical system effects for computer graphics
US8234298B2 (en) 2007-07-25 2012-07-31 International Business Machines Corporation System and method for determining driving factor in a data cube
US7752580B2 (en) 2007-07-26 2010-07-06 International Business Machines Corporation Method and system for analyzing an integrated circuit based on sample windows selected using an open deterministic sequencing technique
US8928658B2 (en) * 2008-09-30 2015-01-06 Microsoft Corporation Photon mapping on graphics hardware using kd-trees
GB0902681D0 (en) * 2009-02-18 2009-04-01 Uws Ventures Ltd Rendering caustics in computer graphics
JP2010199650A (ja) * 2009-02-23 2010-09-09 Fujitsu Semiconductor Ltd 画像処理装置および画像処理方法
US8234295B2 (en) 2009-06-03 2012-07-31 International Business Machines Corporation Managing uncertain data using Monte Carlo techniques
CN101819675B (zh) * 2010-04-19 2011-08-10 浙江大学 一种基于gpu的层次包围盒的快速构造方法
US8564589B1 (en) * 2010-05-17 2013-10-22 Nvidia Corporation System and method for accelerated ray-box intersection testing
US9460546B1 (en) 2011-03-30 2016-10-04 Nvidia Corporation Hierarchical structure for accelerating ray tracing operations in scene rendering
US8780112B2 (en) 2011-06-08 2014-07-15 Pacific Data Images Llc Coherent out-of-core point-based global illumination
KR101845231B1 (ko) * 2011-06-14 2018-04-04 삼성전자주식회사 영상 처리 장치 및 방법
US9153068B2 (en) 2011-06-24 2015-10-06 Nvidia Corporation Clipless time and lens bounds for improved sample test efficiency in image rendering
US9142043B1 (en) 2011-06-24 2015-09-22 Nvidia Corporation System and method for improved sample test efficiency in image rendering
US8970584B1 (en) 2011-06-24 2015-03-03 Nvidia Corporation Bounding box-based techniques for improved sample test efficiency in image rendering
US8866813B2 (en) 2011-06-30 2014-10-21 Dreamworks Animation Llc Point-based guided importance sampling
US9269183B1 (en) 2011-07-31 2016-02-23 Nvidia Corporation Combined clipless time and lens bounds for improved sample test efficiency in image rendering
CN102520760B (zh) * 2011-12-20 2014-09-03 北京航天测控技术有限公司 一种用于任意波形产生系统的处理器
US9305394B2 (en) 2012-01-27 2016-04-05 Nvidia Corporation System and process for improved sampling for parallel light transport simulation
US9202139B2 (en) * 2012-07-18 2015-12-01 Nvidia Corporation System, method, and computer program product for generating a subset of a low discrepancy sequence
US9171394B2 (en) 2012-07-19 2015-10-27 Nvidia Corporation Light transport consistent scene simplification within graphics display system
US9159158B2 (en) 2012-07-19 2015-10-13 Nvidia Corporation Surface classification for point-based rendering within graphics display system
US9367955B2 (en) 2012-11-26 2016-06-14 Nvidia Corporation System, method, and computer program product for tiled screen space sample scrambling for parallel deterministic consistent light transport simulation
DE102014105146B4 (de) * 2013-04-22 2021-11-04 Nvidia Corporation System, Verfahren und Computerprogrammprodukt zum Durchführen einer Pfad-Raum-Filterung
US9953457B2 (en) 2013-04-22 2018-04-24 Nvidia Corporation System, method, and computer program product for performing path space filtering
EP3057067B1 (de) * 2015-02-16 2017-08-23 Thomson Licensing Vorrichtung und verfahren zur schätzung eines glänzenden teils von strahlung
US10147225B2 (en) 2016-04-01 2018-12-04 Intel Corporation Method and apparatus for sampling pattern generation for a ray tracing architecture
US10764561B1 (en) 2016-04-04 2020-09-01 Compound Eye Inc Passive stereo depth sensing
CN106625674B (zh) * 2016-12-29 2019-09-27 北京光年无限科技有限公司 一种用于机器人的指令处理方法及机器人
US10127392B1 (en) 2017-08-30 2018-11-13 Go Ghost, LLC Secure rendering system that generates ray tracing samples with obfuscated position data
US10410433B2 (en) 2017-08-30 2019-09-10 Go Ghost, LLC Method of modifying ray tracing samples after rendering and before rasterizing
US11023596B2 (en) 2017-08-30 2021-06-01 Go Ghost, LLC Non-rasterized image streaming system that uses ray tracing samples
CN107991993A (zh) * 2017-12-20 2018-05-04 天津大学 基于加工误差模型和Hammersley序列的自适应采样方法
US11030478B1 (en) 2019-11-27 2021-06-08 Compound Eye, Inc. System and method for correspondence map determination
US11270467B2 (en) 2020-01-21 2022-03-08 Compound Eye, Inc. System and method for camera calibration
WO2021150779A1 (en) 2020-01-21 2021-07-29 Compound Eye Inc. System and method for egomotion estimation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897806A (en) * 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
US5025400A (en) * 1985-06-19 1991-06-18 Pixar Pseudo-random point sampling techniques in computer graphics
US5940810A (en) * 1994-08-04 1999-08-17 The Trustees Of Columbia University In The City Of New York Estimation method and system for complex securities using low-discrepancy deterministic sequences
US5790442A (en) * 1995-03-14 1998-08-04 International Business Machines Corporation Method and apparatus for generating low-discrepancy sequence, as well as apparatus and method for calculating multiple integral of function f
US6529193B1 (en) 1996-06-25 2003-03-04 Mental Images Gmbh & Co. Kg System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points
US6028606A (en) * 1996-08-02 2000-02-22 The Board Of Trustees Of The Leland Stanford Junior University Camera simulation system
US6370270B1 (en) * 1999-01-06 2002-04-09 National Instruments Corporation System and method for sampling and/or placing objects using low discrepancy sequences
US7187379B2 (en) * 2000-06-19 2007-03-06 Mental Images Gmbh Generating an image using sample points determined on a sub-pixel grid offset using elements of a low-discrepancy sequence
ES2272547T3 (es) * 2000-06-19 2007-05-01 Mental Images Gmbh Generacion de valores de pixeles utilizando metodologias estrictamente deterministicas para generar puntos de muestra.
US7167175B2 (en) * 2000-06-19 2007-01-23 Mental Images Gmbh System and computer-implemented method for evaluating integrals using a quasi-Monte Carlo methodology in which sample points represent dependent samples generated using a low-discrepancy sequence
US7184042B2 (en) * 2000-06-19 2007-02-27 Mental Images Gmbh Computer graphic system and computer-implemented method for generating images using a ray tracing methodology that makes use of a ray tree generated using low-discrepancy sequences and ray tracer for use therewith
US7230618B2 (en) * 2000-06-19 2007-06-12 Mental Images Gmbh Generating images using multiple photon maps
US7990380B2 (en) * 2004-09-30 2011-08-02 Intel Corporation Diffuse photon map decomposition for parallelization of global illumination algorithm
US7221365B1 (en) * 2004-11-23 2007-05-22 Autodesk, Inc. System and method for distributing photons when rendering an image using photon mapping

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170254B2 (en) 2017-09-07 2021-11-09 Aurora Innovation, Inc. Method for image analysis
US11334762B1 (en) 2017-09-07 2022-05-17 Aurora Operations, Inc. Method for image analysis
US11748446B2 (en) 2017-09-07 2023-09-05 Aurora Operations, Inc. Method for image analysis

Also Published As

Publication number Publication date
US7453460B2 (en) 2008-11-18
ATE343185T1 (de) 2006-11-15
US20050275660A1 (en) 2005-12-15
EP1305775A2 (de) 2003-05-02
US20050264564A1 (en) 2005-12-01
DE60123962D1 (de) 2006-11-30
WO2002003326A3 (en) 2002-10-31
US20080068378A1 (en) 2008-03-20
ES2272547T3 (es) 2007-05-01
WO2002003326A2 (en) 2002-01-10
EP1305775B1 (de) 2006-10-18
US7227547B2 (en) 2007-06-05
US20090147002A1 (en) 2009-06-11
AU2002210811A1 (en) 2002-01-14
US20070273690A1 (en) 2007-11-29
US7236171B2 (en) 2007-06-26
US7515151B2 (en) 2009-04-07

Similar Documents

Publication Publication Date Title
DE60123962T2 (de) Erzeugen von pixelwerten unter verwendung streng deterministischer methoden zum erzeugen von abtast-punkten
US7499054B2 (en) Generating images using multiple photon maps
US7453461B2 (en) Image generation using low-discrepancy sequences
US7358971B2 (en) Generating images using ray tracing and ray tree generated using low-discrepancy sequences
DE3620508C2 (de) Verfahren und Vorrichtung zum Erzeugen eines elektronischen Videobildsignals
US7425957B2 (en) Computer graphics methods and systems using quasi-monte carlo methodology
DE60222437T2 (de) Bildsynthese mit genau deterministischen methodologien unter verwendung von recursiven rotationen zur musterpunkterzeugung
US7432935B2 (en) Image synthesis methods and systems for generating sample points in a graphics scene
JP4072209B2 (ja) 画素値を発生する装置および方法
Purgathofer A statistical method for adaptive stochastic sampling
US20070211051A1 (en) Computer Graphics Systems, Methods and Computer Program Products Using Sample Points Determined Using Low-Discrepancy Sequences
DE102015107872A1 (de) Neu beleuchtbare Textur zur Verwendung beim Rendern eines Bildes
DE102014105146A1 (de) System, Verfahren und Computerprogrammprodukt zum Durchführen einer Pfad-Raum-Filterung
JP4291395B2 (ja) 標本点を発生するための厳密に決定論的な方法を用いて画像中の画素の画素値を発生する装置及び方法
EP1915739B1 (de) Verfahren und system zur bildsynthese
EP1628263B1 (de) Erzeugen von Pixelwerten unter Verwendung streng deterministischer Methoden zum Erzeugen von Abtastpunkten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition