PatentDe  


Dokumentenidentifikation DE102006025030A1 12.04.2007
Titel Gradientenfreies Shading für Volume-Rendering unter Verwendung von Schatteninformationen
Anmelder Siemens Corp. Research, Inc., Princeton, N.J., US
Erfinder Desgranges, Philippe, West Windsor, N.J., US;
Engel, Klaus D., 86609 Donauwörth, DE
Vertreter Patentanwälte Westphal Mussgnug & Partner, 78048 Villingen-Schwenningen
DE-Anmeldedatum 26.05.2006
DE-Aktenzeichen 102006025030
Offenlegungstag 12.04.2007
Veröffentlichungstag im Patentblatt 12.04.2007
IPC-Hauptklasse G06T 15/60(2006.01)A, F, I, 20061106, B, H, DE
IPC-Nebenklasse G06T 11/40(2006.01)A, L, I, 20061106, B, H, DE   
Zusammenfassung Offenbart werden ein Verfahren und eine Vorrichtung für das Berechnen des Shading eines Volumens. Ein Schnitt des Volumens wird entlang einer Halbwinkelrichtung gerendert, die zwischen einer Lichtrichtung und einer Betrachtungsrichtung liegt. Ein Schnitt des Volumens wird dann entlang einer Lichtrichtung gerendert, um Schatteninformationen des Schnitts in einem Schattenpuffer zu assimilieren. Der Schattenpuffer wird orthogonal zu der Lichtrichtung ausgeblutet, um den Schnitt zu schattieren.

Beschreibung[de]

Die vorliegende Anwendung beansprucht den Vorzug der am 3. Juni 2005 eingereichten vorläufigen US-Anmeldung Nr. 60/687,642, die durch Bezugnahme hier aufgenommen ist.

ALLGEMEINER STAND DER TECHNIK

Die vorliegende Erfindung betrifft das Volume-Rendering und insbesondere das realistische Rendern von volumetrischen Datensätzen mit realistischem Shading und Schatten.

Das Direct-Volume-Rendering (DVR) ist ein Verfahren, um ein zweidimensionales (2D) Bild eines dreidimensionalen (3D) Datensatzes zu erhalten. Im Gegensatz zu vielen anderen Techniken ermöglicht die DVR-Technik, daß alle Daten im Datensatz zu dem 2D-Ausgabebild beitragen.

Das Volume-Rendering wird oftmals als Direct-Rendering beschrieben, da es Abtastpunkte aus dem Volumen direkt auf eine Betrachtungsebene über ein gewisses optisches Modell und eine Transferfunktion abbildet, die das Ausmaß steuert, in dem die Datenwerte transparent (oder opak) sind. Es existiert eine Vielzahl von DVR-Verfahren, doch basieren die meisten um die Idee herum, daß Voxel eine Farbe und eine Transparenzmaske zugeordnet wird. Diese Transparenz bedeutet, daß verdeckte Voxel immer noch zu dem Endbild beitragen können, und es ist dieser Mechanismus, der es DVR gestattet, einen ganzen 3D-Datensatz einschließlich der Interna eines Bilds anzuzeigen. Ein Vorteil von DVR besteht darin, daß DVR das Potential hat, den kompletten Datensatz direkt in 3D zu visualisieren, wobei die Interna des 3D-Bilds zumindest teilweise exponiert werden.

DVR-Bilder können fuzzy und/oder verschwommen sein, weil die Bilder unter Berücksichtigung vieler Punkte in dem Datensatz und durch ihr Vereinen erzeugt werden. Als solches eignen DVR-Bilder sich nicht besonders, wo kontrastreiche Bilder erforderlich sind, um feines Detail zu untersuchen. Das zugrunde liegende Prinzip von DVR ist das Abtasten des Volumendatensatzes entlang Strahlen in einer willkürlichen Richtung und Vermischen dieser Proben miteinander. Bevor sie vermischt werden, werden die in dem Volumen gelesenen Dichten mit einer Transferfunktion, die oftmals als eine Nachschlagetabelle codiert ist, in Farben konvertiert. Wenn eine ausreichende Anzahl von Proben involviert ist, ist das Ergebnis oftmals ein nahtloses Bild.

Es gibt Techniken, um Schatten mit einer interaktiven Rate (z.B. mehreren Frames pro Sekunde) zu erhalten, doch werden durch Verwendung der Schatten in Verbindung mit Shading die rechnerischen Fixkosten beider Techniken kumuliert. Um ein Volume-Rendering mit Schatten durchzuführen, besteht ein üblicherweise verwendetes Verfahren in der Akkumulierung der Lichtdämpfung jedes Schnitts des Volumens in einer Schattenkarte außerhalb des Schirms. Eine Schattenkarte erzeugt Schatten, als ob Licht von einer punktförmigen Lichtquelle austreten würde.

Nach dem Rendern jedes Schnitts in einen Framepuffer wird er ein zweites Mal in die Schattenkarte mit einem Shader gerendert, der die Lichtdämpfung akkumuliert. Ein Framepuffer bezieht sich auf den Speicher, der für das Speichern des Bilds bestimmt ist. Allgemein ist der Framepuffer ein zweidimensionales (2D) Array von Pixeln, wobei jedes Pixel eine Farbe speichert.

Zu einem gegebenen Zeitpunkt in dem Rendering-Prozeß enthält die Schattenkarte die Dämpfung des bereits gezeichneten Teils des Objekts, von dem Betrachtungspunkt des Lichts aus gesehen. Der Inhalt der Schattenkarte wird als die Schatteninformationen für den nachfolgenden, in den Framepuffer gerenderten Schnitt unter Verwendung projektiven Mappings verwendet. Dieser Prozeß wird iterativ für jeden Schnitt wiederholt.

Bei klassischen Rendering-Modellen wird ein Unterschied gemacht zwischen zwei Arten von Licht – diffuses Licht, das die Konsequenz von Licht ist, das auf die Oberfläche des Objekts direkt auftrifft, und spiegelndes Licht, das lokal in Bereichen erscheint, die Licht in Richtung auf das Auge des Betrachters reflektieren. Die endgültige Pixelfarbe hängt von diesen beiden Lichttermen ab, die unabhängig berechnet werden.

Der traditionelle Ansatz zu dem Shading beim Volume-Rendering beinhaltet das Berechnen eines lokalen Gradienten pro Voxel unter Verwendung einer zentralen Differenzableitung. Ein lokaler Gradient bestimmt die Änderungen in einem Datensatz lokal bezüglich eines bestimmten Punkts im Volumen. Das Blinn-Phong-Beleuchtungsmodell wird ebenfalls üblicherweise auf jedes Fragment in den gerenderten Schnitten angewendet. Das Blinn-Phong-Beleuchtungsmodell ermöglicht die Approximation von Shading, ohne zu rechenintensiv zu sein. Dieser gradientenbasierte Ansatz leidet jedoch unter mehreren Problemen, die die Leistung und Bildqualität beeinflussen.

