DE69901572T2 - Verfahren zur volumetrischen bilddatenverarbeitung eines durch texturabbildung visualisierten objektes - Google Patents
Verfahren zur volumetrischen bilddatenverarbeitung eines durch texturabbildung visualisierten objektesInfo
- Publication number
- DE69901572T2 DE69901572T2 DE69901572T DE69901572T DE69901572T2 DE 69901572 T2 DE69901572 T2 DE 69901572T2 DE 69901572 T DE69901572 T DE 69901572T DE 69901572 T DE69901572 T DE 69901572T DE 69901572 T2 DE69901572 T2 DE 69901572T2
- Authority
- DE
- Germany
- Prior art keywords
- shadow
- volume
- values
- image
- light source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
- Die auf der Textur basierende Volumenwiedergabe ist eine Technik zum effizienten Visualisieren volumetrischer Daten unter Verwendung einer Texturabbildungs-Hardware. Die vorliegende Erfindung betrifft ein Verfahren, bei dem diese Vorgehensweise auf das Wiedergeben von Schatten für das Volumen ausgeweitet wird. Bei dem Verfahren werden die Vorteile der von der modernen Hardware gebotenen schnellen Teilbildpuffer-Operationen ausgenutzt, es ist jedoch nicht von einer besonderen Hardware abhängig.
- Der visuelle Eindruck des fertigen Bildes wird durch das Einbringen einer größeren Menge von Struktur- und dreidimensionalen Informationen in das häufig neblig erscheinende Bild der auf der Textur basierenden Volumenwiedergaben beträchtlich verbessert. Obwohl mit dem Verfahren keine Berechnungen der Beleuchtung durchgeführt werden, hat das erzeugte Bild eine beschattete Erscheinungsform, die ein weiterer visueller Faktor für das Raumverständnis der Daten ist und dafür sorgt, dass die Bilder realistischer erscheinen.
- Da das Berechnen der Schatten von dem Visualisierungsvorgang unabhängig ist, ist eine Anwendung auf jede Form der Volumenvisualisierung möglich, obwohl eine auf einer zwei- oder dreidimensionalen Texturabbildungs-Hardware basierende Volumenwiedergabe am sinnvollsten ist. Im Vergleich zu einer unbeschatteten, auf der Textur basierenden Volumenwiedergabe verringert sich die Leistung um weniger als 50%, was immer noch ausreicht, um eine interaktive Manipulation der Volumendaten zu gewährleisten. In dem besonderen Fall, in dem sich nur die Kamera bewegt, während die Lichtposition auf die Szene fixiert ist, erfolgt gar keine Leistungsreduzierung, da eine Neuberechnung nur dann durchgeführt werden muss, wenn sich die Position der Lichtquelle relativ zu dem Volumen verändert.
- Bei der Volumenwiedergabe werden die Volumendaten typischerweise als halbtransparente Wolke aus Voxeln, die diffuses Licht emittieren, betrachtet. Die Aufgabe besteht darin, pro Pixel die Gesamtstärke sämtlicher beteiligter Voxel festzustellen. Bei der einfachsten Methode verläuft ein Strahl durch jedes Bildpixel und integriert die Stärken sämtlicher Voxel, die der Strahl durchdringt [7]. Es muss darauf geachtet werden, dass der von Voxeln geleistete Beitrag durch die akkumulierte Opazität der vorgeschalteten Voxel weiter reduziert wird.
- Andernfalls hätten sämtliche Voxel mit der gleichen Lichtausstrahlung die gleiche Heiligkeit auf dem Schirm, und es wäre praktisch unmöglich, zwischen hinten und vorn zu unterscheiden. Leider ist die Vorgehensweise, bei der ein Strahl verwendet wird, berechnungstechnisch aufwendig und ermöglicht normalerweise keine interaktiven Manipulation der Daten: Zur Eliminierung dieser Einschränkung wurden alternative Verfahren entwickelt, mit denen vergleichbare Ergebnisse in kürzerer Zeit [5, 6] erzielt wurden, wobei die auf der Textur basierende Volumenwiedergabe [2] die höchsten interaktiven Teilbildwechselfrequenzen verspricht.
- Die Verwendung von dreidimensionalen Texturen für die Volumenwiedergabe wird von Cabral et al. [2] beschrieben. Das Verfahren unterscheidet sich von den sogenannten auf dem Bild basierenden Volumenwiedergabeverfahren [5, 6, 7], bei denen das fertigt Bild Pixel für Pixel berechnet wird, durch die auf Objekten basierende Vorgehensweise und den extensiven Einsatz der Bildaufbau- und Texturierungs-Hardware. Bei den auf dem Bild basierenden Verfahren werden die Lichtausstrahlung und die Opazität über einen das interessierende Volumen durchlaufenden Strahl in die Software integriert, wohingegen bei auf der Textur basierenden Verfahren die Daten als Stapel texturierter parallel verlaufender Ebenen von hinten nach vorn wiedergegeben werden, wobei die Integration von Lichtausstrahlung und Opazität in einem Bildaufbauschritt erfolgt, der auf effiziente Weise in der Hardware durchgeführt werden kann [2]. Dieser Geschwindigkeitsvorteil wird durch die geringere Qualität der hergestellten Bilder beeinträchtigt. Wichtige sekundäre visuelle Faktoren, wie Beleuchtung und Schatten, waren früher bei interaktiven Teilbildwechselfrequenzen schwer zu integrieren, wenn dies überhaupt möglich war.
- Dies ist insbesondere bei Anwendungen wie der medizinischen Visualisierung, bei der ein profundes Verständnis der räumlichen Verhältnisse erforderlich ist, von Nachteil. Bei einem Planungssystem für neurochirurgische Operationen zeigt sich, dass die Bildqualität bei der auf der Textur basierenden Volumenwiedergabe häufig nicht in ausreichendem Maße die Ausrichtung des Datensatzes angibt. Dieses Problem kann zwar teilweise gelöst werden, solange dass Objekt bewegt wird, der Eindruck verschwindet jedoch, sobald ein stehendes Bild genauer untersucht werden soll. Es werden daher Verfahren gesucht, bei denen visuelle Faktoren dem Bild hinzugefügt werden, ohne dass die Interaktivität beeinträchtigt wird.
- Das Basisverfahren zur Volumenwiedergabe von Daten mit Texturabbildung funktioniert wie folgt: Als erstes wird der dreidimensionale Datensatz als dreidimensionaler Texturblock in den Texturpuffer des Grafikteilsystems geladen. Ein Bild wird durch Wiedergeben eines Stapels paralleler Ebenen, die rechtwinklig zu der Betrachtungsrichtung verlaufen, von hinten nach vorn erzeugt, wobei jede Ebene mit einer entsprechend ausgerichteten Ebene von dem Texturblock texturiert wird. Jede neue Texturebene wird dann durch Anwendung einer geeigneten Mischfunktion mit dem Inhalt des Teilbildpuffers gemischt. Die von hinten nach vorn erfolgende Wiedergabe gewährleistet ein korrektes Tiefenverhältnis zwischen den Ebenen, während das Mischen sicherstellt, dass weiter entfernte Voxel in einer durch die Transparenz der vorgeschalteten Voxel skalierten Stärke erscheinen.
- Es sind eine Anzahl von Erweiterungen des Basisverfahrens vorgeschlagen worden. Varianten der Mischoperation ermöglichen das Extrahieren unterschiedlicher Eigenschaften aus den Daten. Beispiele dafür sind der übliche "Über"-Operator [10], der eine abgeschwächte Integration implementiert, ähnlich wie bei der auf dem Bild basierenden Volumenwiedergabe, oder ein Operator zum Projizieren einer maximalen Stärke [8] (MIP), der zum Visualisieren von Kontrastmitteln bei medizinischen Abbildungen verwendet wird.
- Van Gelder and Kim [14] erweitern das Verfahren durch Vorsehen einer diffusen und spiegelnden Beleuchtung [9]. Bei diesem Verfahren werden in einem Vorbearbeitungsschritt die Gradienten an jedem Voxel festgestellt. Bei der Volumenwiedergabe dient der Gradient zum Berechnen der Gesamtlichtstärke jedes Voxels. Diese Ergebnisse werden dann als eine neue wiedergebbare 3D- Textur gespeichert. Obwohl dieses Verfahren zu beeindruckenden Ergebnissen hinsichtlich einer realistischen Darstellung und einem verbesserten Raumverständnis führt, bewirkt es eine Leistungsreduzierung in der Größenordnung eines Faktors von 10 [14].
- Diese Modifikationen sind auf die Erfordernis zur Verbesserung der Visualisierung hinsichtlich ausgewählter Aspekte der Daten zurückzuführen. Die MIP- Variante des Aufbau-Operators dient dazu, die Aufmerksamkeit auf den Bereich der größten Kontrastverstärkung zu lenken, während von Gelder and Kim versuchen, das Problem des nebligen, düsteren Erscheinungsbildes, das beim Originalverfahren erzeugt wird, zu lösen und die darunter liegende Flächenhelligkeit und somit den räumlichen Kontext zu hervorzuheben.
- Ein wichtiger sekundärer visueller Faktor für die Ausrichtung in einem Volumen sind Schatten. Der bessere visuelle Eindruck von Volumendaten, der durch Anwendung von Strahlverfolgungstechniken hervorgerufen wird, entsteht durch das detaillierte Modellieren der Beleuchtung, einschließlich Schatten. Im Zusammenhang mit einem Planungssystem für neurochirurgische Operationen [1] hat sich herausgestellt, dass Schatten das Raumverständnis von Volumendaten wesentlich verbessern können, wenn diese mit interaktiven Teilbildwechselfrequenzen wiedergegeben werden.
- Das zentrale Problem, das gelöst werden muss, betrifft die Entscheidung, ob ein Voxel von einem anderen Voxel beschattet wird. Ein Voxel befindet sich relativ zu einer Lichtquelle im Schatten, wenn ein anderes nicht transparentes Voxel in der Ziellinie zwischen letzterem Voxel und der Lichtquelle liegt. Somit wird zwecks Entscheidung, ob ein Voxel im Schatten liegt, ein Strahl zur Lichtquelle verfolgt und die Opazität sämtlicher Voxel, die dabei gekreuzt werden, integriert. Die Lichtmenge, die das letzte Voxel erreicht, verhält sich umgekehrt proportional zu der akkumulierten Opazität. Diese Technik ist als "Aussenden von Schattenstrahlen" bei der Strahlverfolgung bekannt. Eine ähnliche Vorverarbeitungs-Version ist das Kernstück von Reeves Schattenabbildungsverfahren [11]. In [12] präsentiert Sobierajski ein Beleuchtungsmodell für die Volumenwiedergabe unter Berücksichtigung von Schatten, Streuung und anderen subtilen Effekten, das erfolgreich in einem dem Stand der Technik entsprechenden System eingesetzt worden ist. Zu einem früheren Zeitpunkt hat Rushmeier [13] ein ähnliches Modell entwickelt, obwohl diese Vorgehensweise auf radioaktiver Wärmeübertragung basierte [13].
- In [17] ist ein Verfahren zum Erzeugen des Schattens eines willkürlich geformten dreidimensionalen Objekts beschrieben, wobei das Objekt vollkommen lichtundurchlässig ist. Ferner ist in [18] ein Verfahren zum Erzeugen von Schatten- und Lichteffekten unter Verwendung der Texturabbildung beschrieben, wobei auch hier die angezeigten Objekte lichtundurchlässig sind.
- Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein vergleichsweise einfaches Verfahren zur genauen Wiedergabe von beschatteten halbtransparenten Volumen bei nur mäßig längerer Wiedergabezeit zu schaffen. Das Verfahren ist schnell und leicht zu implementieren und kann auf mehrere Lichtquellen ausgeweitet werden.
- Die Lösung dieser Aufgabe erfolgt erfindungsgemäß durch ein Verfahren zum Verarbeiten volumetrischer Bilddaten eines halbtransparenten Objekts, das durch Licht von einer Lichtquelle, welches in einer von einem Lichtvektor definierten Richtung auf das Objekt einfällt, einen Schatten erzeugt, wobei jedes der volumetrischen Bilddaten einen Transparentwert und einen Helligkeitswert repräsentiert und das Verfahren folgende Schritte umfasst:
- (a) Teilen der volumetrischen Bilddaten in mehrere Bildebenendaten, die einzelne sequentiell hintereinander angeordnete Schichten des Objekts repräsentieren,
- (b) Erzeugen eines Schattenwertes für jedes der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am nächsten ist, auf der Basis des Lichtvektors und der Transparentwerte der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am nächsten ist, und Speichern dieser Schattenwerte,
- (c) Überlagern der in Schritt (b) gespeicherten Schattenwerte und der Helligkeitswerte der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am zweitnächsten ist, und zwar gemäß dem Lichtvektor und der Distanz zwischen diesen beiden benachbarten Objektschichten,
- (d) Erzeugen von Schattenwerten für jedes der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am zweitnächsten ist, auf der Basis des Lichtvektors und der Transparentwerte der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am zweitnächsten ist, und Addieren dieser Werte zu den gespeicherten Schattenwerten,
- (e) Überlagernder in Schritt (d) gespeicherten Schattenwerte und der Helligkeitswerte der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am drittnächsten ist, und zwar gemäß dem Lichtvektor und der Distanz zwischen diesen beiden benachbarten Objektschichten,
- (f) Durchführen von Schritten (d) und (e) für jede Objektschicht, die in der von der Lichtquelle wegführenden Richtung die nächste ist, und
- (g) Volumenwiedergabe der Helligkeitswerte der Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am nächsten ist und der überlagerten Schatten- und Helligkeitswerte der Bildebenendaten sämtlicher anderen Objektschichten zur Anzeige des halbtransparenten Objekts mit dem von dem halbtransparenten Objekt erzeugten Schatten.
- Vorzugsweise umfasst das Überlagern einen Schritt des Mischens der Helligkeits- und Schattenwerte gemäß einer Mischfunktion.
- Erfindungsgemäß werden die von den einzelnen volumetrischen Bilddaten (Voxeln) geworfenen Schatten sukzessive von Objektschicht zu Objektschicht berechnet. Zur Volumenwiedergabe werden die volumetrischen Bilddaten in mehrere Gruppen von Bildebenendaten aufgeteilt, wobei die Gruppen einzelne sequentiell hintereinander angeordnete Schichten des Objekts repräsentieren.
- Erfindungsgemäß wird der von den einzelnen Bildebenendaten der Schichten erzeugte akkumulierte Schatten berechnet. Sämtliche volumetrische Daten repräsentieren sowohl einen Transparent- als auch einen Helligkeitswert. Vorzugsweise wird sämtlichen volumetrischen Bilddaten ein Helligkeitswert zugeordnet, wobei der Transparentwert als die Umkehrung des Helligkeitswerts betrachtet werden kann.
- Nach dem Berechnen der Schattenwerte sämtlicher Bildebenendaten einer jeweiligen Schicht werden diese Schattenwerte mit den Helligkeitswerten der Bildebenendaten derjenigen Objektschicht kombiniert, die in Richtung des Lichtvektors am nächsten liegt. Diese überlagerten Schatten- und Helligkeitswerte für jede Objektschicht werden gespeichert. Nach dem Verarbeiten sämtlicher Bildebenendaten sämtlicher Schichten durch Berechnen der Schatten, den diese auf benachbarte Schichten werfen, werden die gespeicherten überlagerten Schatten- und Helligkeitswerte zur Wiedergabe des beschatteten Volumens/Objekts verwendet. Bei diesem Wiedergabevorgang zur Darstellung der Bildebenendaten der der Lichtquelle am nächsten liegenden Schicht werden die Helligkeitswerte ihrer Bildebenendaten verwendet. Es wird nämlich kein Schatten auf diese Schicht geworfen.
- Beim Überlagern der erzeugten Schattenwerte der Bildebenendaten einer Schicht und der Helligkeitsdaten der Bildebenendaten der in Richtung des Lichtvektors nächsten Schicht werden die Ausrichtung des Lichtvektors und insbesondere der Winkel in Richtung des Lichtvektors und in Betrachtungsrichtung sowie die Transparentwerte der Bildebenendaten berücksichtigt. Die Stelle, an der ein aus dem Transparentwert eines Bildebenendatums resultierender Schatten auf die in Richtung des Lichtvektors nächsten Schicht auftrifft, wird anhand der Ausrichtung des Lichtvektors und der Distanz zwischen zwei benachbarten Objektschichten berechnet. Diese Distanz ist die Distanz zwischen den Mittelpunkten zweier Voxel zweier benachbarter Schichten.
- Der Vorteil des erfindungsgemäßen Verfahrens ist, dass es auf der bekannten auf der Textur basierenden Volumenwiedergabe beruht, die erfindungsgemäß ein halbtransparentes Objekt/Volumen einschließlich Schatten betrifft.: Dadurch, dass die einzelnen Teile des gesamten von dem Objekt erzeugten Schattens schichtweise berechnet werden, handelt es sich bei dem Ergebniwieder um schichtweise ausgerichtete Bildebenendaten, die unter Anwendung der Texturabbildung wiedergegeben werden können.
- Die Erfindung wird anhand einer bevorzugten Ausführungsform, die in der Zeichnung dargestellt ist, genauer beschrieben.
- Fig. 1 zeigt einen schematischen Überblick über das erfindungsgemäße Verfahren, wobei ein unbeschattetes Volumens V als Eingabe genommen und ein beschattetes Volumen V* mittels Teilbildpuffer- Operationen als Ausgabe erzeugt wird. Puffer 1 und Puffer 2 sind reservierte Pixelbereiche innerhalb des Teilbildpuffers, in denen die Operationen stattfinden. Im Puffer 2 werden sämtliche Schatten der Ebenen p&sub1;, ..., Pi-1 akkumuliert, während im Puffer 1 dieser akkumulierte Schatten s; auf die Ist-Ebene pi aufgebracht wird. Die daraus resultierende Ebene p&sub1;* wird dann auf das beschattete Volumen übertragen.
- Fig. 2 zeigt einen einfachen Trick: zum Erzeugen des Schattens von p&sub1; wird p&sub2; mit der gleichen Textur gezeichnet, jedoch mit einer speziellen Mischfunktion und Versetzung in den Teilbildpuffer. Dann wird p&sub1; mit dem Über-Operator in den Teilbildpuffer gemischt und somit der Eindruck eines beschatteten Bildes erzeugt. In dem Beispiel sieht man ein CT-Bild mit der Darstellung von Knochen, die als lichtundurchlässig und weiß klassifiziert sind, wobei das diese umgebende Gewebe grau und halbtransparent ist. Es sei darauf hingewiesen, dass die lichtundurchlässigen Knochen einen stärkeren Schatten auf den Hintergrund werfen als das halbtransparente Gewebe.
- Fig. 3 zeigt ein Polygon p&sub1;, das mit einer Volumenebene texturiert ist, die den Schatten auf das im Hintergrund befindliche Polygon p&sub2; wirft. Die Tangente des Winkels φ in dem Dreieck definiert die Verschiebung ds für die Versetzung des Schattens.
- Fig. 4 zeigt eine Lichtquelle L, die von rechts oben auf das Volumen scheint. Die Schatten, die gepunkteten Linien, breiten sich durch das Volumen aus und akkumulieren die Voxel α-Werte. Die Voxel in dem daraus resultierenden Volumen V* werden dann entsprechend ihrer eigenen Transparenz und der Transparenz der auf sie fallenden Schatten abgedunkelt. Es sei darauf hingewiesen, dass die halbtransparenten Voxel in p&sub4; weniger stark abgedunkelt sind als die gleichen gefärbten lichtundurchlässigen Voxel. Es sei ferner darauf hingewiesen, dass in p&sub8; die halbtransparenten Voxel von p&sub4; einen helleren Schatten werfen als die lichtundurchlässigen Voxel und dass sich der Schatten von p&sub2; zu p&sub8; fortpflanzt.
- Fig. 5 zeigt einen Überblick über das implementierte Verfahren. Es musste ein Puffer 3 hinzugefügt werden, um eine Kopie des ackumulierten Schattens s1 zu erzeugen, der in Schritt 2 mit pi's α gemischt werden kann.
- Fig. 6 zeigt eine auf der Textur basierende Volumenwiedergabe eines beschatteten und eines unbeschatteten CT-Datensatzes, Das rechte Bild sieht realistischer auf, und zwar aufgrund einer Art "künstlicher Beleuchtung", die als Nebeneffekt der Schatten auftritt.
- Fig. 7 zeigt einen Vergleich von beschatteter und unbeschatteter, auf der Textur basierender Volumenwiedergabe eines geometrischen Datensatzes. Dieser 128 · 128 · 64 Voxel große Datensatz wurde zur Steuerung der korrekten Berechnung der Schatten erzeugt. Die Bilder wurden mittels 256 paralleler texturierter Ebenen wiedergegeben. Die Szene zeigt oben einen großen Block mit vier darunter liegenden kleineren Blöcken mit unterschiedlicher Transparenz. In dem beschatteten Bild sieht man, wie die unterschiedlichen kleineren Blöcke unterschiedliche Schatten auf den Boden werfen und wie der Schatten des großen Blocks auf den kleineren Blöcken unterschiedlich ausfällt. Man kann hier auch den Effekt der künstlichen diffusen Beleuchtung sehen, da Flächen, die der Lichtquelle abgewandt sind, dunkler sind als andere Flächen.
- Fig. 8 zeigt Aufnahmen einer Volumenwiedergabe mit dem 128 · 128 · 64 Voxel großen Datensatz, der als 3D-Textur auf 256 parallele Ebenen abgebildet ist. Es sei darauf hingewiesen, dass der Schatten von dem Arm des Fötus auf dessen Gesicht geworfen ist. Obwohl das beschattete Bild realistischer aussieht, deckt der Schatten mehr Details ab. Der Datensatz kann jetzt jedoch durch interaktives Bewegender Lichtquelle abgetastet weiden, so dass Details gezeigt werden, die im unbeschatteten Bild nicht zu sehen sind.
- Die Eingaben sind bei unserem Verfahren die Volumendaten V bestehend aus Bildebenen p&sub1;, ..., pn und einem Lichtvektor L. Bei jeder Veränderung von L wird durch das Verfahren ein neues Ausgangsvolumen V* erzeugt, das die beschatteten Ebenen p&sub1;*, ... pn* enthält. Dies erfolgt durch Berechnung einer Schattenabbildung si für jede eingegebene Volumenebene pi in dem Teilbildpuffer. Bei Weglassung einiger Details ergibt sich folgender Überblick über unser Verfahren, das in Fig. 1 dargestellt ist:
- 0. Kopieren von P&sub1; in p&sub1;*
- für sämtliche Ebenen p&sub2; bis pn:
- 1. Zeichnen von Ebene pi in Puffer 1
- 2. Erzeugen von Schatten si durch Mischen von Ebene Pi-1 in Schatten si-1 in Puffer 2
- 3. Erzeugen von pj* durch Mischen von neuem sj in pj in Puffer I
- 4. Auslesen von beschatteter Ebene pi* aus Puffer 1
- Das draus resultierende beschattete Volumen V* kann durch Anwendung von Cabrals auf der Textur basierender Volumenwiedergabe oder eines beliebigen anderen Visualisierungsverfahrens visualisiert werden. Somit wird jedes Mal, wenn das Volumen relativ zu der Lichtquelle gedreht oder bewegt wird, ein neuer Schatten abgebildet und ein neues beschattetes Volumen erzeugt. Wenn die Licht- und Volumenpositionen unverändert bleiben und sich nur die Kamera bewegt, bleiben die im Schatten liegenden Voxel unverändert, so dass keine Nachverarbeitung erforderlich ist.
- Es sei darauf hingewiesen, dass bei Anwendung dieses Verfahrens der Schatten innerhalb des Volumens schrittweise erzeugt wird. Da die vorderen i-1 Ebenen den Schatten für eine Ebene pi miterzeugen, müssten bei einem naiven Verfahren sämtliche Ebenen p&sub1;, ..., Pi-1 für jedes i erneut durchlaufen werden. Obwohl dies zu einer Komplexität von O(n²) führen würde, reicht für unser Verfahren O(n) aus, da nur vier zusätzliche Operationen zum Erzeugen eines Schatten aus einer unbeschatteten Ebene erforderlich sind. Da es sich bei diesen Operationen um das Zeichnen, Lesen oder Kopieren von Pixeln handelt, kann davon ausgegangen werden, dass dieses Verfahren auf einer modernen Grafik-Hardware schnell durchführbar ist.
- Die echte Arbeit bei unserem Verfahren erfolgt natürlich in den Schritten 2 und 3. Bei Schritt 2 muss herausgefunden werden, wie die Schatten innerhalb des Volumens akkumuliert werden, während in Schritt 3 der Schatten an eine Volumenebene angelegt werden muss. Zum besseren Verständnis dieser Vorgehensweise muss zunächst gezeigt werden, wie der Schatten einer einzelnen Ebene auf ein einfaches Polygon geworfen wird, dann muss man sehen, was geschieht, wenn der Schatten auf eine weitere Ebene fällt, und schließlich, wie sich die Schatten durch das Volumen ausbreiten.
- Man stelle sich die Situation vor, in der ein mit einer einzelnen Volumenebene texturiertes Polygon p&sub1; einen Schatten auf ein einfaches Hintergrund-Polygon p&sub2; werfen soll. Der Trick bei unserem Verfahren besteht darin, dass die gleiche Textur auf p&sub2; abgebildet wird und dann folgende zwei Schritte durchgeführt werden, die in Fig. 2 dargestellt sind:
- 1. Zeichnen von P&sub2; mit einer speziellen Mischfunktion und Versetzung ds
- 2. Zeichnen von p&sub1; mit dem Über-Operator
- Dieser einfache Trick führt zu dem Eindruck, dass p&sub1; einen Schatten auf p&sub2; wirft. Die beiden wichtigen Details sind hier das Berechnen der korrekten Versetzung ds für P&sub2; und das Mischen von P&sub2; in den Hintergrund.
- Anhand von Fig. 2 kann man sich vorstellen, dass der Schatten weiter nach links geworfen wird, wenn sich das Licht nach rechts bewegt. Diese Schattenversetzung hängt allein von der Distanz dp zwischen den beiden Polygonen und dem Winkel φ zwischen dem Lichtvektor L und der Polygon-Normalen N ab:
- ds = dp·tanφ (1)
- Es sei darauf hingewiesen, dass die Lichtposition durch p auf < 45º begrenzt wird, um Diskontinuitäten der Tangente zu vermeiden. Es sei ferner darauf hingewiesen, bei φ = 45º ds = dp, wie in Fig. 3 gezeigt.
- Wenn anfangs ein Blick auf den Teilbildpuffer geworfen wird, so stellt sich heraus, dass dieser regelmäßig die Hintergrund- oder Zielfarbe cd = (rd, gd, bd) und den α-Wert αd aufweist. Es soll erreicht werden, cd dort abzudunkeln, wo das Hintergrund-Polygon p&sub2; nicht transparent ist und somit das Bild-Polygon P&sub2; einen Schatten wirft.
- Dies ist keine binäre Entscheidung, da sich die Opazität der Pixel von P&sub1; proportional zu der Stärke des geworfenen Schattens verhält. Bei Anwendung der folgenden Mischfunktion zum Zeichnen von p&sub2; in den Teilbildpuffer wird der Schatten von p&sub1; erhalten:
- c = (1-αs)cd (2)
- wobei cd die Farbe des Hintergrunds, αs der α-Wert von p&sub2; und c die resultierende Farbe in dem Teilbildpuffer ist. Zur Vereinfachung der weiteren Formeln sei angenommen, dass Schatten farblos sind, so dass die Farbwerte von p&sub1; weggelassen werden können, da der Schatten nur von der Transparenz beeinflusst wird. Dies ist jedoch keine echte Einschränkung, da die Mischfunktion auch auf modellgefärbte Schatten ausgedehnt werden könnte.
- Die Mischfunktion (2) arbeitet korrekt, wenn der Teilbildpuffer anfangs leer ist, die Sache wird jedoch etwas komplizierter, wenn ein Schatten auf ein Bild geworfen werden soll, das bereits in den Teilbildpuffer gezeichnet ist. Es müssen dann die α-Werte des bereits gezeichneten Bildes auf zwei Arten berücksichtigt werden: einerseits muss αd unverändert bleiben, da ein auf ein Objekt fallender Schatten die Transparenz des Objekts nicht beeinflussen sollte. Andererseits muss αd in die Mischgleichung integriert werden, da auf lichtundurchlässigen Objekten stärkere Schatten erscheinen als auf halbtransparenten Objekten. Insbesondere im Falle von αd = 0 sollte gar kein Schatten gezeichnet werden. So erhält man die modifizierten Mischgleichungen:
- c = (1-αdαs)cd
- α = αd (3)
- Es sei daran erinnert, dass das Produkt αdαs für starke Schatten auf lichtundurchlässigen Objekten groß ist, so dass die Umkehrung zum Abschwächen der Farbkomponenten des zu beschattenden Bildes angewandt werden muss.
- Da jetzt sämtliche Hilfsmittel vorliegen, mit denen dafür gesorgt werden kann, dass eine Volumenebene einen Schatten auf die nächste wirft, soll dieses Verfahren auf ein komplettes Volumen angewandt werden.
- Wenn ein komplettes Volumen beschattet werden soll, muss sichergestellt werden, dass auf transparente Teile einer Ebene geworfene Schatten auf den nicht transparenten Teilen der als nächstes darunter liegenden Schicht erscheinen. Mit anderen Worten muss der Schatten von Ebene zu Ebene durch das gesamte Volumen weiter geworfen werden, wie in Fig. 4 gezeigt. Es können mehrere Schritte des Weiterwerfens erforderlich sein, wenn mehr als eine Ebene transparent ist. Diese Eigenschaft der Nichtlokalisierung ist der Grund dafür, dass Schatten mit herkömmlichen oberflächenorientierten Computer- Grafiken zu schwer zu modellieren sind. Vorteilhafterweise ist dies leicht in unser Verfahren integrierbar.
- Sehen wir uns jetzt einmal das in Fig. 1 gezeigte Verfahren genauer an:
- - In Schritt 1 wird einfach eine einzelne Ebene in den Teilbildpuffer gezeichnet.
- - In Schritt 2 wird eine Ebene dem akkumulierten Schatten hinzugefügt. Es ist bereits bekannt, dass hier die Versetzung ds gemäß Gleichung (1) berücksichtigt werden muss, es ist jedoch noch nicht bekannt, welche Mischfunktion angewandt werden muss, um das korrekte Ergebnis zu erhalten.
- - In Schritt 3 wird der akkumulierte Schatten auf das eigentliche Bild angelegt. Dies erfolgt durch Anwendung der Mischfunktion (3), da ein Schatten auf eine Ebene geworfen werden soll, die unterschiedliche Transparenzen aufweist.
- - In Schritt 4 wird das Ergebnis aus dem Teilbildpuffer ausgelesen.
- Somit muss jetzt nur noch eine geeignete Mischfunktion für Schritt 2 zum Ackumulieren der Schatten gefunden werden. Die Mischfunktion für diesen Schritt sollte keine Farbberechnungen umfassen, dafür farblose Schatten nur α-Werte benötigt werden. Es muss entschieden werden, welchen Beitrag der α-Wert einer neuen Volumenebene zu dem bereits akkumulierten Schatten in Puffer 2 leistet. In Gleichung (2) wird die Stärke des Schattens durch die Transparenz des Schattenbildes dahingehend definiert, dass der Schatten dort heller ist, wo die Original-Volumenebene transparenter ist. Das heißt, dass sich die Stärke des Schattens proportional zu dem α-Wert des Originalbildes verhält.
- Es sei somit die Situation angenommen, in der der akkumulierte Schatten sämtlicher vorderer i-1 Ebenen in den Teilbildpuffer gezeichnet ist. Jedes Mal, wenn ein neues Bild-Polygon dem Schattenbild hinzugefügt wird, muss die akkumulierte Opazität entsprechend dem α-Wert des Bildes erhöht werden. Folgende Mischfunktion beschreibt diesen Effekt sehr gut:
- α = 1'(1-/αs)(1-αd) (4)
- Es sei darauf hingewiesen, dass der Teilbildpuffer anfangs α = 0,0 aufweisen muss, damit korrekte Ergebnisse erzielt werden.
- Durch Anwendung der Mischfunktion (4) für Schritt 2 wird sichergestellt, dass die Schatten beim Kreuzen des Volumens korrekt kombiniert werden, während Gleichung (3) Schatten auf lichtundurchlässigen Voxeln stärker erscheinen lässt als auf transparenten Voxeln. Im nächsten Abschnitt wird gezeigt, wie insbesondere die beiden Mischfunktionen implementiert werden können.
- Unser Verfahren wurde mit der OpenGL-Grafik API [15] implementiert. Es nutzt den Vorteil der schnellen Teilbildpuffer-Operationen, wie Zeichnen, Kopieren und Lesen der Pixel, aus. Es wurde die Erweiterung der Abbildung der dreidimensionalen Textur auf OpenGL API zum Visualisieren des Schattenvolumens genutzt, obwohl das Verfahren auch auf Plattformen implementierbar ist; auf denen nur zweidimensionale Texturen zur Verfügung stehen. Dies erfolgt dadurch, dass der Prozess des Beschattens des Volumens von dem Visualisierungsprozess unabhängig ist. Das Verfahren wurde auf einem Silicon Graphics Octane-Arbeitsplatz implementiert, der auch für Vergleichstests verwendet wurde.
- Das Hauptproblem, das bei der Implementierung zunächst gelöst werden musste, bestand darin, dass OpenGL keine direkten Äquivalente zu den Mischfunktionen (3) und (4) bietet. Es musste überlegt werden, wie das Verfahren zu modifizieren sei, damit OpenGL-Mischfunktionen anwendbar wären.
- OpenGL API bietet zahllose Wege zum Kombinieren der Pixel eines Bildes mit denjenigen, die sich bereits im Teilbildpuffer befinden. Dies kann entweder durch Anwendung von Mischfunktionen oder Logikoperationen erfolgen. Leider können unsere ziemlich ausgefeilten Gleichungen (3) und (4) nicht direkt in OpenGL API-Anforderungen umgesetzt werden.
- Daher sollten die beiden Gleichungen noch einmal näher betrachtet werden. Wenn die α-Werte in (4) invertiert werden, erhält man die folgende einfachere Mischfunktion für die Akkumulierung der Schatten:
- α = (1-αs)αd (5)
- Diese Mischfunktion findet ihr OpenGL API-Gegenstück in der glBlendFunc (GL_ZERO, GL_ONE_MINUS_SCRC_ALPHA)-Anforderung, so dass das Akkumulieren der Schatten abgeschlossen ist. Leider sorgt diese Funktion jetzt dafür, dass starke Schatten niedrige α-Werte aufweisen, was natürlich keine sehr intuitive Definition ist, da man damit rechnen würde, dass starke Schatten eine hohe Opazität besitzen. Wenn man jedoch daran denkt, dass die Farben des Bildes in dem Teilbildpuffer reduziert werden sollen, kann man sich vorstellen, dass es einfacher ist, die α-Werte des Schattens zu invertieren. Dies würde zu der folgenden einfachen Multiplikation zum Abdunkeln der Farbwerte von p&sub1; entsprechend den α-Werten des Schattens si führen:
- c = αscd
- α = αd (6)
- Diese Funktion kann durch Anwendung der glBlendFung(GL_ZERO, GL_SCRC_ ALPHA)-Anforderung implementiert werden, wenn zunächst der α-Kanal des Teilbildpuffers durch Setzen einer Farbmaske mit glColorMask(GL_TRUE, GL_ TRUE, GL_TRUE, GL_FALSE) blockiert wird.
- Wenn allein die Funktion (6) angewendet wird, würden Schatten auf Strukturen mit unterschiedlichen Transparenzen gleich stark auftreten. Zur Vermeidung dieses Effekts muss eine zusätzliche Mischfunktion eingeführt werden, mit der das Ist-Bild-Polygon pi in den Schatten si gemischt wird und der α- Wert von si um sein eigenes α reduziert wird:
- α = αsad (7)
- Wie bereits bekannt, entspricht diese Gleichung der glBlendFung(GL_ZERO, GL_SCRC_ALPHA)-Anforderung. Somit mussten für die Implementierung die beiden Mischfunktionen (3) und (4) in drei einfachere Funktionen (5), (6) und (7) aufgeteilt werden. Zur Anwendung dieser Funktionen wurde ein zusätzliches Pixel in dem Teilbildpuffer zugewiesen und unser Verfahren leicht modifiziert, wie in Fig. 5 dargestellt:
- für sämtliche Ebenen p&sub1; bis pn:
- 1. Zeichnen der Bildebene pi in Puffer 1
- 2. Erzeugen von si* durch Mischen von pi in si durch Anwendung von (7) in Puffer 3
- 3. Erzeugen von pj* durch Mischen von sj* in pj durch Anwendung von (6) in Puffer 1
- 4. Erzeugen von Schatten si+1 durch Mischen von pi in Schatten si durch Anwendung von (5) in Puffer 2
- 5. Erstellen einer Kopie des neuen Schattens si+1 in Puffer 3
- 6. Auslesen der beschatteten Ebene pi* aus Puffer 1
- Es sei darauf hingewiesen, dass bei dem neuen Verfahren Schritt S hinzugefügt und Schritt 2 des Originalverfahrens in Schritte 2 und 3 aufgeteilt worden ist. In Schritt 2 wird die Ist-Bildebene pi in eine Kopie des akkumulierten Schattens si in Puffer 3 gemischt, um den α-Wert des Schattens dort zu reduzieren, wo pi lichtundurchlässig ist. Es muss eine Kopie von si im Puffer 2 gehalten werden, da das Schattenbild für unser Verfahren verloren ist, sobald pi in dieses hineingemischt ist.
- Doch selbst bei diesem erweiterten Verfahren müssen nur noch eine Volumenebene in den Teilbildpuffer gezeichnet, fünf Kopieroperationen durchgeführt und das erzeugte Bild wieder aus dem Teilbildpuffer ausgelesen werden, um eine beschattete Volumenebene zu erzeugen. Es wird jedoch immer noch davon ausgegangen, dass das Verfahren schneller ist, da das Kopieren von Pixelbereichen innerhalb des Teilbildpuffers mit der heutigen Grafik-Hardware sehr schnell durchführbar ist.
- Einer der Vorteile unseres Verfahrens besteht darin, dass es möglich ist, die Kamera absolut ohne jeden Leistungsverlust gegenüber dem unbeschatteten Volumen zu bewegen, wenn die Lichtposition relativ zu dem Volumen unbeweglich ist. Das ist darauf zurückzuführen, dass der Schatten, der innerhalb des Volumens geworfen wird, nur von der Lichtposition abhängt und von der Kamera unabhängig ist, wie aus Fig. 4 ersichtlich. Obwohl dies ein positives Merkmal ist, werden die besten Rauminformationen erhalten, wenn sich Kamera und Licht synchron bewegen, so dass der Betrachter den Eindruck eines sich bewegenden Objekts bekommt. Das alleinige Bewegen der Lichtquelle bei feststehender Kameraposition ist auch sehr hilfreich beim Verständnis der dreidimensionalen Merkmale des Datensatzes, da dies dem Abtasten des Datensatzes durch Beleuchten des Volumens mit einer Taschenlampe ähnlich ist. Jede Bewegung des Lichts macht jedoch eine Neuberechnung der Schatten erforderlich. Wenn jedoch die Grafik-Hardware hohe Pixelübertragungsfrequenzen vom Host-Speicher zum Teilbildpuffer bietet, kann dies bei interaktiven Teilbildwechselfrequenzen erfolgen, wie die Ergebnisse der Vergleichstests zeigen.
- Ein Thema, das bislang noch nicht angesprochen worden ist, ist die Beschränkung der Lichtposition auf einen Winkel φ von < 45º zu der Normalen der Volumenebenen, wie in Gleichung (1) aufgeführt. Diese Beschränkung kann mit unserem Verfahren leicht aufgehoben werden. Wenn wir an die sechs Flächen des Volumenkubus und ihre Normalen N&sub1;, ..., N&sub6; denken, müssen wir die Ni mit dem kleinsten Skalarprodukt L·N1 finden. Diese Normale bestimmt, in welcher Richtung das Volumen zu kreuzen ist und somit, in welcher Ausrichtung die Ebenen aus dem Volumen herausgenommen werden müssen. Da diese Ebenen immer parallel zu den Volumenachsen verlaufen, gibt es verschiedene Wege zum effizienten Zeichnen dieser Ebenen in den Teilbildpuffer. Dies ist Thema des nächsten Abschnitts.
- Zum Zeichnen der einzelnen Volumenebenen in den Teilbildpuffer wurde die Erweiterung der Abbildung der dreidimensionalen Textur auf OpenGL API für unsere Implementierung angewandt. Diese Erweiterung bietet einen einfachen Weg zum Erzeugen von beliebigen Ebenen aus dem Volumen und zur Wiedergabe dieser Ebenen in dem Teilbildpuffer. Schritt 1 unseres Verfahrens ist somit sehr schnell durchführbar, da das Volumen als dreidimensionale Textur im Textur-Cache-Speicher bleiben kann und nicht vom Host-Speicher zum Teilbildpuffer übertragen werden muss. Es macht ferner keinen Unterschied, in welcher Richtung das Volumen gemäß dem Lichtvektor zu durchlaufen ist, da die Position der Ebenen in dem Volumen durch Zuweisen der entsprechenden Texturkoordinaten frei wählbar ist.
- Aufgrund der Tatsache, dass die Ebenen immer parallel zu den Volumenachsen aus dem Volumen genommen werden, kann das Verfahren ferner effizient auf Plattformen implementiert werden, auf denen keine 3D-Texturen zur Verfügung stehen. Dies erfolgt mittels der glDrawPixel-Anforderung, durch die ein Pixel-Array aus dem Host-Speicher in den Teilbildpuffer übertragen wird. Es muss nur dafür gesorgt werden, dass drei umgekehrte Volumenkopien im Host-Speicher verbleiben, da die Ebenen nur sequentiell mittels der glDraw Pixel-Anforderung aus dem Host-Speicher genommen werden können. Somit gibt es für jeden Lichtsektor und seinen entgegengesetzte Sektor eine Volumenkopie, durch die dieser Prozess zu einer schnellen Alternative zu dem Verfahren mit der dreidimensionalen Textur wird.
- Bei der auf der Textur basierenden Volumenwiedergabe besteht ein übliches Verfahren darin, die Volumendaten über die Pixelabbildung einzufärben, wenn diese vom Host-Speicher zum Textur-Cache-Speicher übertragen werden. Das bedeutet, dass die 3D-Textur jedes Mal dann neu geladen werden muss, wenn sich die Lookup-Tabelle für das Volumen verändert hat. Wenn die glDraw Pixel-Anforderung für unser Verfahren angewandt wird, wird die Pixel-Abbildung angewandt, wenn die Daten vom Host-Speicher in den Teilbildpuffer übertragen werden. Wenn die Lookup-Tabelle jetzt verändert wird, muss keine Textur neu geladen werden, es müssen nur die Pixel wie üblich gezeichnet werden. Dies sollte das Schatten-Verfahren für Anwendungen, bei denen zahlreiche Manipulationen der Lookup-Tabelle erfolgen, beschleunigen.
- Da die Merkmale der Volumendaten sehr stark variieren können, und zwar je nachdem, wie die Daten erfasst werden, kann eine Einstellung der Stärke der Schatten erforderlich sein.
- Während es in einigen Fällen wünschenswert sein kann, einen starken Schatten zu haben, um ein ästhetisch ansprechendes Bild zu erhalten, können starke Schatten bei Volumen mit hoher Transparenz ziemlich störend sein. Vorteilhafterweise ist die Schattenstärke durch Anwendung der Pixel-Abbildung in jedem beliebigen Schritt unseres Verfahrens regelbar, da das Zeichnen, Kopieren und Lesen der Pixel über die Pixelabbildung erfolgen kann, Dieses Merkmal musste nicht häufig angewandt werden, da unsere mit dem beschriebenen Verfahren erzielten Ergebnisse zufriedenstellend waren, sollte eine solche Anwendung jedoch erforderlich sein, gibt es zahlreiche Wege der Feinabstimmung.
- Die mit unserem Verfahren erzeugten Bilder haben physisch akkurate Schatten, da halbtransparente Voxel einen schwachen Schatten werfen und starke Schatten auf halbtransparenten Voxeln schwächer erscheinen als auf lichtundurchlässigen Voxeln, wie aus Fig. 7 ersichtlich. Auf vollständig lichtundurchlässigen geometrischen Objekten scheint der Schatten sogar etwas zu scharf umrissen, jedoch geometrisch korrekt. Da Volumen-Datensätze jedoch normalerweise sanfte Übergänge von lichtundurchlässigen zu transparenteren Voxeln aufweisen, beeinträchtigt dies nicht das realistische Erscheinungsbild, das der Volumenwiedergabe in medizinischen Anwendungen verliehen wird, wie in Fig. 8 dargestellt.
- Fig. 6 und 7 zeigen ferner, dass die beschatteten Volumen so aussehen, als wären sie diffus beleuchtet, obwohl keine Beleuchtungsberechnung durchgeführt worden ist. Dieser überraschende Effekt ist auf die Tatsache zurückzuführen, dass die Schatten der Kontur des Volumens folgen und somit einen zusätzlichen visuellen Faktor bezüglich seiner Form erzeugen. Zusammen mit der konsistenten Abdunkelung derjenigen Seiten, die der Lichtrichtung abgewandt sind, entsteht der visuelle Eindruck eines geformten beleuchteten Volumens. Dieser positive Effekt ist insbesondere interessant, da, wie von Gelder and Kim [14] hervorheben, eine Beleuchtung (wie auch Schatten) hilft, die Raumstruktur des Volumens zu verstehen, was wünschenswert ist und hier mit den Schatten realisiert wird. Selbstverständlich handelt es sich hierbei nicht um eine "echte" Beleuchtung, es scheint nur so, als ob eine solche vorhanden wäre, dies erhöht jedoch trotzdem die Qualität der Visualisierung.
- Das Verfahren wurde auf einem Silicon Graphics Octane MXI-Arbeitsplatz mit einem 4 MB-Textur-Speicher entwickelt. Es wurde ein Vergleich der Wiedegabeergebnisse mit beschatteten und unbeschatteten Volumen, die in einem 600 · 600 Pixel großen Fenster wiedergegeben wurden, durchgeführt. Die Volumengröße wurde auf 128 · 128 · 64 Voxel begrenzt, um sicherzustellen, dass die 3D-Textur in den Octane Textur-Speicher passt, ohne dass Schwierigkeiten mit der ziegelförmigen Textur auftreten. Tabelle 1: Vergleichstestergebnisse für SGI Octane MXI
- Wie ersichtlich, hängt die Leistungsreduzierung für das Beschatten der Volumen von der Volumengröße und nicht von der Anzahl von Texturebenen ab, die für die Visualisierung des Datensatzes verwendet wird. Dies ist nicht überraschend, da das Beschatten des Volumens ein Vorverarbeitungsschritt für die auf der Textur basierende Volumenwiedergabe ist. Bei praktischen Anwendungen hat sich herausgestellt, dass die Verwendung von ungefähr 256 Texturebenen den besten Kompromiss zwischen Bildqualität und Leistung bei der Wiedergabe des unbeschatteten Volumens bietet. Vorteilhafterweise wird bei unserem Verfahren in diesem Fall die Leistung nur um ungefähr 30% reduziert. Selbst bei größeren als 128 · 128 · 64 Voxel großen Volumen funktioniert das Verfahren verglichen mit dem unbeschatteten Fall gut, wenn auch die Anzahl der Texturebenen erhöht wird. Das Verfahren führt zu einer schlechten Leistung, wenn nur eine kleine Anzahl von Texturebenen in einem großen Volumen verwendet wird. Wenn jedoch ein Bild mit nur einigen wenigen Texturebenen wiedergegeben werden soll, ist man sicherlich nicht an Details interessiert und wird somit sowieso auf ein beschattetes Volumen verzichten.
- Zusammenfassend kann gesagt werden, dass ein Verfahren entwickelt und implementiert worden ist, dass Schatten in einer Vorrichtung für auf der Textur basierende Volumenwiedergabe verwendet, um das realistische Erscheinungsbild der erzeugten Bilder zu verbessern. Durch Verwendung des inkrementalen Merkmals des Schattens war es möglich, dies ohne Reduzierung der Leistung um mehr als 50% zu realisieren. Das Wiedergeben und Mischen von Daten und Schatten kann auf modernen Arbeitsplätzen in Echtzeit durchgeführt werden. Dies wird dadurch realisiert, dass die meisten Operationen in dem Teilbildpuffer der Grafik-Hardware stattfinden, wobei nur wenige mathematische Berechnungen im Prozessorspeicher durchgeführt werden müssen. Das Verfahren kann mit dem standardmäßigen OpenGL 1.1 API durchgeführt werden, obwohl dreidimensionale Texturen, die Teil des kommenden OpenGL 1.2 Standards [16] sind, den Visualisierungsprozess vereinfachen.
- [1] U. Behrens, M. Bublat, M. Fieberg, G. Grunst, M. Jahnke, K. Kansy, R. Ratering, H.-J. Schwarzmaier, and R Wisskirchen. Enabling Systems for neurosurgery. In Proc. Computer Assisted Radiology CAR '98 (Tokio, Japan, June 24-27), 1998.
- [2] Brian Cabral, Nancy Cam, and Jim Foran. Accelerated volume rendering and tomographic reconstruction using texture mapping hardware. In 1994 Symposium on Volume Visualization, pages 91-98. ACM SIGGRAPH, October 1994.
- [3] Cindy M. Goral, Kenneth E. Torrance, Donald R Greenberg, and Bennett Battaile. Modelling the interaction of light between diffuse surfaces. In Computer Graphics (SIGGRAPH '84 Proceedings), volume 18, pages 212-22, July 1984.
- [4] O. Kühne, C. Poliwoda, C. Reinhart, T. Günther, J. Hesser, and R. Männer. Interactive segmentation and visualization of volume data sets. in Proc. Visualization '97, 1997.
- [5] Philippe Lacroute and Marc Levoy. Fast volume rendering using a shearwarp factorization of the viewing transformation. In Proceedings of SIGGRAPH '94 (Orlando, Florida, July 24-29. 1994), Computer Graphics Proceedings. Annual Conference Series, pages 451-458. ACM SIGGRAPH, ACM Press, July 1994.
- [6] David Laur and Pat Hanrahan. Hierarchical splatting: A progressive refinement method for volume rendering. In Computer Graphics (SICGRAPH '91 Proceedings), volume 25, pages 285-288, July 1991.
- [7] Marc Levoy. Efficient ray tracing of volume data. ACM Transactions on Graphics, 9(3): 245-261, July 1990.
- [8] Tom McReynolds. Programming with OpenGL: Advanced Techniques. In SIGGRAPH '97 Course Notes, Course No. 11. 1997.
- [9] Bui-T. Phong. Illumination for Computer generated pictures. Communications of the ACM, 18(6): 311-317, June 1975.
- [10] Thomas Porter and Tom Duff. Compositing digital images. In Computer Graphics (SIGGRAPH '84 Proceedings), volume 18, pages 253-259, 3uly 1984.
- [11] William T. Reeves, David H. Salesin, and Robert L. Cook. Rendering antialiased shadows with depth maps. In Computer Graphics (SIGGRAPH '87 Proceedings), volume 21, pages 283-291, July 1987.
- [12] Holly E. Rushmeier and Kenneth E. Torrance. The zonal method for calculating light intensities in thc presence of a participating medium. In Computer Graphics (SIGGRAPH '87 Proceedings), volume 21, pages 293-302, July 1987.
- [13] Lisa Sobierajski and Arie Kaufman. Volumetric ray tracing, In 1994 Symposium on Volume Visualization, pages 11-18. ACM SIGGRAPH, October 1994.
- [14] Allen Van Gelder and Kwansik Kim. Direct volume rendering with shading via three-dimensional textures. In 1996 Volume Visualization Symposium, pages 23-30. IEEE, October 1996.
- [15] Mason Woo, Jackie Neider, and Tom Davis. OpenGL Programming Guide: the official guide to learning OpenGL. Addison-Wesley, 2nd edition, 1997.
- [16] OpenGL Version 1.2. http: //www.opengl.org/Developers/Version1.2/html/opengl12.html.
- [17] "METHOD TO GENERATE THE SHADOW OF ARBITRARYSHAPED THREE-DIMENSIONAL OBJECTS", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 33, no. 2, 1 July 1990, pages 146-148, XP000123567.
- [18] SEGAL E. A.: "FAST SHADOWS AND LIGHTING EFFECTS USING TEXTURE MAPPING", COMPUTER GRAPHICS, vol. 26, no. 2, July 1992, pages 249-252, XP002096276, USA.
Claims (2)
1. Verfahren zum Verarbeiten volumetrischer Bilddaten eines
halbtransparenten Objekts, das durch Licht von einer Lichtquelle, welches in einer
von einem Lichtvektor definierten Richtung auf das Objekt einfällt,
einen Schatten erzeugt, wobei jedes der volumetrischen Bilddaten einen
Transparentwert und einen Helligkeitswert repräsentiert und das
Verfahren folgende Schritte umfasst:
(a) Teilen der volumetrischen Bilddaten in mehrere Bildebenendaten,
die einzelne sequentiell hintereinander angeordnete Schichten
des Objekts repräsentieren,
(b) Erzeugen eines Schattenwertes für jedes der
Bildebenendaten
derjenigen Objektschicht, die der Lichtquelle am nächsten ist, auf
der Basis des Lichtvektors und der Transparentwerte der
Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am
nächsten ist, und Speichern dieser Schattenwerte,
(c) Überlagern der in Schritt (b) gespeicherten Schattenwerte und
der Helligkeitswerte der Bildebenendaten derjenigen
Objektschicht, die der Lichtquelle am zweitnächsten ist, und zwar
gemäß dem Lichtvektor und der Distanz zwischen diesen beiden
benachbarten Objektschichten,
(d) Erzeugen von Schattenwerten für jedes der Bildebenendaten
derjenigen Objektschicht, die der Lichtquelle am zweitnächsten ist,
auf der Basis des Lichtvektors und der Transparentwerte der
Bildebenendaten derjenigen Objektschicht, die der Lichtquelle am
zweitnächsten ist, und Addieren dieser Werte zu den
gespeicherten Schattenwerten,
(e) Überlagern der in Schritt (d) gespeicherten Schattenwerte und
der Helligkeitswerte der Bildebenendaten derjenigen
Objektschicht, die der Lichtquelle am drittnächsten ist, und zwar gemäß
dem Lichtvektor und der Distanz zwischen diesen beiden
benachbarten Objektschichten,
(f) Durchführen von Schritten (d) und (e) für jede Objektschicht, die
in der von der Lichtquelle wegführenden Richtung die nächste ist,
und
(g) Volumenwiedergabe der Helligkeitswerte der Bildebenendaten
derjenigen Objektschicht, die der Lichtquelle am nächsten ist und
der überlagerten Schatten- und Helligkeitswerte der
Bildebenendaten sämtlicher anderen Objektschichten zur Anzeige des
halbtransparenten Objekts mit dem von dem halbtransparenten
Objekt erzeugten Schatten.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der
Überlagerungsschritt (e) den Schritt des Mischens der Helligkeits- und
Schattenwerte gemäß einer Mischfunktion umfasst.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98119291 | 1998-10-13 | ||
PCT/EP1999/007666 WO2000022576A1 (en) | 1998-10-13 | 1999-10-12 | Method for processing volumetric image data of an object visualized by texture mapping for adding shadows |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69901572D1 DE69901572D1 (de) | 2002-06-27 |
DE69901572T2 true DE69901572T2 (de) | 2003-06-05 |
Family
ID=8232784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69901572T Expired - Fee Related DE69901572T2 (de) | 1998-10-13 | 1999-10-12 | Verfahren zur volumetrischen bilddatenverarbeitung eines durch texturabbildung visualisierten objektes |
Country Status (4)
Country | Link |
---|---|
US (1) | US6771263B1 (de) |
EP (1) | EP1121664B1 (de) |
DE (1) | DE69901572T2 (de) |
WO (1) | WO2000022576A1 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004005364A (ja) * | 2002-04-03 | 2004-01-08 | Fuji Photo Film Co Ltd | 類似画像検索システム |
GB2392072B (en) * | 2002-08-14 | 2005-10-19 | Autodesk Canada Inc | Generating Image Data |
ATE381747T1 (de) * | 2004-02-18 | 2008-01-15 | Harman Becker Automotive Sys | Alphamischung auf basis einer nachschlagtabelle |
TWI248764B (en) * | 2004-09-01 | 2006-02-01 | Realtek Semiconductor Corp | Method and apparatus for generating visual effect |
WO2006099490A1 (en) * | 2005-03-15 | 2006-09-21 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer program products for processing three-dimensional image data to render an image from a viewpoint within or beyond an occluding region of the image data |
US7532214B2 (en) * | 2005-05-25 | 2009-05-12 | Spectra Ab | Automated medical image visualization using volume rendering with local histograms |
NZ542843A (en) * | 2005-10-05 | 2008-08-29 | Pure Depth Ltd | Method of manipulating visibility of images on a volumetric display |
US8041129B2 (en) * | 2006-05-16 | 2011-10-18 | Sectra Ab | Image data set compression based on viewing parameters for storing medical image data from multidimensional data sets, related systems, methods and computer products |
US7830381B2 (en) * | 2006-12-21 | 2010-11-09 | Sectra Ab | Systems for visualizing images using explicit quality prioritization of a feature(s) in multidimensional image data sets, related methods and computer products |
WO2008115534A1 (en) * | 2007-03-20 | 2008-09-25 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media or flexible occlusion rendering |
JP2009018048A (ja) * | 2007-07-12 | 2009-01-29 | Fujifilm Corp | 医用画像表示装置、方法及びプログラム |
US7982734B2 (en) * | 2007-08-01 | 2011-07-19 | Adobe Systems Incorporated | Spatially-varying convolutions for rendering soft shadow effects |
US7970237B2 (en) * | 2007-08-01 | 2011-06-28 | Adobe Systems Incorporated | Spatially-varying convolutions for rendering glossy reflection effects |
GB2465791A (en) * | 2008-11-28 | 2010-06-02 | Sony Corp | Rendering shadows in augmented reality scenes |
US8698806B2 (en) * | 2009-11-09 | 2014-04-15 | Maxon Computer Gmbh | System and method for performing volume rendering using shadow calculation |
US8797461B2 (en) * | 2012-12-28 | 2014-08-05 | Behavioral Technologies LLC | Screen time control device and method |
US11321904B2 (en) | 2019-08-30 | 2022-05-03 | Maxon Computer Gmbh | Methods and systems for context passing between nodes in three-dimensional modeling |
US11714928B2 (en) | 2020-02-27 | 2023-08-01 | Maxon Computer Gmbh | Systems and methods for a self-adjusting node workspace |
US11373369B2 (en) | 2020-09-02 | 2022-06-28 | Maxon Computer Gmbh | Systems and methods for extraction of mesh geometry from straight skeleton for beveled shapes |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4750171A (en) * | 1986-07-11 | 1988-06-07 | Tadiran Electronics Industries Ltd. | Data switching system and method |
DE69126611T2 (de) | 1990-05-12 | 1997-11-20 | Thomson Training & Simulation Ltd., Crawley, West Sussex | Bilderzeugungsgerät |
JP3203160B2 (ja) * | 1995-08-09 | 2001-08-27 | 三菱電機株式会社 | ボリューム・レンダリング装置及び方法 |
US6115048A (en) * | 1997-01-21 | 2000-09-05 | General Electric Company | Fast method of creating 3D surfaces by `stretching cubes` |
US6014143A (en) * | 1997-05-30 | 2000-01-11 | Hewlett-Packard Company | Ray transform method for a fast perspective view volume rendering |
US6298148B1 (en) * | 1999-03-22 | 2001-10-02 | General Electric Company | Method of registering surfaces using curvature |
US6407737B1 (en) * | 1999-05-20 | 2002-06-18 | Terarecon, Inc. | Rendering a shear-warped partitioned volume data set |
US6483518B1 (en) * | 1999-08-06 | 2002-11-19 | Mitsubishi Electric Research Laboratories, Inc. | Representing a color gamut with a hierarchical distance field |
US6396492B1 (en) * | 1999-08-06 | 2002-05-28 | Mitsubishi Electric Research Laboratories, Inc | Detail-directed hierarchical distance fields |
US6603484B1 (en) * | 1999-08-06 | 2003-08-05 | Mitsubishi Electric Research Laboratories, Inc. | Sculpting objects using detail-directed hierarchical distance fields |
-
1999
- 1999-10-02 US US09/807,327 patent/US6771263B1/en not_active Expired - Fee Related
- 1999-10-12 WO PCT/EP1999/007666 patent/WO2000022576A1/en active IP Right Grant
- 1999-10-12 EP EP99950711A patent/EP1121664B1/de not_active Expired - Lifetime
- 1999-10-12 DE DE69901572T patent/DE69901572T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1121664B1 (de) | 2002-05-22 |
US6771263B1 (en) | 2004-08-03 |
WO2000022576A1 (en) | 2000-04-20 |
DE69901572D1 (de) | 2002-06-27 |
EP1121664A1 (de) | 2001-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69901572T2 (de) | Verfahren zur volumetrischen bilddatenverarbeitung eines durch texturabbildung visualisierten objektes | |
DE102006025030B4 (de) | Gradientenfreies Shading für Volume-Rendering unter Verwendung von Schatteninformationen | |
DE69919497T2 (de) | Verfahren und Gerät zur Volumendarstellung mit mehreren Tiefenpuffern | |
Behrens et al. | Adding shadows to a texture-based volume renderer | |
DE69127915T2 (de) | System und Verfahren von Prioritätsfarbabbildung | |
DE3855231T2 (de) | Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing | |
EP3178068B1 (de) | Verfahren, visualisierungsvorrichtung und computerprogrammprodukt zur visualisierung eines dreidimensionalen objekts | |
DE102007008767B3 (de) | Verfahren und Vorrichtung zur Darstellung von 3D Bilddatensätzen auf 2D Bildern | |
DE19709220B4 (de) | System und Verfahren für eine beschleunigte Verdeckungsauslese | |
DE69424074T2 (de) | Bilderzeugungsgerät und Verfahren zur Erzeugung eines Bildes | |
DE102009042328B4 (de) | Effiziente Bestimmung von Lichteffekten beim Volume Rendering | |
DE69610341T2 (de) | 3-D-Bildertexturierung und -schattierung | |
DE69632578T2 (de) | Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen | |
EP0984397B1 (de) | Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster | |
DE60120474T2 (de) | Rasterung von dreidimensionalen bildern | |
DE102004007835A1 (de) | Vorrichtung zur Darstellung von dynamischen komplexen Szenen | |
DE102016103854A1 (de) | Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene | |
DE102005035012A1 (de) | Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen | |
DE102012113011A1 (de) | Verfahren und System zum Anzeigen der Lichtrichtung für ein volumengerendertes Bild | |
DE19708679A1 (de) | Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens | |
DE102008050449A1 (de) | Clipping Geometrien beim Raycasting | |
DE10085297B4 (de) | Verfahren und Vorrichtung zur Erzeugung einer Bewegungsillusion | |
EP3188131B1 (de) | Verfahren und visualisierungsvorrichtung zur volumetrischen visualisierung eines dreidimensionalen objekts | |
DE102005010168B4 (de) | Visualisierung von aus einem Volumen gerenderten Daten mit Grenzkontur-Mehrschicht-Umwandlungsdaten | |
DE19581872B4 (de) | Dreidimensionales Graphikaufbereitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWAND |
|
8370 | Indication related to discontinuation of the patent is to be deleted | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |