-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur zweidimensionalen Darstellung eines Objekts mittels Volume Rendering.
-
Die Erfindung liegt auf dem Gebiet des Volume Rendering, d.h. der Darstellung bzw. Visualisierung von dreidimensionalen Körpern bzw. Objekten. Die Modellierung, Rekonstruktion oder Visualisierung von dreidimensionalen Objekten hat einen weiten Anwendungsbereich in den Feldern Medizin (z.B. CT, PET, MR, Ultraschall), Physik (z.B. Elektronenstruktur großer Moleküle) oder Geophysik (Beschaffenheit und Lage von Erdschichten). Typischerweise wird das zu untersuchende Objekt bestrahlt (z.B. mittels elektromagnetischer Wellen oder Schallwellen), um seine Beschaffenheit zu untersuchen. Die gestreute Strahlung wird detektiert und aus den detektierten Werten werden Eigenschaften des Körpers ermittelt. Üblicherweise besteht das Ergebnis in einer physikalischen Größe (z.B. Dichte, Anteil von Gewebebestandteilen, Elastizität, Geschwindigkeit), deren Wert für den Körper ermittelt wird. Dabei verwendet man in der Regel ein virtuelles Gitter, an dessen Gitterpunkten der Wert der Größe ermittelt wird. Diese Gitterpunkte bzw. die Werte der Größe an diesen Orten werden üblicherweise als Voxel bezeichnet. Diese liegen häufig in der Form von sog. Grauwerten vor.
-
Mittels Volume Rendering wird aus den Voxeln eine dreidimensionale Darstellung des untersuchten Objekts bzw. Körpers auf einer zweidimensionalen Darstellungsfläche (z.B. Bildschirm) erzeugt. Dabei werden aus den Voxeln sog. Pixel erzeugt (häufig mit der Zwischenstufe von aus den Voxeln durch Interpolation gewonnenen Objektpunkten), aus welchen das Bild der zweidimensionalen Bildanzeige zusammengesetzt ist. Um auf einer zweidimensionalen Anzeige drei Dimensionen zu visualisieren, wird in der Regel ein sog. Alpha-Compositing bzw. eine Alpha-Zerlegung vorgenommen. Bei dieser Standardmethode werden Voxeln bzw. aus Voxeln gebildeten Volumenpunkten sowohl Farben als auch Durchlässigkeitswerte, genauer gesagt Werte für die Undurchlässigkeit bzw. Opazität (üblicherweise bezeichnet mit dem englischen Begriff Opacity, der die Durchlässigkeit bzw. die Deckkraft verschiedener Schichten des Körpers ausdrückt) zugeordnet. Konkreter werden einem Objektpunkt üblicherweise drei Farben in Form eines Drei-Tupels, der die Anteile der Farben rot, grün und blau kodiert (sog. RGB-Wert), und ein sog. Alpha-Wert, der die Undurchlässigkeit parametrisiert, zugeordnet. Zusammen bilden diese Größen einen Farbwert RGBA, der mit den Farbwerten anderer Objektpunkte zu einem Farbwert für das Pixel kombiniert bzw. gemischt werden (für die Visualisierung von teilweise transparenten Objekten üblicherweise mittels eines sog. alpha blending) .
-
Für die Zuordnung eines passenden Farbwertes wird meist mit einem Beleuchtungsmodell gearbeitet. Dieses Beleuchtungsmodell berücksichtigt Lichteffekte (in der Regel Reflexionen des Lichtes an Oberflächen des Objektes; dabei kann es sich um die äußere Oberfläche oder um Oberflächen innere Schichten des untersuchten Objektes handeln) bei einer zum Zwecke der Visualisierung modellierten bzw. simulierten Bestrahlung des Objektes.
-
Es gibt in der Literatur eine Reihe von Beleuchtungsmodellen, die angewandt werden. Gebräuchlich ist z.B. das Phong- oder Blinn-Phong-Modell.
-
Eines der meistbenutzten Verfahren zum Volume Rendering ist das sog. Ray-Casting bzw. die Simulation einer Lichteinstrahlung zur Darstellung bzw. Visualisierung des Körpers. Beim Ray-Casting werden imaginäre Strahlen, die vom Auge eines imaginären Betrachters ausgehen, durch den untersuchten Körper bzw. das untersuchte Objekt gesendet. Entlang der Strahlen werden für Abtastpunkte RGBA-Werte aus den Voxeln bestimmt und zu Pixeln für ein zweidimensionales Bild mittels Alpha Compositing bzw. Alpha Blending vereinigt. Beleuchtungseffekte werden dabei üblicherweise mittels eines der oben abgesprochenen Beleuchtungsmodelle im Rahmen eines mit „Shading“ bezeichneten Verfahrens berücksichtigt.
-
Für Anwendungen, bei denen im Zuge von Manipulationen (Perspektivenwechsel, Einfärbungen, Clippings, ...) das Volume Rendering bei jeder Änderung neu durchgeführt wird, werden in der Regel vom Beleuchtungsmodell nur lokale Effekte berücksichtigt, weil es sonst für den User zu inakzeptablen Verzögerungen während der Anwendung käme. Dies führt aber zu signifikanten Qualitätseinbußen. Eine realistischere Darstellung lässt sich durch Methoden erreichen, die auch globale Effekte berücksichtigen. Dabei ist es sinnvoll, wegen des unterschiedlichen Vorgehens bei der Berechnung zwei wesentliche Effekte zu unterscheiden. Der erste Effekt ist die Schattenbildung (Shadows). Dieser Effekt führt daher, dass für einen Punkt auf einem simulierten Strahl durch ein Objekt der Pfad zwischen dem Punkt und der vorhandenen Lichtquelle bzw. den Lichtquellen Hindernisse aufweist, d.h. der Lichtstrahl nicht ungehindert den Punkt erreichen kann. Die konzeptionell einfachste Methode zur Berechnung dieses Schatteneinflusses ist von dem betrachteten Punkt aus einen Strahl Richtung Lichtquelle zu schicken (bzw. Strahlen zu den verschiedenen Lichtquellen zu schicken), um so zu ermitteln, welche Anteile des Lichtes zu dem Punkt durchdringen kann.
-
Davon zu unterscheiden ist der Effekt von Streulicht (in der Fachliteratur ist der Ausdruck „ambient occlusion“ bzw. Umgebungsverdeckung üblich). Dieser Effekt ist auf Streulicht zurückzuführen und daher sehr wichtig, weil der Strukturen sichtbar macht, die allein durch das direkte Licht nicht sichtbar werden. Generell führt die Lichtstreuung erst einmal dazu, dass auf ein Objekt Licht aus allen Richtungen trifft. Dieses Streulicht kann durch Materie absorbiert werden, so dass sich eine ungleichmäßige Erhellung des Objekts durch den Streulichtanteil ergibt. Ein typisches Beispiel für diesen Effekt sind die Ecken eines Zimmers, welche als dunkler erscheinen als dessen Zentrum. Die Absorption vom Streulicht wird z.B. mit derselben Methode untersucht, mit der auch die Schattenbildung ermittelt wird. Da das Streulicht aber von keiner festen Quelle, sondern von allen Richtungen kommt, werden Strahlen in stochastischer Weise von einer Hemisphäre, die lokal mit einer Oberfläche übereinstimmt, gesendet, und so überprüft, wie viel Streulicht absorbiert wird. Man spricht bei dem Versenden von Strahlen zur Ermittlung von Beleuchtungseigenschaften von Ray-Tracing, und im Fall von stochastischer Strahlabtastung mittels „ambient occlusion“ von Monte Carlo Ray-Tracing. Eine Definition für „ambient occlusion“ wurde von Zhukov et al. [4] aufgestellt. Demzufolge ist der Wert der „ambient occlusion“ an einem Punkt einer Oberfläche die Lichtmenge des Umgebungslichts, welche diesen Punkt erreichen kann.
-
Das Problem von Ray-Tracing-Verfahren ist der hohe Aufwand. Von jedem Abtastpunkt auf dem simulierten Strahl werden Strahlen erzeugt (einer für jede Lichtquelle und eine Vielzahl für die „ambient occlusion“). Auch im Hinblick auf diesen Aufwand wird in Bezug auf die Ray-Tracing-Verfahren auch von „brüte force“ Verfahren gesprochen. Der entsprechende Aufwand ist für interaktive Änderungen der Darstellung des Objektes in der Regel zu hoch, weshalb derzeit häufig auf eine realistischere Darstellung von Beleuchtungseffekten verzichtet wird, obwohl es sich bei Schatten und Umgebungsverdeckung um globale Effekte handelt. Derzeitige Verfahren, die globale Beleuchtungseffekte berücksichtigen, benötigen entweder eine erhebliche Vorbearbeitung (pre-processing) der Daten oder/und den Aufbau von zusätzlichen vorberechneten Datenstrukturen (deep shadow maps [2], shadow mapping [1], summed area tables [5], computing local histogramms [6], vicinity shading [7]). Andere Verfahren sind von ihren Anwendungsmöglichkeiten begrenzt (half-angle slicing [1] ist z.B. nicht auf Ray-Casting anwendbar).
-
Die Schriften YAGEL, Roni; KAUFMAN, Arie; ZHANG, Qiang: Realistic volume imaging, in: Proceedings of the 2nd conference on Visualization'91, 1991, S. 226-231, sowie YAGEL, R. et al.: Discrete Ray Tracing, IEEE Computer Graphics and Applications, Vol. 12, 1992, S. 19-28, offenbaren eine diskrete Raytracing-Methode. In einer vorverarbeitenden Voxelisierungsphase wird das geometrische Modell in seine diskrete voxelbasierte Darstellung innerhalb eines 3D-Rasters umgewandelt.
-
Die Schrift KONTKANEN, Janne; LAINE, Samuli: Ambient occlusion fields, in: Proceedings of the 2005 symposium on lnteractive 30 graphics and games, 2005, S. 41-48, offenbart ein Verfahren zur Berechnung von Okklusionseffekten. Für jedes okkludierende Objekt wird ein Näherung für durch das Objekt verursachte Okklusionen vorberechnet.
-
Die Schrift SHANMUGAM, Perumaal; ARIKAN, Okan: Hardware accelerated ambient occlusion techniques on GPUs, in: Proceedings ofthe 2007 symposium on Interactive 30 graphics and games, 2007, S. 73-80, offenbart eine Näherungsverfahren zur Berechnung von Okklusionseffekten. Dabei wird ein Multi-Pass Algorithmus verwendet, der das Problem der Umgebungsokklusion in hochfrequente und niederfrequente Okklusionseffekte zerlegt.
-
In der
US 5 442 733 A wird ein Verfahren zum Erzeugen realistischer Bilder unter Verwendung diskreter Darstellungen offenbart, bei der eine diskrete voxelbasierte Darstellung der Szene innerhalb eines dreidimensionalen kubischen FrameBuffers verwendet wird.
-
Die
US 2009 / 0 153 557 A1 offenbart ein GPU-basiertes Renderingverfahren, bei dem für jedes Darstellungspixel eine Okklusions-Berechnung durchgeführt wird.
-
Die
US 2002 / 0 018 063 A1 offenbart ein Verfahren für das Shadow Mapping beim Rendern eines Grundkörpers in einer Grafikpipeline.
-
Die Schrift DACHSBACHER, C., et al.: Reflective shadow maps, in Proceedings of the 2005 Symposium on Interactive 3D Graphics and Games, ACM, New York, 2005, S. 203-208, offenbart einen Algorithmus für interaktives Rendering einer indirekten Beleuchtung. Dabei wird eine reflektierende Shadow Map als Erweiterung einer Standard-Shadow-Map vorgeschlagen, bei der jedes Pixel als indirekte Lichtquelle betrachtet wird.
-
Es ist Aufgabe der vorliegenden Erfindung, eine aufwandsarme Darstellung von Lichteffekten zu ermöglichen.
-
Die Aufgabe wird durch die Ansprüche gelöst.
-
Erfindungsgemäß wird von einem Volume Rendering ohne oder nur mit lokalem Beleuchtungsmodell (z.B. Blinn-Phong Modell) für die Darstellung eines Objekts ausgegangen.
-
Das Objekt liegt dabei in Form von Voxeln vor, d.h. in Form von an Raumpunkten des Objekts gegebenen, skalaren Werte einer das Objekt charakterisierenden Größe (z.B. der Dichte). In anderen Worten ist ein skalares Feld als Funktion des Ortes für eine Vielzahl von Raumpunkten gegeben. Im Folgenden wird im Bezug auf diese Darstellung des Objektes durch Voxel auch der Begriff 3D-Darstellung des Objektes verwendet.
-
Volume Rendering bildet die 3D-Darstellung auf zwei Dimensionen für die Anzeige durch einen Bildschirm ab. Konkreter liefert diese Abbildung Pixel bzw. Bildpunkte für ein 2D-Bild. Im Folgenden wird der Begriff Voxel ausschließlich für 3D-Darstellungen und Pixel ausschließlich für 2D-Darstellungen verwendet.
-
Die Voxel werden z.B. durch ein Meßsystem erhalten. Typisch sind z.B. Messungen mittels Computertomographie, welche für verschiedene Aufnahmepositionen Projektionen liefern, aus welchen die Voxel rekonstruiert werden. Andere Möglichkeiten sind Ultraschallverfahren oder Kernspinaufnahmen. Die Voxel liegen dann üblicherweise in der Form von sog. Grauwerten vor, welche ein Maß für die jeweilige Dichte des Objekts an diesem Ort darstellen.
-
Derzeit sind vielfach direkte Volume Rendering Verfahren üblich, z.B. Ray-Casting. Dieses läuft in der Regel so ab, dass auf das Objekt einfallende Sehstrahlen simuliert werden. Entlang des Sehstrahls werden Werte der charakterisierenden Größe ermittelt, den ermittelten Werten Farbwerte zugeordnet und die Farbwerte für die Darstellung als Pixel auf einem Bildschirm zu einem gemischten Farbwert (RGB -evtl. drei Werte) überlagert. Der gemischte Farbwert liegt meist in der Form von RGB-Werten bzw. RGBA-Werten vor. Der Begriff „Farbwert“ soll dabei die verschiedenen Formen von Farbdarstellung umfassen. Insbesondere soll dieser Begriff auch die Darstellung in der Form von drei oder vier Werten als RGB-bzw. RGBA-Werte beinhalten.
-
Erfindungsgemäß wird das Ergebnis des Volume Renderings korrigiert, um so globale Lichteffekte zu berücksichtigen. Konkret geht es dabei um die Effekte der Schattenbildung (shadows) und der Umgebungsverdeckung (ambient occlusion).
-
Es wird wenigstens für eine dieser beiden Effekte eine Korrektur vorgenommen. Die Ermittlung bzw. Bestimmung dieser Korrektur ist ähnlich für beide Fälle. Es wird wie bei einer „brüte force“ Berechnung wenigstens ein Strahl simuliert, der als Teststrahl abschnittsweise Beiträge zu den Lichteffekten erfasst. Die Beiträge entlang eines Strahles werden dann zu einem Gesamtbeitrag des Strahles akkumuliert. Die Anzahl der Strahlen und deren Richtung hängen in der Regel von dem untersuchten Effekt ab. Zur Berücksichtigung der Schatten wird vorzugsweise ein Teststrahl in Richtung jeder Lichtquelle gesendet. Für die Umgebungsverdeckung wird eine Vielzahl von Teststrahlen in unterschiedliche, z.b. stochastisch ausgewählte Richtungen gesendet. Dabei kann eine Ermittlung von beiden Effekten in einem Schritt ablaufen, wobei ggfl. einer oder ein Teil der simulierten Strahlen für beide Effekte verwendet wird. Bei einer Mehrzahl von Strahlen (z.B. Vielzahl von Strahlen für Umgebungsverdeckung) werden üblicherweise die Resultate für die einzelnen Strahlen zu einem Resultat vereinigt, wobei eine Gewichtung der einzelnen Strahlen erfolgen kann.
-
Im Gegensatz zu den herkömmlichen „brüte force“ Verfahren erfolgt die Korrekturberechnung nicht für die einzelnen Abtastwerte z.B. eines Strahls beim Ray Casting, sondern in der Regel nur einmal per Ray Casting Strahl bzw. einmal pro gemischten Farbwert bzw. Pixel.
-
Der Startpunkt für die Teststrahlen zur Ermittlung einer Korrektur bzgl. Schatten und/oder Umgebungsverdeckung befindet sich auf einer Oberfläche des Objekts. Dabei handelt es sich vorzugsweise um eine äußere Oberflache. Es kann aber auch nach Maßgabe der Objektzusammensetzung sinnvoll sein, von einer inneren Oberfläche zu starten (evtl. wenn die äußerste Material- bzw. Gewebeschicht des Objekts praktisch transparent ist).
-
Bei einem Ray Casting Verfahren wäre der Startpunkt z.B. der Eintrittspunkt (sinnvoll bei einem „front-to-back Verfahren) eines simulierten Ray Casting Strahls in das Objekt oder der Austrittpunkt (sinnvoll bei einem „back-to-front Verfahren) aus dem Objekt.
-
Mittels wenigstens eines Teststrahls wird ein Wertes für den Einfluss von Schattenbildung oder ein Wert für den Einfluss von Umgebungsverdeckung (vorzugsweise Werte für beide Effekte) ermittelt.
-
Der beim Volume Renderung erhaltene gemischte Farbwert wird mit dem ermittelten Wert kombiniert, um einen gemischten Farbwert zu erhalten, bei dem der Einfluss von Schattenbildung oder Umgebungsverdeckung (vorzugsweise beides) berücksichtigt ist. Dabei handelt es sich in der Regel um eine Kombination von dem gemischten Farbwert mit nur bzw. ausschließlich dem ermittelten Wert für die Berücksichtigung des Einflusses von Schattenbildung bzw. des Einflusses von Umgebungsverdeckung (abgesehen von der etwaigen Berücksichtigung der Effekte durch lokale Beleuchtungsmodelle beim Schritt des Volume Renderings).
-
Es ist eine für die Erfindung entscheidende Erkenntnis, dass die vorgenommene Approximation, nämlich für den gemischten Farbwert bzw. für ein Pixel nur eine bzw. genau eine Berechnung der Effekte „Schatten“ und/oder „Umgebungsverdeckung“ durchzuführen, für viele Klassen von Objekten gegenüber der korrekten Vorgehensweise, die z.B. die Korrektur für ein Pixel für Abtastwerte entlang eines gesamten Ray Casting Strahls durchführt, zu einer sehr geringen Qualitätseinbuße führt. In gewisser Weise hat man statt einer Korrektur auf Voxel-Ebene eine Korrektur auf Pixel-Ebene bzw. im 2D-Raum.
-
Dagegen ist der Aufwand erheblich (mehr als eine Größenordnung) geringer, so dass Neuberechnungen auf derzeit üblicher Hardware schnell genug für interaktive Operationen des visualisierten Objekts (Drehen, Bearbeiten, Verändern der Lichtquellen, ...) durchgeführt werden können.
-
Der Aufwand kann gemäß Ausgestaltungen des Erfindungsgegenstandes weiter reduziert werden, indem die Länge der Teststrahlen beschränkt wird oder indem eine Berechnung der Effekte Schatten und/oder Umgebungsverdeckung nur für einen Teil der Pixel durchgeführt wird und die fehlenden Werte durch Interpolation der berechneten gewonnen wird.
-
Weitere vorteilhafte Ausgestaltungen des Erfindungsgegenstandes sind in Unteransprüchen angegeben.
-
Im Folgenden wird der Erfindungsgegenstand im Rahmen eines Ausführungsbeispiels anhand von Figuren näher erläutert. Es zeigen
- 1 eine Illustration von Umgebungsverdeckung
- 2 eine schematische Darstellung eines erfindungsgemäßen Verfahrens
- 3 eine erfindungsgemäße Zusammensetzung eines Bildes
- 4 ein Vergleich von Bildern zur Verdeutlichung der Bildqualität von erfindungsgemäß erzeugten Bildern
- 5 Darstellung von drei Bestandteilen, aus denen erfindungsgemäß ein Bild zusammengesetzt wird
- 6 Vergleich der Bildqualität für verschiedene Beleuchtungsmodelle
- 7 eine Hardwarestruktur zur Durchführung des erfindungsgemäßen Verfahrens
-
„Ambient occlusion“ bzw. Umgebungsverdeckung ist ein vereinfachter Zugang, um den Effekt von Streulicht in einer Umgebung um das Objekt zu berechnen. Dieses Licht kommt üblicherweise von allen Richtungen. Auf Grund von lokaler Schattenbildung erreicht weniger Licht Höhlungen und Ecken des Objekts, so dass diese dunkler als glatte Bereiche aussehen. Ein direkter (brute force) Zugang zur Approximation derartiger Streulichteffekte wäre eine große Anzahl von simulierten Teststrahlen in verschiedene Richtungen für jede Abtastposition beim Ray-Casting zu senden, um so Licht absorbierende Strukturen zu detektieren und die entsprechende Lichtabsorption zu berücksichtigen. Falls die Abtastposition auf einer impliziten Oberfläche liegt, ist es ausreichend, die Strahlen über eine Hemisphäre oberhalb der impliziten Oberfläche zu versenden. Dies ist in 1 näher dargestellt. Im Fall a aus 1 werden Strahlen über eine Halbkugel verteilt gesendet. Diese treffen auf kein Hindernis, so dass hier keine Abdunkelung im Zuge der Umgebungsverdunklung auftritt. Im Fall b ist rechter Hand eine absorbierende Wand gegeben, die in dem gezeigten Fall praktisch die Hälfte der Strahlen absorbiert, so dass ungefähr 50 % occlusion bzw. Verdunkelung vorherrscht. Im Fall c ist oben eine kugelförmige Absorptionsstruktur vorhanden, so dass ungefähr ein Drittel der Strahlen (in Bild 3 Strahlen von 9) absorbiert werden. In diesem Fall hätte man ca. 33 % occlusion bzw. Absorption.
-
Eine direkte Methode (brute force) würde eine ganz erhebliche Menge von Rechenzeiten und Speicher benötigen, da eine große Anzahl von Abtastpunkten während eines Ray-Castings abgetastet werden müssen. Dieselbe Überlegung gilt für die globale Berechnung von Schatten, d.h. das Abschirmen von der Direkteinstrahlung von Licht aus den Lichtquellen bei der Simulation. Für die Schatten wären bei einem „brüte force“ Algorithmus Teststrahlen in die Richtung von jeder Lichtquelle zu senden. Diese Vorgehensweise beinhaltet einen ganz erheblichen Aufwand, der insbesondere interaktive Manipulationen des visualisierten Objektes (respektiven Wechsel, Bearbeitung des Objektes ...) in Echtzeit unmöglich macht. Hier setzt die Erfindung an. Eine Ausführungsform der Erfindung wird nun anhand von 2 näher dargestellt. In einem ersten Schritt wird ein übliches Ray-Casting Verfahren (mit lokalem Beleuchtungsmodell oder völlig ohne Berücksichtigung von Beleuchtungseffekten) durchgeführt. Als Ergebnis erhält man mittels Alpha-Blending gemischte RGB-Werte, welche sozusagen eine erste Näherung für das zu berechnende Pixel darstellen. Dabei können auch durch stochastisches Jittering Abtastartefakte unterdrückt werden.
-
In einem zweiten Schritt werden von einer Oberfläche des Objektes Teststrahlen in Richtung der Lichtquellen ausgesendet, um den Einfluss von Schatten zu ermitteln. Das Ergebnis ist ein Wert zwischen 0 und 1, der ein Maß für den Schatteneinfluss darstellt (0 = vollständig beschattet, 1 = kein Schatten). Die Teststrahlen bzw. Schattenstrahlen treffen entweder auf absorbierende Strukturen und akkumulieren Schattenwirkung oder erreichen das Licht ungehindert. Das Ergebnis aller Schattenstrahlen kann zu einem mit Grauwerten gebildeten Schattenbild zusammengesetzt werden.
-
In einem dritten Schritt wird die globale Streulichtabsorption berücksichtigt. Wieder werden von einer Oberfläche des Objektes Teststrahlen ausgesendet und zwar in einer Anzahl von zufällig ausgewählten Richtungen oberhalb einer Hemisphäre der Oberfläche (vgl. 1). Die Materie bzw. das Volumen, auf das entlang der Strahlen getroffen wird, wird bezüglich ihres Einflusses bewertet und zu einem Gesamtwert akkumuliert. Die Ergebnisse können zu einem Bild zusammengesetzt werden.
-
Schritte 2 und 3 können auch kombiniert werden; dabei ist zu berücksichtigen, dass eventuell einzelne Strahlen sowohl für die Berechnung der Schatten als auch der Streulichtabsorption verwendet werden können.
-
In einem vierten Schritt wird das Ergebnis der Streulichtabsorptionsberechnung gefiltert, beispielsweise mit einem Gausfilter oder einem bilateralen Filter. Optional kann das Schattenbild ebenfalls eine solche Filterung erfahren.
-
In einem fünften Schritt werden die Ergebnisse aus dem ersten, zweiten und dritten Schritt miteinander kombiniert. Ein kombinierter Farbwert ORGBA (d.h. eine resultierender RGBA-Wert) kann z.B. mit den unten angegebenen Vorschriften a. - d. ermittelt werden. Dabei steht ORGB für den RGB-Anteil, OA für den alpha-Wert, VRT (volume rendering technique) bzw. VRTRGBA für das im ersten Schritt mittels herkömmlichen Volume Rendering ermittelte Ergebnis. Dabei kann Shading im Rahmen eines lokalen Beleuchtungsmodell oder auch gar nicht (vgl. VRT_UnshadedRGB in Vorschrift d.) berücksichtigt sein. SH (Shading) ist das Ergebnis des zweiten Schritts für die Schattenberechnung und AO (ambient occlusion) das Ergebnis des dritten Schrittes für die Umgebungsverdunklung. Der Ausdruck „ambient“ ist ein Faktor der aus einem lokalen Beleuchtungsmodell kommt, z.B. Phong-Modell. Er stellt in diesem Modell eine von der Einfallsrichtung des reflektierten Lichtes unabhängige Komponente des reflektierten Lichtes dar, deren Wert als Produkt von der Intensität des Umgebungslichts und einer Materialkonstante ausgedrückt werden kann. Mit diesen Bezeichnungen können folgende Vorschriften verwendet werden:
- a. ORGB = VRTRGB * SH + ambient * AO * VRT RGB, OA = VRTA
- b. ORGB = VRTRGB * SH + ambient * AO, OA = VRTA
- c. ORGB = VRTRGB * SH * AO, OA = VRTA
- d. ORGB = VRTRGB * SH + ambient * AO * VRT_UnshadedRGB, OA = VRTA
-
Gemäß der Erfindung wird somit die aufwendige Schatten- und Verdunkelungsberechnung sozusagen im Raum des Bildschirmes bzw. der Pixel vorgenommen, d.h. für jedes Pixel auf dem Bildschirm wird jeweils nur eine Schattenberechnung bzw. Verdunkelungsberechnung durchgeführt und nicht mehr entlang eines Strahles. Dies ist eine Näherung und im Prinzip ungenauer als „brüte force“ Verfahren, die entlang eines ganzen Strahles Schatten und Umgebungsverdunkelung berechnen. Diese Näherung führt jedoch, wie im Folgenden anhand von Figuren gezeigt wird, zu qualitativ kaum beeinträchtigten Ergebnissen für viele Objekte.
-
Das Verfahren funktioniert gut mit Transferfunktionen mit niedriger Transparenz. Transferfunktionen mit großen semitransparenten Teilen können in Bildartefakten enden. Jedoch sind undurchlässige Transferfunktionen sehr gebräuchlich, beispielsweise bei der Knochenvisualisierung in medizinischen Applikationen oder für die Visualisierung von industriellen CT-Datensätzen.
-
Da Umgebungsverdunklung und Schatten Effekte mit einer niedrigen Frequenz bzw. niedrigen Variation sind, kann eine unterschiedliche Auflösung bei dem Verfahren zur Anwendung kommen, d.h. dass Schatten (SH) und Umgebungsverdunkelung (AO) mit einer geringeren Auflösung als das ursprüngliche Volume Rendering (VRT) berechnet werden. Für die Verknüpfung der VRT, SH und AO Bilder kann dann bei den Bildern mit niedrigerer Auflösung, d.h. SH und AO Bilder, interpoliert werden.
-
3 zeigt anschaulich wie das Verfahren funktioniert. Links oben mit der Beschriftung VRT ist ein Bild gezeigt, welches herkömmlich ohne globale Beleuchtungseffekte aufgenommen wurde. Darunter ist das sogenannte „First-Hit“-Bild gezeigt, d.h. das Bild, das von dem ersten Auftreffen der Strahlen auf einen Absorber erhalten wird. Es ist interessant zu bemerken, dass dieses „First Hit“-Bild dem vollständigen Bild darüber schon sehr nahekommt. Dieses Bild liefert dann die Startpositionen für die globale Berechnung der Schatten (Bild „Shadows“) und der Umgebungsverdunklung (im Bild „ambient occlusion“). Das „ambient occlusion“ Bild wird noch einer Filterung unterzogen (Bild „filter“). Schließlich werden alle Bilder mit der in der Figur gezeigten Formel (Formel a. von oben) zusammengesetzt. In 4 sind vier Bilder gezeigt. Oben links das mit lokalen Beleuchtungseffekten aufgenommene VRT Bild. Unten links ist das erfindungsgemäß berechnete Schattenbild gezeigt. Das zusammengesetzte Bild von den beiden linken (VRT mit AO) ist rechts oben gezeigt. Darunter rechts unten das Bild, welches nun erhalten würde, wenn man das brute force Verfahren komplett zur Schattenberechnung durchführen würde. Man sieht hier eine geringe Abweichung durch die gemachte Näherung für den untersuchten Gegenstand (Vergleich der Bilder rechts oben und rechts unten). Dies wird auch noch anhand von den folgenden Bildern verdeutlicht.
-
In 5 ist links ein Bild gezeigt, welches mit lokaler Beleuchtung ermittelt wurde (VRT Bild). Ganz rechts ist das Bild der Umgebungsverdunkelung (AO Bild) und in der Mitte das zusammengesetzte Bild (VRT mit AO).
-
In 6 ist links wiederum das Bild mit dem lokalen Beleuchtungseffekt gezeigt (VRT Bild). In der Mitte ist das Bild dargestellt, welches man mit Schatten und Umgebungsverdunkelung erfindungsgemäß erhalten würde (VRT mit SH und AO) und ganz rechts das Bild, in dem die „brüte force“-Methode ohne Näherung durchgeführt wird. Man sieht aus den geringen Unterschieden zwischen den Bildern rechts und in der Mitte die vergleichsweise gute Qualität dieser Näherung.
-
Es versteht sich, dass die vorliegende Erfindung in verschiedenen Formen von Hardware, Software, Firmware, Spezialzweckprozessoren oder einer Kombination daraus implementiert werden kann. Bevorzugt ist eine Implementierung auf einer GPU (graphics processing unit) mit OpenGL (open graphics language) und der OpenGL Shading Language.
-
In einer Ausführungsform kann die vorliegende Erfindung in Software als ein Anwendungsprogramm implementiert werden. Das Anwendungsprogramm kann auf einer Maschine hochgeladen und auf ihr ausgeführt werden, die eine beliebige geeignete Architektur aufweist.
-
Unter Bezugnahme auf 7 kann gemäß einer Ausführungsform der vorliegenden Erfindung ein Computersystem 401 für GPU basiertes Raycasting unter anderem eine zentrale Verarbeitungseinheit (central processing unit; CPU) 402, einen Speicher 403, und eine Eingabe-/Ausgabe (E-/A-)Schnittstelle 404 aufweisen. Das Computersystem 401 ist im Allgemeinen über die E-/A-Schnittstelle 404 mit einer Anzeigevorrichtung 405 und diversen Eingabevorrichtungen 106 wie z.B. eine Maus oder eine Tastatur gekoppelt. Die Zusatzschaltkreise können Schaltkreise wie z.B. Cache, Stromversorgung, Taktschaltungen und eine Kommunikationssammelleitungen umfassen. Der Speicher 403 kann ein Schreib-Lese-Speicher (random acces memory, RAM), ein Lese-Speicher (read only memory, ROM), ein Diskettenlaufwerk, ein Bandlaufwerk, usw. oder eine Kombination davon umfassen. Die vorliegende Erfindung kann als ein Programmroutine 407, die im Speicher 403 gespeichert ist und von der CPU 402 ausgeführt wird, implementiert werden, um das Signal von der Signalquelle 408 zu verarbeiten. Das Computersystem 401 umfasst des Weiteren eine grafische Verarbeitungseinheit (graphic processing unit; GPU) 409, zur Verarbeitung von Graphikanweisungen, z.B. zur Verarbeitung der Signalquelle 408, die Bilddaten aufweist. Als solches ist das Computersystem 401 ein allgemeines Mehrzweck-Computersystem, das zu einem Spezialzweck-Computersystem wird, wenn es das Programm 407 der vorliegenden Erfindung ausführt.
-
Die Computerplattform 401 enthält auch ein Betriebssystem und einen Mikrobefehlscode. Die verschiedenen, hierin beschriebenen Verfahren und Funktionen können entweder Teil des Mikrobefehlscodes oder Teil des Anwendungsprogramms (oder einer Kombination davon) sein, das von dem Betriebssystem ausgeführt wird. Darüber hinaus können verschiedene andere Peripheriegeräte wie z.B. eine zusätzliche Datenspeichereinrichtung und eine Druckeinrichtungen an die Computerplattform angeschlossen werden.
-
Es versteht sich des Weiteren, dass, da einige der einzelnen Systemkomponenten und Verfahrensschritte, die in den beigefügten Figuren dargestellt sind, in Software implementiert werden können, die tatsächlichen Verbindungen zwischen den Systemkomponenten (oder zwischen den Prozessschritten) abweichen können, in Abhängigkeit der Art und Weise, in der die vorliegende Erfindung programmiert ist. Mit der angegebenen Lehre der vorliegenden Erfindung, die hierin vorgelegt wird, wird der einschlägige Fachmann imstande sein, diese und ähnliche Ausführungen oder Konfigurationen der vorliegenden Erfindung zu berücksichtigen.
-
Die Erfindung ist nicht auf die im Ausführungsbeispiel dargestellten Anwendungen beschränkt. Insbesondere ist vorstellbar, dass bei virtuellen Darstellungen in ganz anderen Bereichen als der Medizintechnik dieses Verfahren zum Einsatz kommt. Beispiele sind die Visualisierung von Produkten im Rahmen von Wirtschaft und Handel und Computerspiele.
- 1) Joe Kniss, Simon Premoze, Charles Hansen, and David Ebert. „Interactive Translucent volume rendering and procedural modelling". In VIS '02: Proceedings of the conference on Visualization '02, pages 109-116, IEEE Computer Society, 2002.
- 2) Markus Hadwiger, Andrea Kratz, Christian Sigg, and Katja Bühler. „Gpu accelerated deep shadow maps for direct volume rendering"... In GH '06: Proceedings of the 21st ACM SIGGRAPH/Europraphics symposium on Graphics hardware, pages 49-52, New York, NY, USA, 2006. ACM Press.
- 3) Timo Ropinski, Jens Kasten, Klaus Hinrichs, „Efficient Shadows for GPU-based Volume Raycasting“, International Conferences in Central Europe on Computer Graphics, Visualization and Computer Vision 2008
- 4) ZHUKOV, S., IONES, A., AND KRONIN, G. 1998. An ambient light illumination model. In Rendering Techniques '98 (Proceedings of the Eurographics Workshop in Rendering), 45-55.
- 5) Philippe Desgranges, Princeton, New Jersey (U.S.), Klaus Engel, Princeton, New Jersey (U.S.), FAST AMBIENT OCCLUSION FOR DIRECT VOLUME RENDERING, U.S. Provisional application No. 60/698.830 , filed July 13, 2005
- 6) ROPINSKI T., MEYER-SPRADOW J., DIEPENBROCK S., MENSMANN J., HINRICHS K. H.: Interactive volume rendering with dynamic ambient occlusion and color bleeding. Computer Graphics Forum (Eurographics 2008) 27, 2 (2008), 567-576.
- 7) STEWART A.J.: Vicinity shading for enhanced perception of volumetric data. In VIS '03: Proceedings of the 14th IEEE Visualization 2003 (VIS'03) (2003), IEEE Computer Society, pp. 355-362.