Das Berechnen von Gradienten in Echtzeit erfordert oftmals viele Texture-Fetches, was verursacht, daß die Leistung von der Speicherbandbreite begrenzt wird. Das Vorberechnen von Gradienten reduziert die Anzahl der Texture-Fetches, ist aber nur für kleine Datensätze akzeptabel, da es eine erhebliche Menge von Texture-Speicher erfordert. Dieses Problem wird verschärft durch die schnell ansteigende Größe von Datensätzen aufgrund von höher auflösenden Scannern, wodurch der Texture-Speicherplatz hoch bewertet wird. Da Gradienten für alle Voxel berechnet werden, einschließlich jener, die nicht zu dem endgültigen Bild beitragen, ist die Gradientenberechnung pro Voxel im allgemeinen rechnerisch ineffizient.

Das gradientenbasierte Shading ist im allgemeinen gegenüber Rauschen sehr empfindlich, weshalb es schwierig ist, mit verrauschten Datensätzen wie etwa jenen von Ultraschall und Magnetresonanz-(MR)-Scans qualitativ hochwertige visuelle Ergebnisse zu erhalten. Außerdem sind Gradienten in homogenen Gebieten im allgemeinen instabil und weisen sehr niedrige Größen und willkürliche Richtungen auf. Als solches können sie Shading-Artefakte entlang schneidender Ebenengrenzen erzeugen, was eine spezielle Überlegung erforderlich macht, wenn diese Gebiete gerendert werden.

Es besteht somit weiterhin Bedarf an der Erzeugung realistisch schattierter Bilder, um ein diffuses Shading zu erreichen, ohne daß eine aufwendige Gradientenberechnung erforderlich ist.

KURZE BESCHREIBUNG DER ERFINDUNG

Gemäß der vorliegenden Erfindung wird das Shading eines Volumens berechnet. Ein Schnitt des Volumens wird entlang einer Halbwinkelrichtung gerendert, die zwischen einer Lichtrichtung und einer Betrachtungsrichtung liegt. Dann wird ein Schnitt des Volumens entlang einer Lichtrichtung gerendert, um Schatteninformationen des Schnitts in einem Schattenpuffer zu assimilieren. Der Schattenpuffer wird orthogonal zu der Lichtrichtung ausgeblutet, um den Schnitt zu schattieren.

Bei einer Ausführungsform beinhaltet das Ausbluten des Schattenpuffers das Skalieren des Schattenpuffers. Das Ausbluten kann auch das Dilatieren des Schattenpuffers beinhalten. Das Ausbluten des Schattenpuffers kann auch das Ausbluten mit einem zentralen Offset beinhalten. Für ein erstes Pixel des Schattenpuffers beinhaltet das Ausbluten mit einem zentralen Offset das Lokalisieren eines zweiten Pixels, das näher an einem zentralen Punkt des Schattenpuffers in einer gegebenen Entfernung von dem ersten Pixel liegt. Eine Korrektur kann ebenfalls ausgeführt werden, wenn das zweite Pixel zu nahe an dem zentralen Punkt liegt. Bei einer Ausführungsform wird dann das erste Pixel durch das zweite Pixel ersetzt.

Nach dem Ausbluten des Schattenpuffers wird der Schnitt unter Verwendung der Schattenkarte gerendert. Das Rendering des Schnitts unter Verwendung der Schattenkarte beinhaltet das Rendering ohne Gradienten, das Rendering mit selektiver spiegelnder Beleuchtung und das Rendering mit selektiven Blinn/Phong. Das Rendering des Schnitts unter Verwendung der Schattenkarte kann auch das Berechnen einer diffusen Beleuchtung mit der Schattenkarte beinhalten.

Diese und weitere Vorteile der Erfindung ergeben sich dem Durchschnittsfachmann durch Bezugnahme auf die folgende detaillierte Beschreibung und die beiliegenden Zeichnungen.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

1 ist ein Diagramm eines mit einem Frontscheinwerfer beleuchteten Objekts;

2 zeigt zwei Renderings eines Herzdatensatzes unter Verwendung von Transferfunktionen mit unterschiedlicher Steilheit;

3 zeigt ein Diagramm des oberen Körpers eines Skeletts, das ausgebildet wird, indem man eine Betrachtungs- und Lichtrichtung hat, die orthogonal zu einer Schnittebene verläuft;

4 zeigt ein High-Level-Blockdiagramm eines Computers gemäß einer Ausführungsform der Erfindung;

5 zeigt ein Diagramm des oberen Körpers eines anderen Skeletts, das unter Verwendung einer dilatierten Version einer Schattenkarte gemäß einer Ausführungsform der vorliegenden Erfindung ausgebildet wurde;

6 zeigt, wie eine Dilation (Ausweitung) in einer Richtung senkrecht zur Lichtrichtung gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt wird;

7 ist ein Flußdiagramm dieser für die Ausblutungsoperation gemäß einer Ausführungsform der vorliegenden Erfindung ausgeführten Schritte;

8 zeigt Flußdiagramme, die mehr Details der in 7 beschriebenen Ausblutungsprozedur gemäß einer Ausführungsform der vorliegenden Erfindung liefern;

9 zeigt zwei Serien von Renderings, die mit drei verschiedenen Ausblutungsoperationen gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt werden;

10 ist ein Diagramm, das die Dilations-, Skalierungs- und Zentrale-Offset-Rusblutungsverfahren gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;

11 ist eine Darstellung eines ersten Bilds, das ein gradientenfreies pseudospiegelndes Shading verwendet, und ein zweites Bild, das traditionelles gradientenbasiertes spiegelndes Shading verwendet;

12 zeigt Flußdiagramme für die verschiedenen Verfahren für das Rendering von Schnitten und

13 ist ein Diagramm einer Pixel-Shader-Codedatei gemäß einer Ausführungsform der vorliegenden Erfindung.

AUSFÜHRLICHE BESCHREIBUNG

Schatten in Bildern sind wichtige visuelle Anhaltspunkte für die Wahrnehmung von Gestalt und Zusammensetzung. Techniken zum Berechnen von Schatten beim Volume-Rendering simulieren im allgemeinen die Dämpfung der durch ein halbtransparentes Medium sich ausbreitenden Lichtintensität. Raytracingverfahren zum Berechnen von Schatten sind wohlbekannt, sind aber üblicherweise langsam und können nicht bei interaktiven Frameraten arbeiten.

