-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich auf Computer-Grafiken und genauer auf eine Durchführung einer Lichtübertragungssimulation.
-
HINTERGRUND
-
Lichtübertragungssimulation ist eine gängige Technik, die für eine Bilderzeugung genutzt wird. Beispielsweise kann eine Lichtübertragungssimulation fotorealistische Bilder liefern, wenn sie während einer Modellierung mit physikalischen Geräten, wie Kameras, Lichtquellen und Material über eine Oberfläche einer Szene implementiert wird. Trotzdem sind derzeitige Techniken zur Durchführung von Lichtübertragungssimulationen mit einer Reihe von Begrenzungen verbunden.
-
Abhängig von der Komplexität eines Modells kann beispielsweise das inhärente Rauschen von Simulationsalgorithmen mit im Laufe der Berechnung nur langsam verschwinden. Es besteht daher die Notwendigkeit, unter anderem dieses Problem des Standes der Technik zu lösen.
-
Die Druckschrift Keller, Alexander, Leonhard Grünschloß, and Marc Droske. „Quasi-Monte Carlo progressive photon mapping." Monte Carlo and Quasi-Monte Carlo Methods 2010. Springer, Berlin, Heidelberg, 2012. 499-509, offenbart offenbart eine Simulation von Lichttransport mittels Progressive Photon Mapping.
-
Die Druckschrift Ward, Gregory J., Francis M. Rubinstein, and Robert D. Clear. „A ray tracing solution for diffuse interreflection." Proceedings of the 15th annual conference on Computer graphics and interactive techniques. 1988, offenbart ein Raytracing-Verfahren zur Berechnung von Interreflexionen zwischen Oberflächen mit sowohl diffusen als auch spiegelnden Komponenten.
-
Die Druckschrift Knaus, Claude, and Matthias Zwicker. „Progressive photon mapping: A probabilistic approach.“ ACM Transactions on Graphics (TOG) 30.3 (2011): 1-13, offenbart Techniken für Progressive Photon Mapping.
-
Die Druckschrift Sung, Kelvin, Andrew Pearce, and Changyaw Wang. „Spatial-temporal antialiasing.“ IEEE Transactions on Visualization and Computer Graphics 8.2 (2002): 144-153, offenbart Techniken zur separaten Lösung von räumlich-zeitlichen geometrischen und Schattierungs-Aliasing-Problemen.
-
Die Druckschrift Ragan-Kelley, Jonathan, et al. „Decoupled sampling for graphics pipelines.“ ACM Transactions on Graphics (TOG) 30.3 (2011): 1-17, offenbart entkoppelte Abtastverfahren zur Entkopplung von Schattierung und Sichtbarkeitsabtastung in Grafikpipelines.
-
Die Druckschrift
US 2012 / 0 200 570 A1 offenbart Bilderzeugungstechniken basierend auf einer Brechungseigenschaft und/oder Reflexionseigenschaft auf einem Objekt.
-
ZUSAMMENFASSUNG
-
Es werden ein System nach Anspruch 24, ein Verfahren nach Anspruch 1 und ein computer-lesbares Speichermedium nach Anspruch 23 zur Durchführung einer Pfad-Raum-Filterung vorgestellt. Bei deren Nutzung wird neben anderen Schritten ein Satz von Lichtübertragungspfaden, die einer Szene zugeordnet sind, abgetastet (sampled). Zusätzlich wird eine Mehrzahl von Vertices, die dem abgetasteten Satz von Lichtübertragungspfaden (light transport paths)zugeordnet sind, ausgewählt, wobei jeder ausgewählte Vertex einen zugeordneten Durchsatz und Lichtbeitrag aufweist. Darüber hinaus wird ein durchschnittlicher Lichtbeitrag jeder der ausgewählten Mehrzahl von Vertices unter Verwendung von einem oder mehr Gewichtsfaktoren bestimmt. Außerdem wird der durchschnittliche Lichtbeitrag jedes der ausgewählten Mehrzahl von Vertices nach einer Multiplikation des durchschnittlichen Lichtbeitrages jedes der ausgewählten Vertices mit dem zugeordneten Durchsatz des Vertex kombiniert.
-
Figurenliste
-
- 1 stellt ein Verfahren zur Durchführung einer Pfad-Raum-Filterung entsprechend einem Ausführungsbeispiel dar.
- 2 stellt eine beispielhafte Illustration einer Pfad-Raum-Filterung entsprechend einem anderen Ausführungsbeispiel dar.
- 3 zeigt einen ersten Eindruck einer resultierenden Verbesserung der Leistung unter Nutzung der Pfad-Raum-Filterung entsprechend einem anderen Ausführungsbeispiel.
- 4 stellt eine schematische Darstellung des grundsätzlichen Unterschiedes zwischen Strahleninterpolationen und Pfad-Raum-Filterung entsprechend einem anderen Ausführungsbeispiel dar.
- 5 stellt einen Vergleich zwischen der Farbraumfilterung und Photonen-Mapping entsprechend einem anderen Ausführungsbeispiel dar.
- 6 stellt ein exemplarisches System dar, in welchen die unterschiedlichen Architekturen und/oder Funktionalitäten der unterschiedlichen vorangegangenen Ausführungsbeispiele implementiert sein können.
-
Detaillierte Beschreibung
-
1 stellt ein Verfahren 100 zur Durchführung der Pfad-Raum-Filterung entsprechend einem Ausführungsbeispiel dar. Wie in der Operation 102 dargestellt ist, wird ein Satz von Lichtübertragungspfaden, die einer Szene zugeordnet sind, abgetastet. In einem Ausführungsbeispiel kann die Szene eine grafische Szene aufweisen, die gerendert werden soll. In einem anderen Ausführungsbeispiel kann der Satz der Lichtübertragungspfade aus einer gesamten Anzahl von Lichtübertragungspfaden, die der Szene zugeordnet sind, gesampelt werden.
-
Zusätzlich kann in einem Ausführungsbeispiel ein Lichtübertragungspfad der Szene einen Strahl oder Pfad von Licht aufweisen, der durch die Szene verläuft (z.B. durch Pixel der Szene, usw.). Beispielsweise kann der Lichtpfad bei einer Lichtquelle beginnen und durch die Szene verlaufen, bis er eine Kamera erreicht. In einem anderen Ausführungsbeispiel kann das Abtasten des Satzes der Lichtübertragungspfade eine Auswahl von Pfaden aus der Gesamtanzahl der Lichtübertragungspfade, die der Szene zugeordnet sind, aufweisen. In wiederum einem anderen Ausführungsbeispiel kann das Abtasten der Lichtübertragungspfade entsprechend anderen Kriterien erfolgen. Beispielsweise kann der Satz der Lichtübertragungspfade durch eine oder mehrere Aktionen abgetastet werden, die einen oder mehr von Erzeugen von Augenpfade, Erzeugen von Lichtpfade und ein Verbinden von einem oder mehr Augenpfaden und Lichtpfaden durch einen oder mehr Schattenstrahlen und der Umgebung aufweisen. In wiederum einem anderen Ausführungsbeispiel können die Lichtübertragungspfade Lichtübertragungspfade mit Vertices in einem oder mehr von beteiligten Medien oder durchsichtigen Materialien (translucent matter) aufweisen.
-
Wie weiterhin in Operation 104 dargestellt, wird eine Mehrzahl von Vertices, die dem abgetasteten Satz von Lichtübertragungspfaden zugeordnet sind, ausgewählt, wobei jeder ausgewählte Vertex einen zugeordneten Durchsatz und Lichtbeitrag aufweist. In einem Ausführungsbeispiel kann jeder Vertex auf einen Kreuzungspunkt innerhalb der Szene hinweisen. Beispielsweise kann ein Vertex, der einem Lichtübertragungspfad zugeordnet ist, auf einen Kreuzungspunkt zwischen einem Licht Übertragungsweg und einer Oberfläche innerhalb der Szene hinweisen.
-
Weiterhin kann jeder Lichtbeitrag jedes Vertex einen Betrag von Licht aufweisen, das von dem zugeordneten Lichtübertragungspfad am Vertex beigetragen wird. In einem anderen Ausführungsbeispiel kann der Durchsatz, der jedem Vertex zugeordnet ist, eine akkumulierte Dämpfung des Lichtes aufweisen, wenn es von diesem Vertex zu zumindest einem von einer Kamera oder einem Anzeigeschirm verläuft.
-
Darüber hinaus kann in einem Ausführungsbeispiel der abgetastete Satz von Lichtübertragungspfaden lokal gefiltert sein. Beispielsweise können einer oder mehr Lichtübertragungspfade innerhalb des abgetasteten Satzes entsprechend einem oder mehr Kriterien entfernt werden. In einem anderen Ausführungsbeispiel kann das Filtern vor der Bestimmung des durchschnittlichen Lichtbeitrages von jedem der ausgewählten Mehrzahl von Vertices ausgeführt werden.
-
Zusätzlich kann in einem Ausführungsbeispiel das Filtern der Lichtübertragungspfade nach einem beliebigen Kriterium erfolgen. Beispielsweise kann das Filtern das Abtasten der einen oder mehreren Lichtübertragungspfade unter Nutzung einer zufälligen, pseudo-zufälligen oder quasi-zufälligen Auswahl der zu filternden Abtastungen erfolgen. Auf diese Weise kann die lokale Filterung die Effizienz einer numerischen Integro-Näherung, die durchgeführt wird, verbessern.
-
Darüber hinaus kann in einem weiteren Ausführungsbeispiel das Filtern der abgetasteten Lichtübertragungspfade zusätzlich ein Durchführen einer oder mehr zusätzlicher Aktionen aufweisen. Beispielsweise kann für den i-ten Lichtübertragungspfad innerhalb des abgetasteten Satzes von Lichtübertragungspfaden mindestens ein Vertex xi , eine Dämpfung αi entlang eines Augenpfadsegmentes zu dem Vertex xi und ein Strahlungsbeitrag ci des Lichtpfadsegmentes gespeichert werden.
-
Weiterhin kann in einem Ausführungsbeispiel das Filtern der abgetasteten Lichtübertragungspfade weiterhin ein Durchführen von einen oder mehr Akkumulationen aufweisen. Tabelle 1 stellt c̅
i dar, welches während der Bildung eines Bildes durch die Akkumulation ∝
i·c̅
i entsprechend einem Ausführungsbeispiel genutzt wird. Natürlich sei darauf hingewiesen, dass die Darstellung von c̅
i , wie in Tabelle 1 dargestellt ist, nur für illustrative Zwecke genutzt wird, und sollte deshalb nicht als in irgendeiner Art und Weise limitierend angesehen werden.
Tabelle 1
|
-
Außerdem kann in einem Ausführungsbeispiel im Kontext der Tabelle 1 B einen Radius r (n) um den Vertex x
i aufweisen. In einem anderen Ausführungsbeispiel kann der Radius r (n) ausgewählt sein aus entweder einem Abstand entlang eines Pfades oder einem festen Winkel. In wiederum einem anderen Ausführungsbeispiel kann die Strahlbeitrag c
i mit einer zugeordneten Wellenlänge λ
i gemittelt werden, um eine Spektrallichtübertragung konsistent zu simulieren. Tabelle 2 stellt darüber hinaus Merkmale des Radius r (n) entsprechend einem Ausführungsbeispiel dar. Es sei darauf hingewiesen, dass die Merkmale des Radius r (n), wie in Tabelle 2 dargestellt, nur für illustrative Zwecke genutzt wird, und sie sollte deshalb nicht in irgendeiner Art und Weise als limitierend angesehen werden.
Tabelle 2
|
-
Darüber hinaus kann in einem Ausführungsbeispiel die Mehrzahl von Vertices unter Nutzung einer Bereichssuche ausgewählt werden. In einem anderen Ausführungsbeispiel kann die Bereichssuche ausgeführt werden durch mindestens einem von: einer Hash-Grid, einer klassischer Bereichssuche und einem Teile-und-Herrsche-Verfahren.
-
Wie in Operation 106 dargestellt, wird weiterhin ein durchschnittlicher Lichtbeitrag von jeder der ausgewählten Mehrzahl von Vertices unter Nutzung von einem oder mehr Gewichtsfaktoren bestimmt. In einem Ausführungsbeispiel können die einen oder mehreren Gewichtsfaktoren den durchschnittlichen Lichtbeitrag der einen oder mehr der ausgewählten Mehrzahl von Vertices verändern. In einem anderen Ausführungsbeispiel kann jeder der einen oder mehr Gewichtsfaktoren eine Ähnlichkeit zwischen einem oder mehr der ausgewählten Mehrzahl von Vertices messen, wobei die Ähnlichkeit von einem oder mehr einer geometrischen Ähnlichkeit, einer Übertragungsähnlichkeit und einer Wahrnehmungsähnlichkeit zwischen einem oder mehr der ausgewählten Mehrzahl von Vertices abhängen.
-
Wie auch in der Operation 108 dargestellt, wird der durchschnittliche Lichtbeitrag von jeden der ausgewählten Mehrzahl von Vertices nach einer Multiplikation des durchschnittlichen Lichtbeitrages von jedem der ausgewählten Vertices mit dem zugeordneten Durchsatz des Vertices kombiniert. In einem Ausführungsbeispiel kann das Auswählen, das Bestimmen und das Kombinieren sich in iterative Weise wiederholen. In einem anderen Ausführungsbeispiel kann das Auswählen, das Bestimmen, das Filtern und das Kombinieren in einem progressiven Verfahren implementiert sein.
-
Entsprechend einem Ausführungsbeispiel kann das Auswählen, das Bestimmen, das Filtern und das Zusammenfügen über mehrere Ansichten von einem oder mehr von Rendern von Stereo-Bild-Paaren, Rendern von multiplen Frames in einer Animation oder Rendern eines Satz von Bildern, welche für ein oder mehrere Lichtfeldanzeigen erforderlich sind, angewendet werden.
-
Darüber hinaus kann in einem Ausführungsbeispiel das Abtasten des Satzes der Lichtübertragungspfade von einer oder mehr Schattierungsoperationen entkoppelt sein. In einem anderen Ausführungsbeispiel kann die lokale Filterung des abgetasteten Satzes der Lichtübertragungspfade linear erfolgen und zusätzlich zu einer abtast-basierten Rendering-Engine angewendet werden. In wiederum einem anderen Ausführungsbeispiel kann das Abtasten des Satzes der Lichtübertragungspfade durch ein zufälliges, pseudozufälliges oder quasi-zufälliges Abtasten erfolgen.
-
Auf diese Weise kann das Kobinieren der durchschnittlichen Lichtbeiträge von jedem der ausgewählten Mehrzahl von Vertices während einer Lichtübertragungssimulation durchgeführt werden und die lokale Filterung kann eine Effizienz der Lichtübertragungssimulation verbessern. Zusätzlich kann ein Bild, das gerendert werden soll, festgelegt werden, und Pfadverfolgung (tracing) kann während des Renderns durchgeführt werden, wobei Pfad-Raum-Filterung zusammen mit der Pfadverfolgung durchgeführt wird.
-
Zusätzlich beschreibende Informationen werden hinsichtlich der verschiedenen optionalen Architekturen und Merkmalen beschrieben, mit denen das vorangehend beschriebene Framework entsprechend den Wünschen eines Anwenders implementiert sein kann oder nicht. Es sei betont, dass die folgenden für darstellende Zwecke angegebenen Informationen in keiner Art und Weise als limitierend angesehen werden sollten. Eines der folgenden Merkmale kann optional mit oder ohne Ausschluss von anderen beschriebenen Merkmalen einbezogen sein.
-
2 stellt eine exemplarische Illustration 200 der Pfad-Raum-Filterung entsprechend einem Ausführungsbeispiel dar. Optional kann die Pfad-Raum-Filterung in der Darstellung 200 im Kontext der Funktionalität von 1 ausgeführt werden. Natürlich kann die Pfad-Raum-Filterung in der Darstellung 200 in jeder gewünschten Umgebung implementiert sein. Es sei außerdem darauf hingewiesen, dass die vorangegangenen Definitionen für die gesamte vorliegende Beschreibung gelten.
-
Wie dargestellt, wird der Beitrag des Strahles 202 (dargestellt als durchgezogene Linie), wenn man dem Strahl 202 von einem Auge 204 folgt, durch Mittelwertbildung der Beiträge von allen Pfaden mit Vertices in der durchgezogen dargestellten Kugel 204 um den Kreuzungspunkt bestimmt. Die beitragenden Pfadsegmente 208A-C sind als existierende durchgehende Pfeile dargestellt. Dies ist gegenüber einem Photonen-Mapping anders (siehe die gestrichelte Kugel 210), wobei einfallende Pfadsegmente mit einem Rückstrahl verbunden werden. In Analogie zum progressiven Photonen-Mapping muss der Radius der Kugel mit der Anzahl der Abtastungen verschwinden, um in einen konsistenten Algorithmus zu münden.
-
Eine Modellierung mit physikalischen Entitäten wie Kameras, Lichtquellen und Materialien oberhalb der Szenen-Oberfläche kann eine Lichtübertragungssimulation fotorealistische Bilder liefern. Das oben genannte Pfad-Raum-Filterung-Bildsynthese-Verfahren kann ohne persistente Näherungs-Artefakte konvergieren, kann nur einen kleinen Satz von Parametern aufweisen und kann einer Rauschreduktion ähnlich zu anderen Näherungsverfahren aufweisen.
-
Ein Zwischenspeichern (caching) von Abtastungen von Strahlen und eine Interpolation derselben, um die Effizienz der Lichtübertragungssimulation zu erhöhen, ist eine Technik, die in einem Renderer implementiert sein kann. Siehe beispielsweise in „A Ray Tracing Solution for Diffuse Interreflection“ (Ward et al., In Computer Graphics, Seiten 85 - 90, 1988) und „Practical Global Illumination with Irradiance Caching" (Krivanek et al., Synthesis lectures in computer graphics and animation. Morgan & Claypool, 2009). Einige derartig zu adressierende Elemente können Artefakte aufgrund der Interpretation von zwischengespeicherten Strahlungsabtastungen, die noch nicht konvergiert sind, und ein Flimmern in Animationen aufweisen, wenn immer adaptive Abtastungen nicht auf kohärente Art und Weise über die Zeit ausgeführt werden können. Siehe beispielsweise in „Radiance Caching for Global Illumination Computation on Glossy Surfaces“ (J. Krivanek, Ph.d. thesis, Universite de Rennes 1 and Czech Technical University in Prague, December 2005.
-
Lichtzwischenspeicher speichern Beleuchtungsabtastungen, die in den Vertices eines Pfad-Nachverfolgers in einem Vorprozess berechnet werden. Siehe beispielsweise in „http://www.spot3d.com/vray/help/150SP1/render params lightmap.htm“ und „http://www.spot3d.com/vray/help/150SP1/render params advancedimap.htm“. Dann kann die Effizienz der nachfolgenden Rendering-Phase durch eine Interpolation der globalen Beleuchtung aus gespeicherten Beleuchtungsabtastungen erhöht werden. Optional können diese Abtastungen gefiltert werden, um Rauschen zu reduzieren. Anstelle sich auf Interpolation zu verlassen, kann ein Diskontinuitätspuffer eine Varianz bei der Mittelwertbildung der Strahlung von benachbarten Pixeln durch ähnliche Lokation reduziert werden. Siehe beispielsweise in „Quasi-Monte Carlo Methods for Photorealistic Image Synthesis“ (A. Keller, PhD thesis, University of Kaiserslautern, Germany, 1998) und „Interactive Global Illumination using Fast Ray Tracing" (Wald et al., In P. Debevec und S. Gibson, editors, Rendering Techniques 2002 (Proc. 13th Eurographics Workshop on Rendering), pages 15-24, 2002).
-
Die Ideen einer Strahlen-Zwischenspeicherung und Filterung können zusammengefügt werden, wobei eine einfache Diskontinuitäts-Metrik in einem gewichteten Mittelwert genutzt werden kann, um die Strahlung durch Filterung anstelle einer Interpolation zu bestimmen. Siehe beispielsweise in „Irradiance filtering for Monte Carlo ray tracing" (Kontkanen et al., Monte Carlo and Quasi-Monte Carlo Methods 2004, Seiten 259-272. Springer, 2004).
-
In einem Ausführungsbeispiel kann ein sehr kleiner Satz von Abtastungen genügend Informationen für eine qualitativ hochwertige Bildsynthese bereitstellen. Anstelle einer Abtastung der originalen Gesamtheit kann eine Funktion, die zum Abtasten weniger aufwendig ist, von einem kleinen Satz von Abtastungen der originalen Gesamtheit rekonstruiert werden. Siehe beispielsweise in
„Temporal light field reconstruction for rendering distribution effects" (Lehtinen et al., ACM Trans. Graph., 30(4), 2011) und „Reconstructing the indirect light field for global illumination." (Lehtinen et al., ACM Trans. Graph., 31(4), 2012).
-
Anstelle einer Abtastung für eine Rekonstruktion kann ein effizientes Schema direkt die Pfadraumabtastungen filtern. Der determinierte Algorithmus kann einen kleinen Satz von Parametern aufweisen, kann konsistent sein, um persistenten Artefakte und eine Parameteranpassung zu vermeiden, kann einfach zu implementieren sein, und er kann die Vorteile der anderen Anstrengungen vereinigen. Ein erster Eindruck der resultierenden Performance-Verbesserungen kann 3 entnommen werden, welche einen Vergleich 300 der Resultate der Pfadverfolgung 302 und der Pfadverfolgung mit einer Pfad-Raum-Filterung 304 darstellt.
-
Algorithmus
-
In einem Ausführungsbeispiel kann eine Sequenz mit geringer Abweichung durchnummeriert werden, um kontinuierliche Blöcke von bm ∈ ℕ Lichtübertragungspfaden abzutasten. Die gesamte Anzahl der Lichtübertragungspfade kann durch den Integerwert n gezählt werden. Siehe beispielsweise in „Deterministic consistent density estimation for light transport simulation" (Keller et al., Monte Carlo und Quasi-Monte Carlo Methods 2012, Seiten 467-480, Springer, 2013).
-
Für den i-ten Lichtübertragungsfehlern kann für mindestens einen Vertex xi die Dämpfung αi entlang eines Augenpfadsegmentes zu dem Vertex und der Strahlungsbeitrag ci zu dem Vertex gespeichert werden. In einem anderen Ausführungsbeispiel kann mindestens eines von einem ersten Index, wie er von einer Kamera gesehen wird, oder ein erster Vertex entlang des Pfades von der Kamera, der als genügend diffus angesehen wird, als Tuple (xi, αi, ci) gespeichert werden. In wiederum einem anderen Ausführungsbeispiel können mindestens einer oder keiner oder alle Vertices als Tuples gespeichert werden.
-
Das Bild kann durch eine Akkumulation von ∝
i-c̅
i gebildet werden. Tabelle 3 stellt die gewichteten durchschnittlichen Beiträge c
i entsprechend einem Ausführungsbeispiel dar. Es sei natürlich darauf hingewiesen, dass die in Tabelle 3 genutzte Darstellung von c
i nur für illustrative Zwecke eingesetzt wird und deshalb als in keiner Weise limitierend angesehen werden sollte.
Tabelle 3
|
-
Tabelle 4 stellt die Definition von c
i entsprechend einem Ausführungsbeispiel dar. Es sei natürlich darauf hingewiesen, dass die in Tabelle 4 genutzte Darstellung von c
i nur für illustrative Zwecke eingesetzt wird und deshalb als in keiner Weise limitierend angesehen werden sollte.
Tabelle 4
ci ist definiert als das Verhältnis der Summe der gewichteten Beiträge
und der Summe der Gewichtsfaktoren wi,j aller Vertizes
in einer Kugel B mit dem Radius r(n) um xi (wie ausgewählt durch die charakteristische Funktion χB(n)). |
-
Tabelle 5 stellt Eigenschaften des Radius r(n) entsprechend einem Ausführungsbeispiel dar, der in der Pfad-Raum-Filterung genutzt wird, Es sei darauf hingewiesen, dass die Eigenschaften des Radius r(n), wie in Tabelle 5 dargestellt, nur für illustrative Zwecke eingesetzt wird und deshalb als in keiner Weise limitierend angesehen werden sollte.
Tabelle 5
|
-
In einem Ausführungsbeispiel kann der Parameter ro einen anfänglichen Radius bedeuten. In einem anderen Ausführungsbeispielen kann der Radius beliebig langsam abnehmen und deshalb kann α = 1/2 eine robuste Arbeitshypothese sein. Wenn man von Null verschiedene Gewichtsfaktoren postuliert, kann jeder verschwindende Radius
limn→∞ c̅i =ci garantieren und somit Konsistenz, weil die charakteristische Funktion XB(n) um xi zentriert ist, weshalb immer mindestens der i-te Pfad ausgewählt wird.
-
In einem Ausführungsbeispiel kann der Berechnungsschritt für die gewichteten durchschnittlichen Beiträge c̅i, , wie in Tab. 3 dargestellt, eine bestimmte Anzahl von Malen wiederholt werden, was in einer weichen Anpassung der Beiträge resultieren kann. Beispielsweise kann in einem ersten Iterationsschritt c̅i, anstelle von ci in der Berechnung des gewichteten gemittelten Beitrages verwendet werden, wie in Tab. 3 dargestellt, um einen iterierten Beitrag c̅i zu berechnen. Solch ein iterativer Schritt kann eine ausgewählte Anzahl von Malen wiederholt werden.
-
Die Vertices können effizient durch eine Bereichssuche abgefragt werden unter Nutzung eines Hash-Grid, einer klassischen Bereichssuche, welche einen kd-Baum, welcher über die gespeicherten Vertices xi gebildet wird, nutzt, eine gebundene Volumenhierarchie oder ein Teile-und-Herrsche-Verfahren, welches gleichzeitig alle Vertices berücksichtigen kann. Es sei darauf hingewiesen, dass der Satz von Abfragen und Datenpunkten gleich sein kann, was die Datenlokalität erhöhen kann und die Implementierung vereinfachen kann. Siehe beispielsweise in „Optimized spatial hashing for collision detection of deformable objects" (Teschner et al., In Proceedings of VMV'03, Munich, Germany, Seiten 47-54, 2003), und „A Divide-and-Conquer Algorithm for Simultaneous Photon Map Queries“ (Keller et al., Poster at High-Performance Graphics in Vancouver, 2011).
-
Zusätzlich können Unterschiede zwischen Verfahren für eine verteilte Daten-Interpolation und eine gewichtete gleichmäßige Abtastung (sampling) bestehen. Beispielsweise kann eine Interpolationsbedingung c1 = ci eine Durchschnittsbildung direkt von Anfang an verhindern. In einem anderen Beispiel, bm < < ∞, weil bm proportional zu einer Speichergröße sein kann. Siehe beispielsweise in „A two-dimensional interpolation function for irregularly-spaced data“ (D. Shepard, In Proceedings of the 1968 23rd ACM National Conference, Seiten 517-524. ACM, 1968), und „A hybrid approach to interactive global illumination and soft shadows“ (Knauer et al., The Visual Computer: International Journal of Computer Graphics, 26(6-8):565-574, 2010). Siehe auch in „Weighted uniform sampling - a Monte Carlo technique for reducing variance" (Powell et al., IMA J. Appl. Math., 2(3):228-236, 1966), und „Quasi-random methods for estimating integrals using relatively small samples" (Spanier et al., SIAM Review, 36(1):18-44, March 1994).
-
Parameter
-
Die prinzipiellen zwei Parameter zum Steuern einer Implementierung des progressiven Algorithmus sind der Umfang der Speichergröße (memory footprint) und der ursprüngliche Radius ro. In einem Ausführungsbeispiel kann der Speicherblock, indem alle Vertices eines Durchgangs gespeichert werden, so groß wie möglich gewählt werden, um so viele Vertices wie möglich einzubeziehen, und somit so viele Beiträge wie möglich in dem Mittelwertprozess wie möglich. Die Verbesserungen mit größeren Speichergrößen bei der gleichen Anzahl von Pfadraumabtastungen (path room sampling) weisen eine Varianzverringerung und ein Anti-Aliasing von geometrischen Details auf. Weil der Speicherverbrauch proportional zur Blockgröße bm sein kann, kann es sehr einfach sein, die maximale natürliche Zahl m bei gegebener Größe der Vertices und der maximalen Größe des Speicherblocks zu bestimmen.
-
Der ursprüngliche Radius ro kann von der Abfragelokation x
i abhängen. Beispielsweise kann er von der Definition des festen Winkels Δw : = πr
2 0 / d
2 einer Scheibe mit dem Radius ro in x
i senkrecht zu einem Strahl in einem Abstand d von dem Strahlursprung abgeleitet werden. Tabelle 6 stellt einen Anfangsradius in der Pfad-Raum-Filterung entsprechend einem Ausführungsbeispiel dar. Es sei darauf hingewiesen, dass die Merkmale des Anfangsradius, der in Tabelle 6 dargestellt ist, nur für illustrative Zwecke genutzt wird, und deshalb in keiner Weise als limitierend angesehen werden sollte.
Tabelle 6
|
-
In einem Ausführungsbeispiel kann für einen festen Winkel Δω der ursprüngliche Radius ro proportional zum Abstand d sein. Der Proportionalitätsfaktor kann durch den Nutzer ausgewählt werden oder kann unter Nutzung eines gegebenen festen Winkels bestimmt werden. Beispielsweise kann Δω durch den festen Winkel bestimmt sein, der durch den Bereich von 3x3 Pixeln auf dem Bildschirm hinsichtlich des Fokuspunktes bestimmt ist.
-
Es sei darauf hingewiesen, dass ein anisotropischer „Footprint“ aus mehreren Gründen unpraktisch sein kann. Die Notwendigkeit durch den Kosinus zwischen der Ebene, die normal zu xi ist, und der Strahlenrichtung numerische Probleme für Vektoren bedeuten kann, die nahezu vertikal sind. Darüber hinaus kann die Effizienz der Bereichsauswahl verkleinert werden, weil jetzt das Abfragevolumen einen beliebig großen Umfang hat. Schließlich kann es zu möglichen Durchschnittsbildung von Beiträgen von Vertices führen, die räumlich weit voneinander entfernt sind, obwohl die räumliche Umgebung des Vertex xi klein sein kann, wie zum Beispiel bei Blättern oder Haaren.
-
Weil weniger und weniger Beiträge mit kleiner werdendem Radius gemittelt werden, gibt es einen Zeitpunkt, an dem es keine Mittelwertbildung mehr gibt, weil nur der zentrale Vertex xi in die Abfrage einbezogen ist. Gleichzeitig kann dies zur Einsicht führen, dass ein Vergleich der maximalen Anzahl der durchschnittlichen Beiträge mit einem Schwellwert genutzt werden kann, um den Algorithmus automatisch zu beenden. Andererseits ist es ein Hinweis darauf, dass der Anfangsradius groß genug gewählt werden muss, um eine sinnvolle Anzahl von Beiträgen in den gewichteten Durchschnitten einzubeziehen.
-
Der Anfangsradius kann deshalb auch durch eine gegebene maximale Anzahl von Beiträgen, die in dem Durchschnitt enthalten sind, bestimmt werden. 4 stellt eine schematische Darstellung 400 der Unterschiede der Prinzipien zwischen einer Strahleninterpolation 402 und einer Pfad-Raum-Filterung 404 dar. Anstelle einer Interpretation von zwischengespeicherten Aufnahmen die durch eine Strahlschlichtung angeglichen werden, um die Strahlung an dem Punkt zu bestimmen, der von dem Auge durch den hervorgehobenen Strahl gesehen wird, mittelt die Pfad-Raum-Filterung 404 die Beiträge der Pfade in der Umgebung.
-
Gewichtsfaktoren
-
Eine Nutzung von nur gleichförmigen Gewichtsfaktoren w
i,j ≡ 1 kann zu einer sichtbaren Unschärfe führen, weil Beiträge in dem Durchschnitt enthalten sein können, die tatsächlich niemals in x
i gesammelt (gathered) worden. Weil eine Pfad-Raum-Filterung eine Strahlaufteilung imitieren kann, sollten Beiträge
welche durch eine Strahlaufteilung (bzw. Strahlsplittung) in x
i erzeugt wurden, höhere Gewichtsfaktoren erhalten, als solche, für die das nicht zutrifft. Solche nicht-gleichförmigen Gewichtsfaktoren w
i,j können als Produktgewichte konstruiert werden, welche aus der Heuristik gebildet sind, die für den Diskontinuitätspuffer, Photonen-Mapping, Strahleninterpolation und Lichtfeldrekonstruktionen genutzt wird. Siehe hierzu „Realistic Image Synthesis Using Photon Mapping.“ (H. Jensen, AK Peters, 2001).
-
Unschärfe über die Geometrie
-
Das Skalarprodukt
bestimmt die Ähnlichkeit der Normalen
und n
i in x
i. Während Beiträge mit negativem Skalaprodukt ausgeschlossen werden können, um einen Lichtverlust durch die Rückseite einer opaken Oberfläche zu vermeiden, kann ein positiver Schwellwert (z.B., 0,95 in einer Implementierung) genutzt werden, um mehrere Beiträge von dem Durchschnitt auszuschließen, was dabei helfen kann, Qualitätsprobleme zu verkleinern, die im Zusammenhang mit geometrischen oder approximierten Oberflächennormalen auftreten.
-
Unschärfe über Texturen
-
Die Bilder können klar sein, wenn alle Beiträge, die in dem Durchschnitt des BSDF in x
i evaluiert werden würden (z.B., ähnlich einem Diskontinuitätspuffer). In Situationen, in denen diese Evaluation zu aufwendig oder einfach nicht durchführbar ist, kann der Algorithmus sich auf Daten stützen, die während einer ursprünglichen Schattierungsevaluierung gespeichert wurden. Shader können einen Farbwert zurückgeben, welcher der BSDF multipliziert mit einem Verhältnis des Kosinus zwischen der Oberflächennormalen und der Richtung des Einfalls und einer Wahrscheinlichkeitsdichtefunktion (probability density function, pdf), welche für die Richtungen der Übertragung betrachtet worden ist. Für das Beispiel von Kosinus-verteilten Abtastungen auf diffusen Oberflächen bleibt nur der diffuse Rückstrahl, weil alle anderen Terme ausgelöscht werden. Solange eine Norm der Differenzen von diesen Termen
und x
i über einem Schwellenwert liegt (z.B., 0,05 in einer Implementierung), dann kann der Beitrag von
in dem Durchschnittswert eingefügt werden. Für ähnliche Reflexionsrichtungen kann dies die Unschärfe über Texturdetails und falsche Einstrahlung auf glänzende Materialien reduzieren. Obwohl ähnliche Beobachtungrichtungen implizit für Abfragelokation, wie direkt von dem Auge gesehen, implizit sein können, kann diese Ähnlichkeit für allgemeine Pfade und glänzende Oberflächen explizit durch einen Vergleich von Beobachtungsrichtungen, was zusätzlichen Speicher zum Speichern solcher Vektoren benötigt, betrachtet werden.
-
Unscharfe Schatten
-
Wenn eine Punktlichtquelle gegeben ist, kann ihre Sichtbarkeit von x
i und
entweder identisch oder unterschiedlich sein. Um zu verhindern, dass scharfe Schattengrenzen unscharf werden, können Beiträge nur für eine identische Sichtbarkeit herangezogen werden. Für eine Umgebungsabdeckung und Beleuchtung durch eine Umgebungskarte können unscharfe Schatten durch einen Vergleich der Längen von jeder Strahlenlänge in die Hemisphäre bei x
i und
gegenüber einem Schwellenwert reduziert werden.
-
Eine Nutzung von Normen, um die Beiträge direkt zu gewichten, kann zu einer höheren Streuung führen. In ähnlicher Weise führt eine Nutzung von Kernel (z.B., Kernel, die in der Domäne von Smoothed Particle Hydrodynamics (SPH) genutzt werden), welche anders sind als die charakteristische Funktion XB(n), um Beiträge durch ihren Abstand zu der Abfragelokation xi zu gewichten, zu einer höheren Streuung. Siehe beispielsweise in „Density Estimation for Statistics and Data Analysis" (B. Silverman, Chapman & Hall/CRC, 1986). Dies kann durch die Tatsache erklärt werden, dass unter der Annahme einer perfekten Wichtigkeitsabtastung, jedes Pfadsegment, welches durch eine Strahlenteilung erzeugt wurde, mit dem gleichen Gewichtsfaktor einbezogen wurde. Weil die Pfad-Raum-Filterung eine Strahlenteilung simuliert, können andere als binäre Gewichtsfaktoren die Streuung erhöhen. Wenn man nur (binäre) Gewichtsfaktoren nutzt, die entweder Null oder eins sind, kann der Nenner des Bruches von Tabelle 1 den Wert der Anzahl der einbezogenen Beiträge annehmen.
-
Anwendungen
-
Auf diese Weise können Verbesserungen durch eine direkte Anwendung des Algorithmus auf Pfadraumabtastungen eines Pfad-Tracers mit einer Next-Event-Estimation und impliziten multiplen Wichtigkeitsabtastungen erreicht werden. Siehe beispielsweise in „Mathematical Models and Monte Carlo Algorithms for Physically Based Rendering" (E. Lafortune, PhD thesis, Katholieke Universitiet Leuven, Belgium, 1996). Die Beleuchtung kann aus einer Umgebungskarte und Lichtquellen bestehen. Der erste Treffpunkt, gesehen von der Kamera, kann als der Vertex xi gespeichert werden. Im Gegensatz zu Strahlen-Interpolations-Verfahren kann eine Pfad-Raum-Filterung durchschnittliche Beiträge über Diskontinuitäten von detaillierten Geometrien effektiv ausmitteln. Auch in solchen schwierigen Umgebungen können die Verbesserungen substantiell sein.
-
Es sei darauf hingewiesen, dass, weil der Algorithmus linear ist, er für jede Aufteilung des Pfadraumes inklusive jeder Variation von multipler Wichtigkeitsabtastung funktionieren kann. Darüber hinaus kann der Algorithmus auf Vertices angewendet werden, welche durch mehrere Sichten erzeugt wurden. Somit können Rendering der Feldtiefe, Stereo-Paare von Bildern oder multiple Ansichten eine Szene nachhaltig von dem neuen Algorithmus profitieren, und Vertices können von allen Frames einer Animation einer statischen Szene genutzt werden. Tatsächlich kann die Art des gewichteten durchschnittlichen Beitrags ci von Tabelle 1 erlauben, Durchschnitte von Vertices von jeder beliebigen Art von Pfadraumabtastungen, zu bilden.
-
Die Pfad-Raum-Filterung kann die Notwendigkeit für eine intensive Strahlaufteilung in praktisch allen normalen Anwendungsfällen im Rendering überflüssig machen: Anstelle einer Aufteilung von Pfaden, die in Strahlbäume münden, können Beiträge über Basisfunktionen eines BSDF-Modells, repräsentiert durch eine lineare Kombination von Basisfunktionen, gefiltert werden. Siehe beispielsweise in „Distributed Ray Tracing" (Cook et al., In Computer Graphics (Proc. SIGGRAPH 1984), Seiten 137-145, 1984. Lokale Durchschnittswerte in xi wie beispielsweise Umgebungsüberdeckungen, Schatten von erweiterten und/oder vielen Lichtquellen, finale Zusammenführung, Smoothing Photon Maps oder effektive Lösungen, Ray Marching oder Effekte wie Depth of Field Simulationen können direkt aus der Pfadraumabtastung bestimmt werden. Dies kann mit der Beobachtung übereinstimmen, dass eine effektive Strahlungsaufteilung mit zunehmenden Abtastraten abnimmt.
-
Darüber hinaus kann eine Pfad-Raum-Filterung Verfahren mit so genannten Fire-Flies verbessern, weil der Beitrag der Fire-Flies durch die Anzahl der Beiträge, die in dem Mittelwert enthalten sind, gedämpft wird. Sichtbare Durchgangsartefakte können mehr wie Flecken anstelle von einzelnen hellen Pixeln aussehen.
-
Animationen
-
Ein gewöhnlicher Artefakt in Animationen, welche mit Interpolationsverfahren gerendert wurden, kann wegen beispielsweise temporär inkohärenten gespeicherten Abtastungen, ähnlichen gespeicherten Abtastungen oder temporären Änderungen in der Sichtbarkeit flimmern. In solchen Situationen kann es sein, dass Parameter angepasst werden müssen, was eine wiederholte Berechnung von Beginn an erfordern kann. Weil die Pfad-Raum-Filterung konsistent ist, können sichtbare Artefakte vorübergehend sein. Darüber hinaus kann der Algorithmus deterministisch und linear sein. Deshalb kann es ausreichen, die Anzahl des letzten Blockes oder die Abtastung für die Verarbeitung jedes Frames zu speichern, um selektiv irgendeinen Frame durch eine nur kontinuierliche Berechnung neu zu bestimmen.
-
Bewegungsunschärfe
-
Die konsistente Simulation von Bewegungsunschärfe kann durch eine Mittelwertbildung von Bildern an bestimmten Zeitpunkten realisiert werden. Siehe beispielsweise in U.S. Anmeldung Nr.
13/666,888 , angemeldet am 1. November 2012, welche hierin in ihrer Gesamtheit durch Referenz einbezogen sein soll. Als Alternative kann die Erweiterung der Bereichssuche, um die zeitliche Umgebung einzubeziehen, eine Mittelwertbildung über die Vertices zu unterschiedlichen Zeitpunkten erlauben. In den Fällen, in denen eine lineare Bewegung eine genügend genaue Näherung ist und ein Speichern von linearen Bewegungsvektoren verkraftbar ist, kann eine Rekonstruktion der Sichtbarkeit die Konvergenzgeschwindigkeit verbessern.
-
Spektral-Rendering
-
Die konsistente Simulation von Spektrallichtübertragung kann durch eine Mittelwertbildung von monochromatischen Beiträgen ci mit einer zugeordneten Wellenlänge λi ermöglicht werden. Die Projektion auf ein brauchbares Farbsystem kann während des Mittelwertbildungsprozesses erfolgen, wobei die brauchbaren Basisfunktionen als Faktoren zu den Gewichtsfaktoren multipliziert werden. Ein Beispiel so eines Satzes von Basisfunktionen sind die XYZ-Farbsystem-AntwortKurven (xyz color system response curves). Ein Beispiel für eine kontinuierliche Annäherung solcher Antwortkurven wird beispielsweise gegeben in„Simple Analytic Approximations to the CIE XYZ Color Matching Functions“ (Chris Wyman, Peter-Pike Sloan, und Peter Shirley, Journal of Computer Graphics Techniques (JCGT), vol. 2, no. 2, 1-11, 2013. Dies ist online verfügbar unter http://jcgt.org/published/0002/02/01/, was hierin in seiner Gesamtheit durch Referenz einbezogen sein soll.
-
Teilnehmende Medien und Durchsichtigkeit
-
Die Effizienz der konsistenten Simulation bei teilnehmenden Medien und Durchsichtigkeit kann durch eine Nutzung von Pfad-Raum-Filterung verbessert werden. Weil die Pfad-Raum-Filterung ein linearer Algorithmus sein kann, kann er angewendet werden, um Beiträge von jeder Art von Lichtübertragungspfade zu kombinieren, was Lichtübertragungspfade mit Vertices in teilnehmenden Medien und durchsichtigen Materialien einbeziehen kann.
-
Entkoppelung des Abtasten (Sampling) vom Shading_
-
Eine Entkoppelung des Abtastens vom Shading kann in direkter Weise durch ein Abtasten von mehr Augenpfadsegmenten (eye path segments) mit Abfragelokationen xi und Dämpfungen αi erreicht werden, ohne allerdings die Beiträge ci, was ein verbessertes Anti-Aliasing bei gleichen Shading-Raten erlaubt. Weil bei solchen Pfadsegmenten nicht garantiert werden kann, dass ein Beitrag vorliegt, brauchen sie nicht in dem Akkumulationsprozess im Falle von leeren Abtastungen berücksichtigt werden. Siehe beispielsweise in „Adaptive filtering for progressive Monte Carlo image rendering“ (Suykens et al., I In WSCG 2000 Conference Proceedings, 2000), was hierin in seiner Gesamtheit durch Referenz einbezogen sein soll.
-
5 stellt einen Vergleich zwischen einer Pfadraumfilterung 502 und Photonen-Mapping 504 dar. Optional kann der Vergleich im Kontext der Funktionalität der 1-4 durchgeführt werden. Natürlich kann der Vergleich 500 in jeder anderen gewünschten Umgebung durchgeführt werden. Es sei außerdem darauf hingewiesen, dass die vorangehend genannten Definitionen für die gesamte vorliegende Beschreibung gelten mögen.
-
In einem Ausführungsbeispiel kann die Pfad-Raum-Filterung 502 als eine Technik zur Varianzreduktion gegenüber dem Photon-Mapping betrachtet werden. Bei der Pfad-Raum-Filterung 502 kann der Beitrag zu einem Vertex durch ein Teilen der Summe der Beiträge von existierenden Pfadsegmenten mit Vertices in der Nähe durch ihre Anzahl berechnet werden. Photon-Mapping 504 kann das Verhältnis des Flux des einfallenden Pfadsegmentes (Photonentreffer) und dem Scheibenbereich bestimmen.
-
Die Pfad-Raum-Filterung 502 kann in dem Sinne orthogonal sein, dass es zusätzlich zu irgendeinem (Pfadraum-) Rendering-Algorithmus, welcher auf Abtastungen basiert, genutzt werden kann. Es kann die Notwendigkeit für eine Strahlaufteilung überflüssig machen, was eine Pfadverfolgung basierend auf dem Fire-and-Forget-Paradigma ermöglicht, die für eine effiziente parallele Lichtübertragungssimulation erforderlich sein kann. Der progressive Algorithmus kann einfach zu implementieren sein, effizient sein, und es mag garantiert sein, dass er wegen seiner Konsistenz ohne persistente Artefakte konvergiert.
-
In einem Ausführungsbeispiel kann die Pfad-Raum-Filterung 502 in einer dramatischen Reduktion in der Varianz resultieren, wenn sie auf eine allgemeine Pfadverfolgung angewendet wird. In einem anderen Ausführungsbeispiel kann eine Verarbeitung von mehr Pfadraumabtastungen pro Durchgang eine effizientere Varianzreduktion wie auch besseres Anti-Aliasing ermöglichen. In wiederum einem anderen Ausführungsbeispiel kann die Pfad-Raum-Filterung reflektierte Spitzen in einem gerenderten Bild glätten. Die Pfad-Raum-Filterung kann auch substantielle Beträge von Rauschen - über komplexe Geometrien - entfernen.
-
Die Effizienz der Quasi-Monte-Carlo-Integro-Näherung für eine Lichtübertragungsimulation kann durch lokal gefilterte Pfadraumabtastungen vor deren Mittelwertbildung verbessert werden. Dieser Filter kann derart konstruiert werden, dass als Grenzwert das ursprüngliche Integro-Näherung-Problem gelöst werden kann.
-
6 stellt ein exemplarisches System 600 dar, in welchem die verschiedenen Architekturen und/oder Funktionen der verschiedenen vorangegangenen Ausführungsbeispiele implementiert sein können. Wie dargestellt, wird ein System 600 vorgestellt, inklusive mindestens eines Host-Prozessors 601, welcher mit einem Kommunikationsbus 602 verbunden ist. Das System weist außerdem einen Hauptspeicher 604 auf. Steuerungslogik (Software) und Daten sind in dem Hauptspeicher 604 gespeichert, welche die Form eines RAM (random access memeory) annehmen kann.
-
Das System 600 weist außerdem einen Grafik-Prozessor 606 und eine Anzeigeeinheit 608, d.h., einen Computermonitor, auf. In einem Ausführungsbeispiel kann der Prozessor 606 eine Mehrzahl von Shader-Modulen, ein Raster-Modul, usw. aufweisen. Jedes der vorangehend genannten Module kann sich sogar auf einer einzigen Halbleiterplattform befinden, um die Grafik-Verarbeitungseinheit (GPU) zu bilden.
-
In der vorliegenden Beschreibung kann sich eine einzige Halbleiterplattform auf einen einzigen, einheitlichen, Halbleiter-basierten integrierten Schaltkreis oder Chip beziehen. Es sei darauf hingewiesen, dass der Begriff „einzige Halbleiter-Plattform“ auch auf Multi-Chip-Module mit erhöhter Verbindungsfähigkeit (connectivity) hinweisen kann, welche On-Chip-Operationen simuliert und substantielle Verbesserung gegenüber einer Nutzung einer herkömmlichen Zentralverarbeitungseinheit (CPU) und Implementierung ermöglichen. Natürlich können die unterschiedlichen Module auch separat oder in verschiedenen Kombinationen auf Halbleiterplattformen entsprechend den Wünschen eines Nutzers angeordnet sein. Das System kann auch durch eine rekonfigurierbare Logik realisiert sein, was auch (was aber nicht darauf beschränkt ist) FPGAs (field programmable gate arrays) umfassen mag.
-
Das System 600 kann auch einen sekundären Speicher 610 aufweisen. Der sekundäre Speicher 610 weist beispielsweise eine Festplatte und/oder ein Speicherlaufwerk für austauschbare Medien auf, was beispielsweise durch ein Floppy-Disk-Drive, ein Magnetbandlaufwerk, ein Compact-Disk-Laufwerk usw. repräsentiert sein kann. Das Speicherlaufwerk für austauschbare Medien liest vom und/oder beschreibt in bekannter Art und Weise eine austauschbare Speichereinheit.
-
Computerprogramme oder Computer-Steuerungslogik-Algorithmen können in dem Hauptspeicher 604 und/oder dem sekundären Speicher 610 gespeichert sein. Solche Computerprogramme ermöglichen es dem System 600, wenn sie ausgeführt werden, verschiedene Funktionen auszuführen. Der Speicher 604, Speicher 610, flüchtige oder nicht-flüchtige Speicher und/oder jeder andere Art von Speicher sind mögliche Beispiele von nicht-durchleitenden (non-transient) Computer-lesbaren Medien.
-
In einem Ausführungsbeispiel kann die Architektur und oder Funktionalität der vorangegangenen beschriebenen Figuren implementiert sein im Kontext des Host-Prozessor 601, des Grafik-Prozessors 606 eines integrierten Schaltkreises (nicht dargestellt), welcher mindestens einen Teil der Fähigkeiten von entweder dem Host-Prozessor 601 oder dem Grafik-Prozessor 606 verfügt, einem Chipsatz (d.h., einer Gruppe von integrierten Schaltkreisen, welche entworfen sind als Einheit zusammenzuarbeiten und als Einheit verkauft zu werden, um zugeordnete Funktionen auszuführen, usw.) und/oder jeden anderen integrierten Schaltkreis für diesen Zweck.
-
Weiterhin kann die Architektur und/oder Funktionalität der verschiedenen vorher genannten Figuren im Kontext eines General Purpose Systems, eines Schaltkreis-Board- Systems, eine Spielekonsole-Systems für Unterhaltungszwecke, eines Anwendung-spezifischen Systems und/oder jedes anderen gewünschten Systems implementiert sein. Beispielsweise kann das System 600 die Form eines Desktop-Computers, eines Laptop-Computers oder jeder andere Art von Steuerung annehmen. Das System 600 kann außerdem die Form von verschiedenen anderen Vorrichtungen - inklusive aber nicht einschränkend - wie eines PDA (personal digital assitant), eines Mobiltelefons, eines Fernsehens usw. annehmen.
-
Darüber hinaus, obwohl nicht dargestellt, kann das System 600 mit einem Netzwerk [z.B. ein Telekommunikationsnetzwerk, ein Local Area Network (LAN), ein drahtloses Netzwerk, ein WAN (wide area network) wie dem Internet, ein Peer-to-Peer-Netzwerk, ein Kabelnetzwerk, usw.] für Kommunikationszwecke verbunden sein.