Eine Schatten aufweisende bisherige texturbasierte Volume-Rendering-Technik basierte auf dem Prinzip von im voraus berechnetem Schattenvolumen. Dieses Schattenvolumen codiert für jedes Voxel die integrierte Lichtverdickung von anderen Voxels hinsichtlich der Lichtquelle. Diese Vorberechnung gilt nur für eine statische Lichtposition und ein gegebenes Objekt, was bedeutet, daß das Schattenvolumen immer dann regeneriert werden muß, wenn sich das Licht im Objektraum bewegt, und auf Grafikhardware übertragen werden muß. Andererseits sind diese Techniken oftmals sehr schnell, wenn sich eine virtuelle Kamera (von einem Computer generiert, der diese Berechnungen durchführt, um das Bild und die Schatten zu generieren) um das statisch beleuchtete Objekt herum bewegt.

Ein weiteres Verfahren, das zum Volume-Rendering mit Schatten verwendet wird, ist das Interlacing der Schattenvolumenberechnung mit dem eigentlichen Volume-Rendering, wodurch nur ein Schnitt des Schattenvolumens in dem Texturspeicher gespeichert werden muß. Mit dieser Technik erzielt man Ergebnisse, die gleichwertig zu den Ergebnissen sind, wenn ein sehr hoch aufgelöstes Schattenvolumen verwendet wird, wenngleich keine großen Speicherfixkosten vorliegen.

Die Verwendung eines gradientenbasierten Shading in Verbindung mit Schatten kann sehr lebensechte Bilder erzeugen, doch verhindern die Leistungsfixkosten der beiden kombinierten Techniken oftmals das Rendering bei interaktiven Frameraten. Andererseits ist wohlbekannt, daß einige Shading-Effekte effizienter mit bestimmten Transferfunktionen erzielt werden können und daß bestimmte Schattenwurftechniken die Erscheinung eines Shading erzeugen können.

1 ist ein Diagramm 100 eines mit einem Frontscheinwerfer beleuchteten Objekts (z.B. einer Lampe, die am Kopf eines gedachten Benutzers angebracht ist, so daß das Licht auf die Front des Objekts scheint). Eine Möglichkeit, um einen Shading-Effekt zu erzielen, ist durch Verwendung einer linearen eindimensionalen (1D) Transferfunktion. Diese Transferfunktion ist üblicherweise eine linear steigende Alpharampe mit Farben, die in den transparenten Bereichen dunkel und in den opaken Bereichen hell sind. Eine Alpharampe bestimmt, wie opak jedes Voxel ist. Weil die Übergänge zwischen den hohen und niedrigen Dichten üblicherweise progressiv sind, können die angezeigten Objekte zwei unterschiedliche Komponenten aufweisen: einen opaken Kern 104, der üblicherweise von heller Farbe ist, und eine transparente Hülle 108, die im allgemeinen dunkler ist. Der Einfachheit halber sei angenommen, daß die dunkle äußere Hülle 108 von konstanter Dicke s ist, und daß sich die Dichte (und Opazität) in der Hülle 108 linear von innen nach außen ändert.

Weil die Strahlen in der dunklen Hülle 108 in der Nähe von von dem Betrachtungspunkt weg abgewinkelten Oberflächen eine größere Entfernung zurücklegen, wird in die endgültige Pixelfarbe mehr Dunkelheit integriert, was zu dunkleren Farben für Oberflächen führt, die zum Betrachter fast senkrecht sind. Somit hängt die Strecke d, die der Strahl in der dunklen Hülle 108 zurücklegt, von dem Winkel zwischen der Normalen der Oberfläche und dem Betrachtungsvektor ab.

1 zeigt, daß die Strecke d als die Dicke der Hülle 108 dividiert durch den Kosinus des Winkels zwischen dem Betrachtungsvektor und der lokalen Oberflächennormalen berechnet werden kann. Dieser Kosinusterm kann umgeschrieben werden als das L·N, das beim Berechnen des Terms der diffusen Beleuchtung von einem Frontscheinwerfer verwendet wird (wobei N der Normalenvektor, L der Lichtvektor (d.h. der Richtungsvektor von dem Voxel zur Lichtquelle), V die Betrachtungsrichtung (d.h. die Richtung von der Kamera zum Volumen) und L = V ist). Somit ist d proportional zu s und invers proportional zu dem Term für die diffuse Beleuchtung (berechnet über das Lambertsche Kosinusgesetz mit einem Frontscheinwerfer). Somit ist die integrierte Opazität &bgr; durch die Hülle 108 d/2 wegen der linearen Alphafunktion. Dies bedeutet, daß die Opazität der über dem Lichtkern 104 gemischten Dunkelheit umgekehrt proportional zu L·N und folglich die Helligkeit des endgültigen Pixels proportional zu L·N ist. Somit kann eine lineare Transferfunktion als eine Approximation des diffusen Lichtbeitrags von einem Scheinwerfer verwendet werden.

Diese Shading-Approximation ist jedoch nicht sehr zweckmäßig in der Verwendung, weil die Verdunkelung proportional zu der Dicke der Hülle 108 ist. Das bedeutet, daß man ein gleichmäßiges Shading an Grenzen erreichen kann, die einen progressiven Dichteübergang aufweisen (beispielsweise für Haut und Weichgewebe), aber bei steilem Übergang nur die Ränder abgedunkelt werden.

2 zeigt zwei Renderings 205, 210 eines Herzdatensatzes unter Verwendung von Transferfunktionen mit unterschiedlicher Steilheit. Insbesondere verwendet das erste Rendering 205 eine Transferfunktion mit einer ersten Steilheit, und das zweite Rendering 210 verwendet eine Transferfunktion mit einer relativ zu dem ersten Rendering 205 geringeren Steilheit. Das erste Rendering 205 ist heller schattiert als das zweite Rendering 210, und die Bilder sind permutiert.

Ein Schattenvolumen kann als ein Volumen interpretiert werden, das Lichtdämpfungsfaktoren im Bereich von [0,0, 1,0] enthält. Der Wert jedes Voxels ist die entlang Strahlen von der Lichtquelle zum Voxel integrierte Opazität, die anfänglich 1,0 beträgt und mit Verdeckung des Lichts abnimmt. Während des Rendering-Prozesses wird die diffuse Farbe durch den Dämpfungsfaktor moduliert, wodurch die Farben effektiv in verdeckten Bereichen abgedunkelt werden. Bis zu einem gewissen Grad ist das Verhalten dieser Dämpfung ähnlich dem der linearen Transferfunktion in Bereichen, wo das Licht auf die transparente Hülle eines Objekts auftrifft. Je mehr es die Hülle durchdringt, um so schwächer wird es. Der Unterschied besteht darin, daß die Farben verdunkelt werden, anstatt in Richtung der Innenseite heller zu werden.

3 zeigt ein Diagramm des Oberkörpers eines Skeletts 300. Das Skelett 300 wird ausgebildet, indem man eine Betrachtungs- und Lichtrichtung 304 hat, die orthogonal zu einer Schnittebene 308 verläuft. 3 zeigt einen volumetrischen Schattenansatz nach dem Stand der Technik, da der Schatten innerhalb des Kerns 316 bleibt und nicht innerhalb des größten Teils der transparenten Hülle 320.

Wenn man es mit hochaufgelösten Schattenvolumen zu tun hat, sind die stark gedämpften Bereiche in opaken Bereichen eingefangen und sind nur in Bereichen sichtbar, wo der Schatten tatsächlich geworfen wird. Wenn hochaufgelöste Schattenvolumen mit einem Scheinwerfer verwendet werden, ist das resultierende Bild sehr ähnlich einem Bild ohne Schatten. Man beachte, daß bei Verwendung eines aus einer Entfernung von unendlich projizierten gerichteten Lichts und einer perspektivischen Betrachtungsprojektion des Volumens aufgrund der Unterschiede zwischen den beiden Projektionen geringfügige Schatten an Rändern sichtbar sind.

In diesem Fall ist die Lichtrichtung die gleiche wie die Betrachtungsrichtung, was bedeutet, daß das Volumen senkrecht zur Betrachtungsrichtung geschnitten wird. Für jedes gezeichnete Voxel wird die entsprechende Schattendämpfung in dem 2D-Schattenpuffer bestimmt (z.B. aus einer Tabelle nachgeschlagen), und die Farbe wird durch den abgerufenen Wert moduliert.

Die folgende Beschreibung beschreibt die vorliegende Erfindung im Hinblick auf die Verarbeitungsschritte, die erforderlich sind, um eine Ausführungsform der Erfindung zu implementieren. Diese Schritte können von einem entsprechend programmierten Computer ausgeführt werden, dessen Konfiguration in der Technik wohlbekannt ist. Ein entsprechender Computer kann beispielsweise unter Verwendung wohlbekannter Computerprozessoren, Speichereinheiten, Speicherungseinrichtungen, Computersoftware und anderer Komponenten implementiert werden. Ein High-Level-Blockdiagramm eines derartigen Computers ist in 4 gezeigt. Der Computer 402 enthält einen Prozessor 404, der den Gesamtbetrieb des Computers 402 steuert durch Ausführen von Computerprogrammanweisungen, die diesen Betrieb definieren. Die Computerprogrammanweisungen können in einer Speicherungseinrichtung 412 (z.B. eine Magnetplatte) gespeichert und in den Speicher 410 geladen werden, wenn eine Ausführung der Computerprogrammanweisungen gewünscht ist. Der Computer 402 enthält auch eine oder mehrere Schnittstellen 406 zum Kommunizieren mit anderen Einrichtungen (z.B. lokal oder über ein Netz). Der Computer 402 enthält außerdem einen Eingang/Ausgang 408, der Einrichtungen darstellt, die eine Benutzerinteraktion mit dem Computer 402 gestatten (z.B. Display, Tastatur, Maus, Lautsprecher, Knöpfe usw.) Der Fachmann erkennt, daß eine Implementierung eines tatsächlichen Computers auch andere Komponenten enthält und daß 4 eine High-Level-Darstellung einiger der Komponenten eines derartigen Computers zu Veranschaulichungszwecken ist. Außerdem erkennt der Fachmann, daß die hier beschriebenen Verarbeitungsschritte auch unter Verwendung eigener Hardware implementiert werden können, deren Schaltungsanordnung spezifisch zum Implementieren solcher Verarbeitungsschritte konfiguriert ist. Alternativ können die Verarbeitungsschritte unter Verwendung verschiedener Kombinationen von Hardware und Software implementiert werden. Außerdem können die Verarbeitungsschritte in einem Computer stattfinden oder Teil einer größeren Maschine sein.

5 zeigt ein Diagramm des oberen Körpers eines anderen Skeletts 500, das unter Verwendung einer dilatierten Version der Schattenkarte gemäß der vorliegenden Erfindung ausgebildet wird. Die Betrachtungs- und Lichtrichtung 504 verläuft senkrecht zu der Dilationsrichtung 508. Anstatt einen Abtastwert der Schattenkarte zu verwenden, um ein Voxel zu schattieren, werden mehrere Abtastwerte in dem benachbarten Bereich verwendet, und der Mindestwert wird abgerufen. Dies weitet die Schattengebiete aus und versetzt ihre Richtungen in Richtung der Außenseite des Objekts, wo sie die transparente Hülle des gezeichneten Schnitts schneiden. Dies entspricht der Verwendung eines Schattenvolumens, das mit einer 3D-Dilation gefaltet ist, dessen Kern eine der Richtung des Lichts zugewandte flache Scheibe ist.

Folglich verdunkelt jedes schattenwerfende Voxel nicht nur die Voxel hinter ihm, sondern auch ihre Nachbarn. Je mehr die Oberfläche von dem Licht weggewandt ist, um so wahrscheinlicher liegen benachbarte Voxel in der transparenten Hülle 512. Dies führt zu einem diffusen Shading-Verfahren, das dem oben beschriebenen ähnlich ist. Dieser Ansatz funktioniert unabhängig von den für die Transferfunktion gewählten Farben und erfordert nur, daß die Transferfunktion ausreichend gleichmäßige Alphaübergänge aufweist.

Bisher wurde angenommen, daß die Betrachtungs- und die Lichtvektoren in der gleichen Richtung liegen, so daß die Schnittebenen und die Schattenpufferansicht ausgerichtet sind. Diese oben eingeführte Shading-Technik gestattet willkürliche Lichtrichtungen durch Verwendung eines Halbwinkelschnitts (Half Angle Slicing). Im allgemeinen verläuft die Schnittebene nicht orthogonal zu den Betrachtungs- oder Lichtvektoren. Indem jedoch sichergestellt wird, daß die Dilation in allen Richtungen senkrecht zum Betrachtungsvektor durchgeführt wird, das heißt in dem Lichtpuffertexturkoordinatenraum, kann der gleiche Effekt erzielt werden. Die Idee lautet, eine 2D-Dilation mit einem konstanten Dilationskern bei allem Nachschlagen in der Schattenkarte durchzuführen. Eine dilatierte Schattenkartierung kann mit einem 5-Abtastwert-Kern implementiert werden. Alternativ kann die Verwendung von mehr Abtastwerden von einer Scheibenverteilung zu einer qualitativ hochwertigeren Dilation führen. Infolge der Dilation ist der Kopf des Skeletts 500 im Vergleich mit dem Kopf des Skeletts 300 von 3 viel dunkler (d.h. ist schattiert).

6 zeigt, wie die Dilation in einer Richtung 604 senkrecht zur Lichtrichtung 608 selbst dann durchgeführt wird, wenn die Schnittrichtung 612 nicht orthogonal zum Lichtvektor verläuft. Insbesondere zeigt 6, daß die Dilation durchgeführt wird und gleichzeitig eine Lichtquelle überall um das Volumen herum positioniert sein kann, anstatt lediglich als ein Scheinwerfer. Außerdem ist diese Dilation eine zweidimensionale Operation.

Diese Dilation bewirkt, daß der Schatten 616 in von dem Licht weggewandte Oberflächen ausblutet, und stellt einen korrekten diffusen Shading-Effekt mit willkürlichen Lichtrichtungen bereit. Da dieses diffuse Shading ohne jegliche Gradienten berechnet worden ist, wird es von degenerierten Gradienten in homogenen Gebieten der Daten nicht beeinflußt. Zudem erfordert es weniger Schnitte als das klassische Shading für akzeptable Ergebnisse und ist hinsichtlich der Shading-Qualität vergleichsweise günstig.

Bezüglich der Leistung ist dieser Ansatz schneller als das Berechnen von Gradienten in Echtzeit, weil nur 2D-Nachschlagevorgänge durchgeführt werden, während das Berechnen eines lokalen Gradienten in der Regel sechs 3D-Nachschlagevorgänge in dem Dichtevolumen erfordert (d.h. zwei x-Achse-3D-Nachschlagevorgänge, zwei y-Achse-3D-Nachschlagevorgänge und zwei z-Achse-3D-Nachschlagevorgänge). Wenngleich in unserer beispielhaften Implementierung nur vier zusätzliche 2D-Abtastwerte verwendet werden, kann es vorteilhaft sein, sechs oder acht Abtastwerte zu nehmen, um die Silhouette von geworfenen Schatten für Volumen aufrechtzuerhalten, die ein hochfrequentes Detail aufweisen.

7 ist ein Flußdiagramm der Schritte, die durchgeführt werden für die Ausblutungsoperation, um die Probleme des Shading mit degenerierten Gradienten zu lösen und um die durch das Berechnen von Gradienten gemäß einer Ausführungsform der vorliegenden Erfindung induzierten Fixkosten zu beseitigen. Der Framepuffer und die Schattenkarte werden in Schritt 704 gelöscht. Die Geometrie eines Schnitts wird dann in Schritt 708 berechnet. Der Computer 102 blutet dann die Schattenkarte senkrecht zur Lichtrichtung in Schritt 712 aus. Der Schnitt wird unter Verwendung der ausgebluteten Schattenkarte für das Shading in Schritt 716 gerendert.

Der Computer 102 akkumuliert dann die Dämpfung des Schattens in der Schattenkarte in Schritt 720 und bestimmt dann in Schritt 724, ob mehr Schnitte zu rendern sind. Falls nicht, wird das Rendering in Schritt 728 abgeschlossen. Wenn mehr Schnitte zu rendern sind, wiederholt sich der Prozeß durch Rückkehr zu Schritt 708.

8 zeigt Flußdiagramme, aus denen mehr Details der in Schritt 712 von 7 beschriebenen Ausblutungsprozedur hervorgehen. Insbesondere sind in 8 drei Ausblutungstechniken gezeigt. Die erste Ausblutungstechnik kann erzielt werden durch geringfügiges Skalieren der Schattenkarte um ihre Mitte herum. Abgeschattete Bereiche werden dann in Richtung auf die Grenzen der Schattenkarte „geschoben", wie in Schritt 804 gezeigt. Diese Technik läuft in der Regel sehr schnell ab, kann aber in verschiedenen Bereichen inkonsistent sein. Diese Technik arbeitet in der Regel gut für etwas konvexe Objekte mit von der Mitte des Volumens wegweisenden Grenzen. Diese Technik überfordert üblicherweise die Grafikhardware nicht, da ein Skalieren mit modifizierten Texturkoordinaten erzielt werden kann. Diese Technik zeigt jedoch manchmal Artefakte in von der Mitte des Volumens weit weg liegenden Bereichen.

Die zweite Ausblutungstechnik ist Ausblutung mit einem zentralen Offset. Für jedes Pixel (p) der Schattenkarte beinhaltet diese Ausblutungstechnik das Lokalisieren in Schritt 808 des Pixels (p'), das in einer gegebenen Entfernung d vom Pixel p näher an der Mitte liegt. Diese Technik führt dann in Schritt 812 eine Korrektur aus, wenn p' zu nahe von der Mitte weg liegt. Ein Beispiel einer durchgeführten Korrektur besteht darin, wenn die Entfernung zu der Mitte des Schattenpuffers kleiner ist als die Größe eines Abfallgebiets („Abfall"-Parameter), dann wird das übersetzte Nachschlagen mit einem Korrekturfaktor offsetLen/falloff multipliziert. Das Pixel p wird dann in Schritt 816 durch das Pixel p' ersetzt. Falls sich mehr Pixel in der Schattenkarte befinden (Schritt 820), dann wiederholt sich der Prozeß durch Rückkehr zu Schritt 808.

Die dritte Ausblutungstechnik ist Ausblutung mit Dilation. Dies ist eine präzise Prozedur, ist aber in der Regel langsamer als die anderen Prozeduren. Für diese Prozedur wird ein Dilationsfilter angewendet unter Verwendung eines Scheibenkerns auf die Schattenkarte in Schritt 824.

9 zeigt zwei Serien von Renderings, die mit drei verschiedenen Ausblutungsoperationen durchgeführt werden. Insbesondere zeigt 9(a) ein gradientenbasiertes Shading, und 9(b) zeigt ein dilationsbasiertes Shading. 9(c) zeigt ein zentrales offset-Shading und 9(d) zeigt ein Shading unter Verwendung von Skalierung. Zur Bezugnahme ist gradientenbasiertes Shading hinzugefügt. Die 9(a)-9(d) heben die Differenzen zwischen den Ausgaben der verschiedenen Ausblutungstechniken hervor.

10 zeigt verschiedene Ausblutungsverfahren. 10(a) zeigt die Verwendung von Dilation als Ausblutungsverfahren. Die Rolle der Dilation besteht darin, die Lichtdämpfung der Schattenkarte aus dem inneren opaken Kern herauszubringen, damit sie in die äußere Hülle ausblutet. Die Idee der Dilation besteht darin, eine lokale Suche um den aktuellen Abtastpunkt durchzuführen, um den kleinsten Schattenwert zu finden. Das Verhalten dieser anisotropen Operation ist unabhängig von der abgetasteten Stelle, kann aber langsam sein. Um die Ausblutungsoperation schneller zu machen, wird die Dilationsoperation durch eine Skalierungsoperation um die Mitte der Schattenkarte ersetzt.

10(b) zeigt die skalierende Ausblutungstechnik. Es wird vermutet, daß durch Skalieren der Schattenkarte die Position des dunkelsten benachbarten Punkts immer am nächsten an der Mitte des Bilds in einem lokalen kreisförmigen Bereich um das abgetastete Texel herum liegt. Ein Texel ist die Basiseinheit einer texturierten Grafik – Grafik, die die Oberfläche von dreidimensionalen Objekten definiert. Dies funktioniert gut unter der Annahme, daß die gerenderten Oberflächen von der Mitte des Objekts wegweisen. Bei dieser Bedingung werden Texel in Richtung auf die Mitte der Schattenkarte im allgemeinen stärker gedämpft. Diese Annahme kann unter bestimmten Bedingungen akzeptiert werden; weil Objekte, die visualisiert werden sollen, oftmals in den Daten gut zentriert sind und die äußere Isooberfläche des Volumens (diejenige, die zu sehen ist) von der Mitte weg weist und somit beleuchtet wird, wie erwartet.

Diese Technik bringt die Kosten des Ausblutens herunter auf ein einzelnes Nachschlagen in der Schattenkarte. Die Skala kann leicht in der Projektionstexturmatrix enthalten sein, die in dem Vertexprogramm verwendet wird. Obwohl Skalierung im allgemeinen im Vergleich zur Dilation von einem visuellen Standpunkt aus gut funktioniert, führt sie in vielen Fällen eine größere Ungenauigkeit in das Ausbluten ein. Dies ist auf die Tatsache zurückzuführen, daß der Abstand zwischen der aktuellen Abtastposition und der modifizierten Abtastposition proportional zu dem Abstand der Abtaststelle und der Mitte ist.

Folglich sehen Merkmale, die in der Mitte der Textur codiert sind, kontrastlos aus. Signifikanter werden Schatten für in der Nähe der Volumengrenzen liegenden Merkmale zu stark verschoben, wodurch schattierte und beleuchtete Gebiete an den falschen Stellen erzeugt werden, was unannehmbar sein kann, wenn ein Bild zu Diagnosezwecken verwendet wird. 7(d) zeigt ein Beispiel des Shading unter Verwendung von Skalierung und veranschaulicht schattierte und beleuchtete Gebiete an den falschen Stellen.

10(c) zeigt eine Veranschaulichung eines Ausblutungsverfahrens unter Verwendung eines zentralen Offsets. Die Artefakte können vermieden werden, indem stattdessen ein einzelnes Texel in einer konstanten Entfernung von der abgetasteten Stelle in Richtung der Mitte der Karte abgetastet wird. Diese Technik entfernt die Artefakte der Skalierung, führt aber ein neues Artefakt in der Mitte der Schattenkarte für Positionen ein, die näher als unsere konstante Entfernung an der Mitte liegen. Um dies zu überwinden wird eine kleine Abfallentfernung zu der Mitte definiert, wobei der Offset proportional zu der Nähe zu der Mitte reduziert ist. 7(c) zeigt, daß dies die Inkonsistenten korrigiert und nur die Shading-Qualität sehr lokal beeinflußt. Man beachte, daß dieser geometrische Offset in Echtzeit vorgenommen werden kann oder vorberechnet und in einer 2D-Textur gespeichert werden kann.

Mit den oben beschriebenen Techniken erhält man eine gradientenfreie Approximation des diffusen Shading, und das Gleichgewicht zwischen Leistung und Genauigkeit kann durch Wahl einer der vorgeschlagenen Ausblutungstechniken abgestimmt werden. Dieses Modell beschäftigt sich jedoch nicht mit spiegelnden Spitzlichtern, eine wichtige Beleuchtungscharakteristik für glänzende Materialien. Ein spiegelnder Term kann approximiert werden, indem der diffuse Term berechnet und potenziert wird.

Diese Approximation kann mit sehr geringen Kosten gegenüber dem einfachen diffusen Shading vorgenommen werden, obwohl sie voraussetzt, daß der Reflexionsvektor gleich der Oberflächennormalen ist. Dies ist in dem allgemeinen Fall falsch und kann zu einer falschen Plazierung von Spitzlichtern führen, kann aber die allgemeine Wahrnehmung von Gestalten durch die Addition von Kontrast verbessern. 11 zeigt ein erstes Bild 1105, das ein gradientenfreies pseudo-spiegelndes Shading verwendet. Ein zweites Bild 1110 verwendet ein traditionelles gradientenbasiertes spiegelndes Shading. Die gradientenfreien Spitzlichter verbessern die Klarheit des Bilds trotz ihrer falschen Plazierung und inhärenten Weichheit. Ein Vorteil dieser Technik besteht darin, daß er immer noch keine Gradientenberechnung involviert, was zu einem Shading-Modell führt, das alle Terme von Blinn-Phong mit Schatten zu Kosten aufweist, die viel geringer sind als die eines klassischen gradientenbasierten Blinn-Phong-Shading.

Das Belichtungsmodell wird dann wie folgt definiert: I = crgb × d × Id + s × Idn × calpha

In dieser Gleichung ist n der Glanz und d und s sind die diffusen und spiegelnden Intensitäten, Id ist die von dem Schattenausbluten abgeleitete diffuse Komponente und c ist die Farbe von der Klassifikation.

Man beachte, daß der spiegelnde Beitrag mit dem Alphawert der Transferfunktion multipliziert wird, da der diffuse Term erst dann signifikant wird, wenn sich das Licht in das Medium ausbreitet und gedämpft wird.

Falls diese Multiplikation nicht auftreten würde, würden opake spiegelnde Bereiche überwältigt werden.

Diese Approximation führt zu weichen spiegelnden Spitzlichtern, und wenn die Spekularität auf einen hohen Wert gesetzt ist, erscheinen einige helle Bereiche auf flachen Oberflächen und verdecken feine Details. Spekularität ist im allgemeinen sehr empfindlich gegenüber einer Gradientenvariation, so daß man mit dieser Technik akzeptable Ergebnisse nur. mit einigermaßen niedrigen Glanzfaktoren erhält, wodurch man weiche und große Spitzlichter erhält, wie in dem ersten Bild 1105 von 11 gezeigt.

In einigen Fällen sind präzise spiegelnde Spitzlichter beim Übermitteln von Details essentiell. Beispielsweise können kleine Risse auf Knochenoberflächen oder Falten auf Weichgewebe durch präzise spiegelnde Spitzlichter akzentuiert werden. Um spiegelnde Spitzlichter präzise wiederzugeben, müssen Gradienten Teil der Berechnung der spiegelnden Komponente sein. Spiegelnde Spitzlichter sind in der Regel ein sehr lokales Phänomen und setzen über die Volumenbeleuchtungscharakteristiken folgendes voraus:

  • • spiegelnde Spitzlichter treten üblicherweise in Bereichen auf, die auch diffuses Licht emittierten
  • • spiegelnde Spitzlichter brauchen in leeren oder transparenten Bereichen nicht berechnet zu werden.

Dies bedeutet, daß, nachdem der diffuse Shading-Term aus der Schattenkarte abgeleitet worden ist und die Farbe von der Transferfunktion geholt worden ist, die Frage, ob ein Voxel einem spiegelnden Spitzlicht unterworfen ist, auf der Basis des folgenden Tests bestimmt werden kann: (Diffus > k1 und Farbe.alpha > k2 ) wobei k1 uns k2 willkürliche Schwellwerte für den Schattenwert bzw. die Voxelfarbtransparenz sind. Diese Bedingung kann auf der Basis einzelner Fragmente ausgewertet werden, und es kann entschieden werden, ob ein spiegelnder Term berechnet wird oder nicht. Wenn die Bedingung wahr ist, dann werden die für die Gradientenberechnung von zentralen Differenzen erforderlichen sechs 3D-Nachschlagevorgänge durchgeführt, der Gradient wird berechnet und der spiegelnde Term wird anhand des Gradienten und des Halbwegevektors berechnet. Die meisten Voxel fallen bei dieser Bedingung durch, was bedeutet, daß die Berechnung des spiegelnden Terms und des Gradienten für den Großteil des Volumens vermieden werden kann.

Zur Bestimmung der endgültigen Fragmentfarbe kann der ohne die Gradienten berechnete diffuse Term mit dem für ausgewählte Fragmente addierten spiegelnden Term verwendet werden. Das Endergebnis liegt sehr nahe bei dem Blinn-Phong-Shading mit addierten Schatten, verhält sich aber schön bei Schnittebenen durch Vermeiden von Artefakten in diesen Bereichen aufgrund von aus degenerierten Gradienten berechneter diffuser Beleuchtung.

Der nächste Schritt besteht in dem Übersteuern des gradientenfreien diffusen Shading in Bereichen, die für eine Gradientenberechnung ausgewählt sind, durch den klassischen punktproduktbasierten diffusen Term. Obwohl Gradienten nur auf der beleuchteten Oberfläche des Objekts berechnet werden, entspricht die erhaltene Bildqualität gut den Ergebnissen des Blinn-Phong-Shading ohne Schatten. Da die schwere Gradientenberechnung nur wo benötigt durchgeführt wird, können wir höhere Frameraten als vollständiges Blinn-Phong-Shading erzielen. Man beachte auch, daß diese Technik mit kleinem oder keinem Ausblutungsradius durchgeführt werden kann, da die Schattendämpfung nur dazu beiträgt, Bereiche zu bestimmen, wo der reale diffuse Term berechnet werden muß. Somit kann das am wenigsten aufwendige Ausblutungsverfahren verwendet werden.

12 zeigt Flußdiagramme für die verschiedenen Verfahren für das Rendern von Schnitten. 12(a) zeigt die für das Rendern ohne Gradienten benötigten Schritte. Diese Prozedur tritt in der Regel sehr schnell relativ zu den anderen Rendering-Prozeduren auf. Die folgenden Schritte gelten für jedes gerenderte Fragment. Die diffuse Beleuchtung wird mit dem Inhalt der Schattenkarte in Schritt 1204 berechnet. Bei einer Ausführungsform wird in Schritt 1208 ein pseudospiegelnder Term von dem diffusen Term berechnet. Dies kann das Ergebnis mit sehr geringen Kosten verbessern und lesbare Bilder ohne Berechnung irgendwelcher Gradienten erzeugen. Die Fragmentenfarbe wird dann in Schritt 1212 berechnet. Das Verfahren bestimmt dann in Schritt 1216, ob weitere Fragmente vorliegen. Wenn dies der Fall ist, kehrt der Prozeß zu Schritt 1204 zurück.

12(b) zeigt die für das Rendern mit selektiv spiegelndem erforderlichen Schritte. Dieser Prozeß tritt in der Regel schnell mit einer genauen spiegelnden Beleuchtung relativ zu den anderen Rendering-Prozeduren auf. Die folgenden Schritte gelten für jedes gerenderte Fragment.

Die diffuse Beleuchtung wird mit dem Inhalt der Schattenkarte in Schritt 1220 bestimmt. Der Computer bestimmt dann in Schritt 1224, ob das Fragment ausreichend Licht empfängt und sich nicht außerhalb des Objekts befindet. Wenn das Fragment ausreichend Licht empfängt, wird in Schritt 1228 ein lokaler Gradient berechnet und ein spiegelndes Licht wird in Schritt 1232 unter Verwendung des Gradienten berechnet. Wenn das Fragment nicht ausreichend Licht empfängt, wird das spiegelnde Licht in Schritt 1236 auf null gesetzt. Die Fragmentfarbe wird dann in Schritt 1240 berechnet. Wenn in Schritt 1244 weitere Fragmente vorliegen, wiederholt sich der Prozeß durch Rückkehr zu Schritt 1220. Falls nicht, wird der Prozeß abgeschlossen.

12(c) zeigt die für das Rendering mit selektivem Blinn/Phong erforderlichen Schritte. Dies liefert genau die gleichen Ergebnisse wie das Blinn/Phong-Verfahren, ist aber in der Regel viel schneller als das Blinn/Phong-Verfahren. Die folgenden Schritte gelten für jedes gerenderte Fragment.

Die diffuse Beleuchtung wird in Schritt 1248 mit dem Inhalt der Schattenkarte berechnet. Es wird dann in Schritt 1252 bestimmt, ob das Fragment ausreichend Licht erhält und sich nicht außerhalb des Objekts befindet. Wenn das Fragment ausreichend Licht erhält, wird in Schritt 1256 ein lokaler Gradient berechnet. Das diffuse Licht wird unter Verwendung des Gradienten in Schritt 1260 berechnet. Das spiegelnde Licht wird dann unter Verwendung des Gradienten in Schritt 1264 berechnet. Wenn das Fragment nicht ausreichend Licht erhält, wird das spiegelnde Licht auf null gesetzt und der gradientenlose diffuse Term wird in Schritt 1268 verwendet. Dann wird die Fragmentfarbe in Schritt 1272 berechnet. Wenn in Schritt 1276 mehrere Fragmente vorliegen, wiederholt sich der Prozeß durch Rückkehr zu Schritt 1248. Falls nicht, wird der Prozeß abgeschlossen.

13 ist ein Diagramm einer Pixel-Shader-Codedatei 1300 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Codedatei berechnet die Offsetrichtung in Schritt 1304 und berechnet dann den Abstand von der Mitte in Schritt 1308. Der Code entfernt dann in Schritt 1312 Artefakte in der Mitte und führt dann den übersetzten Nachschlagevorgang in Schritt 1316 aus.

Die vorausgegangene ausführliche Beschreibung ist so zu verstehen, daß sie in jeder Hinsicht illustrativ und beispielhaft, aber nicht einschränkend ist, und der Schutzbereich der hier offenbarten Erfindung ist nicht anhand der ausführlichen Beschreibung zu bestimmen, sondern vielmehr anhand der Ansprüche nach Auslegung gemäß der vollen, von den Patentgesetzen gestatteten Breite. Es versteht sich, daß die hier gezeigten und beschriebenen Ausführungsformen für die Prinzipien der vorliegenden Erfindung nur illustrativ sind und daß von dem Fachmann zahlreiche Modifikationen implementiert werden können, ohne von dem Schutzbereich und Gedanken der Erfindung abzuweichen. Der Fachmann könnte verschiedene andere Merkmalskombinationen implementieren, ohne von dem Schutzbereich und Gedanken der Erfindung abzuweichen.


Anspruch[de]
Verfahren zum Berechnen des Shading eines Volumens, umfassend:

Rendering eines Schnitts des Volumens entlang einer Halbwinkelrichtung, die zwischen einer Lichtrichtung und einer Betrachtungsrichtung liegt;

Rendering eines Schnitts des Volumens entlang einer Lichtrichtung, um Schatteninformationen des Schnitts in einem Schattenpuffer zu assimilieren; und

Ausbluten des Schattenpuffers orthogonal zu der Lichtrichtung, um den Schnitt zu schattieren.
Verfahren nach Anspruch 1, wobei das Ausbluten des Schattenpuffers das Skalieren des Schattenpuffers umfaßt. Verfahren nach Anspruch 1, wobei das Ausbluten des Schattenpuffers das Dilatieren des Schattenpuffers umfaßt. Verfahren nach Anspruch 1, wobei das Ausbluten des Schattenpuffers das Ausbluten mit einem zentralen Offset umfaßt. Verfahren nach Anspruch 4, wobei das Ausbluten mit einem zentralen Offset für ein erstes Pixel des Schattenpuffers das Lokalisieren eines zweiten Pixels umfaßt, das näher an einem zentralen Punkt des Schattenpuffers in einer gegebenen Entfernung von dem ersten Pixel liegt. Verfahren nach Anspruch 5, weiterhin umfassend das Ausführen einer Korrektur, wenn das zweite Pixel zu nahe an dem zentralen Punkt liegt. Verfahren nach Anspruch 6, weiterhin umfassend das Ersetzen des ersten Pixels durch das zweite Pixel. Verfahren nach Anspruch 1, umfassend das Rendering des Schnitts unter Verwendung der Schattenkarte nach dem Ausbluten. Verfahren nach Anspruch 8, wobei das Rendering des Schnitts unter Verwendung der Schattenkarte mindestens das Rendering ohne Gradienten, das Rendering mit selektiver spiegelnder Beleuchtung oder das Rendering mit selektiven Blinn/Phong umfaßt. Verfahren nach Anspruch 9, wobei das Rendering des Schnitts unter Verwendung der Schattenkarte weiterhin das Berechnen einer diffusen Beleuchtung mit der Schattenkarte umfaßt. Vorrichtung zum Berechnen des Shading eines Volumens, umfassend:

Mittel für das Rendering eines Schnitts des Volumens entlang einer Halbwinkelrichtung, die zwischen einer Lichtrichtung und einer Betrachtungsrichtung liegt;

Mittel für das Rendering eines Schnitts des Volumens entlang einer Lichtrichtung, um Schatteninformationen des Schnitts in einem Schattenpuffer zu assimilieren; und

Mittel für das Ausbluten des Schattenpuffers orthogonal zu der Lichtrichtung, um den Schnitt zu schattieren.
Vorrichtung nach Anspruch 11, wobei das Mittel für das Ausbluten des Schattenpuffers Mittel für das Skalieren des Schattenpuffers umfaßt. Vorrichtung nach Anspruch 11, wobei das Mittel für das Ausbluten des Schattenpuffers Mittel für das Dilatieren des Schattenpuffers umfaßt. Vorrichtung nach Anspruch 11, wobei das Mittel für das Ausbluten des Schattenpuffers Mittel für das Ausbluten mit einem zentralen Offset umfaßt. Vorrichtung nach Anspruch 14, wobei das Mittel für das Ausbluten mit einem zentralen Offset für ein erstes Pixel des Schattenpuffers Mittel zum Lokalisieren eines zweiten Pixels umfaßt, das näher an einem zentralen Punkt des Schattenpuffers in einer gegebenen Entfernung von dem ersten Pixel liegt. Vorrichtung nach Anspruch 15, weiterhin umfassend Mittel zum Durchführen einer Korrektur, wenn das zweite Pixel zu nahe bei dem zentralen Punkt liegt. Vorrichtung nach Anspruch 16, weiterhin umfassend Mittel für das Ersetzen des ersten Pixels durch das zweite Pixel. Vorrichtung nach Anspruch 11, umfassend Mittel für das Rendering des Schnitts unter Verwendung der Schattenkarte. Vorrichtung nach Anspruch 18, wobei das Mittel für das Rendering des Schnitts unter Verwendung der Schattenkarte weiterhin Mittel umfaßt für das Berechnen einer diffusen Beleuchtung mit der Schattenkarte.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com