-
QUERVERWEIS AUF VERWANDTE
ANMELDUNGEN
-
Die
vorliegende Anmeldung beansprucht den Vorzug der am 9. August 2004
eingereichten vorläufigen US-Anmeldung
Nr. 60/600,428, die durch Bezugnahme hier aufgenommen ist.
-
ALLGEMEINER STAND DER TECHNIK
-
Methoden
zum Wiedergeben von Sätzen
volumetrischer Daten sind in der Technik bekannt. Diese Methoden
sind ausführlich
beschrieben worden. Siehe beispielsweise Marc Levoy, A Hybrid Ray
Tracer for Rendering Polygon and Volume Data, IEEE Computer Graphics
and Applications, Seiten 33–40,
März 1990;
und Marc Levoy, Efficient Ray Tracing of Volume Data, ACM Transactions
an Graphics, 9(3): 245–261,
Juli 1990, die beide durch Bezugnahme hier aufgenommen sind.
-
Auch
die schnelle Wiedergabe von Sätzen
volumetrischer Daten unter Verwendung der Texturierungsfähigkeiten
von Graphikhardware ist ausführlich
beschrieben worden. Siehe beispielsweise B. Cabral, N. Cam und J.
Foran, "Accelerated
Volume Rendering and Tomographic Reconstruction Using Texture Mapping
Hardware", ACM Symposium
an Volume Visualization, 1994; C. Rezk-Salama, K. Engel, M. Bauer, G. Greiner,
T. Ertl, "Interactive
Volume Rendering an Standard PC Graphics Hardware Using Multi-Textures
and Multi-Stage Rasterization",
in Eurographics/SIGGRAPH Workshop an Graphics Hardware, 2000, Seiten
109–118,
147, Addison-Wesley
Publishing Company, Inc., 2000, was durch Bezugnahme hier aufgenommen
ist. Schattierungsmodelle für
volumetrische Daten werden auch in N. Max, "Optical Models for Direct Volume Rendering", IEEE Transactions
an Visualization and Computer Graphics 1995, Seiten 99–108, beschrieben,
was durch Bezugnahme hier aufgenommen ist.
-
Die
Schattierung ist ein wohlbekanntes Verfahren zum Verbessern der
Tiefenwahrnehmung und zum Hervorheben von in den Daten enthaltenen
Details, die in Echtzeit durchgeführt werden kann. Das Schattieren volumetrischer
Daten erfordert Gradienteninformationen für jedes Voxel. Gradienten können entweder
im voraus berechnet und zusammen mit den Volumendaten gespeichert
oder im laufenden Betrieb berechnet werden. Das Vorausberechnen
von Gradienten erhöht
die erforderliche Speichermenge signifikant, wodurch dieser Ansatz
für großvolumige
Datensätze
unpraktisch wird. Klinische Routinen erzeugen gegenwärtig Datensätze, die
ein halbes Gigabyte übersteigen,
und die erfaßte
Informationsmenge nimmt schnell zu. Neue Systeme sind in der Lage,
Datensätze
zu erzeugen, die eine Größe von über einem
Gigabyte aufweisen. Zudem werden Gradienten in der Regel auf entweder
8 oder 16 Bit quantisiert, um die erforderliche Speichermenge einzuschränken, was
die Qualität
der volumetrischen Wiedergaben reduziert. Obwohl das Berechnen von
Gradienten im laufenden Betrieb eine bessere Qualität liefert
und weder Vorverarbeitung verlangt noch irgendwelche signifikanten
zusätzlichen
Speicheranforderungen auferlegt, leidet sie andererseits unter einer
signifikant langsameren Leistung. Diese Leistungsreduzierung ist
auf die zusätzlichen
Berechnungen und Speicherzugriffe während der Wiedergabe zurückzuführen; beispielsweise
erfordert ein Vorwärtsdifferenzgradient
das Zugreifen auf drei benachbarte Voxel, während ein Zentrale-Differenz-Gradient
das Zugreifen auf sechs benachbarte Voxel erfordert.
-
Aus
der
US 2002/010988
A1 ist es bekannt, 3D-Objekte mittels des Hilfsmittels „Vertex" auf einem Bildschirm darzustellen
und damit vom Objektraum in den Bildraum zu überführen.
-
Aus
der
US 5,499,322 ist
es bekannt, bei der 3D-Bildverarbeitung
unter zu Hilfenahme von Vertices sowohl erste partielle Ableitungen
nach den kartesischen Koordinaten als auch aus diesen partiellen
Ableitungen den Gradienten zu bilden.
-
Eine
weitere Darstellung von Vorgehensweisen bei der 3D-Computergraphik
mit Vertices und Gradienten ist dem Technical Report No. DCSE/TR-2002-08 „Gradient
vector estimation and vertex normal computation" von T. Jirka und V. Skala, University
of West Bohemia in Pilsen, October 2002 zu entnehmen.
-
Aus
diesem Stand der Technik ist ebenfalls bekannt, wie Transformationen
zwischen einem 3-dimensionalen Raum und einem 2-dimensionalen Bild-/Schirmraum
vorzunehmen sind. Derartige Betrachtungstransformationen sind auch
aus dem Buch „Computergrafik" von W. D. Fellner,
ISBN 3-411-15122 bekannt.
-
Aufgabe
der Erfindung ist, ein Verfahren und ein System bereitzustellen,
die eine Gradientenabschätzung
im laufenden Betrieb für
die schattierte Wiedergabe volumetrischer Daten schneller durchführen.
-
Diese
Aufgabe wird gelöst
durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 und
ein System mit den Merkmalen des Patentanspruchs 10.
-
KURZE DARSTELLUNG DER ERFINDUNG
-
Die
vorliegende Erfindung liefert ein schnelles Verfahren zum Verbessern
der Bildqualität
bei der texturbasierten Volumenwiedergabe durch Schattieren großer Volumen
ohne Vorberechnen von Gradienteninformationen. Gradienten werden
im Schirmraum und nicht im Objektraum berechnet, um die allgemeinen
Kosten des Erfassens von benachbarten Daten durch Berechnen von
jeweils mehreren Pixeln zu reduzieren. Die vorliegende Erfindung
eignet sich gut für
Modem-GPUs (Graphikverarbeitungseinheiten), da sie jeweils mehrere Pixel
verarbeiten (z. B. ein 2×2
Pixel "Quad").
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Schattierungsverfahren
zum Wiedergeben volumetrischer Daten bereitgestellt. Das Verfahren
beinhaltet die folgenden Schritte: Bestimmen einer partiellen Ableitung
bezüglich
der x-Komponente einer Schirmkoordinate eines Pixels, Bestimmen
einer partiellen Ableitung bezüglich
einer y-Komponente der Schirmkoordinate des Pixels und Bestimmen
eines Gradienten aus den partiellen Ableitungen im Schirmraum. Zum
Erzeugen eines 3D-Vektors wird eine dritte Komponente benötigt. Diese
Komponente kann beispielsweise eine willkürliche Konstante sein, eine
entlang der Strahlrichtung im Objektraum berechnete Vorwärtsdifferenz
oder eine entlang der Strahlrichtung im Objektraum berechnete zentrale
Differenz. Der rechnerisch effizienteste Ansatz besteht darin, eine
Konstante zu verwenden (deren Wert proportional zur Helligkeit ist),
wohingegen man qualitativ hochwertigere Ergebnisse aus zentralen oder
Vorwärtsdifferenzen
im Objektraum erhalten kann.
-
Schließlich wurde
bestimmt, daß die
dritte Komponente als ein Wert berechnet werden kann, der proportional
zur Helligkeit ist und der entsprechend dem Zoomwert skaliert wird,
der zum Betrachten der volumetrischen Daten verwendet wird.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung beinhaltet das Verfahren
den Schritt des Verwendens des Gradienten zum Bestimmen einer Schattierungscharakteristik
des Pixels auf der Basis des Gradienten.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung beinhaltet das Verfahren
den Schritt des Bestimmens der partiellen Ableitungen in einer Graphikverarbeitungseinheit.
Gemäß einer
bevorzugten Ausführungsform
werden die partiellen Ableitungen unter Verwendung einer Fragmentfunktion
ddx in der Graphikverarbeitungseinheit und einer Fragmentfunktion
ddy in der Graphikverarbeitungseinheit berechnet.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung läßt sich das Verfahren zur Wiedergabe volumetrischer
Daten auf eine Vielfalt von Bildgebungssystemen anwenden. Gemäß diesen
Aspekten enthalten Systeme der vorliegenden Erfindung eine Bildgebungseinrichtung,
einen Prozessor und ein Display.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung beinhaltet ein Verfahren
zum Wiedergeben volumetrischer Daten die folgenden Schritte: Erhalten
einer Probe von Daten aus einem Volumen; Klassifizieren der Probe;
Berechnen eines Schirmraumgradienten; Normalisieren des Gradienten;
Berechnen diffuser und spiegelnder Komponenten und Berechnen von
Ausgabefarben. Die aus diesen Schritten erhaltenen Ergebnisse werden
schließlich
angezeigt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 und 2 stellen
fundamentale Datenstrukturen dar, die in einem Aspekt der vorliegenden
Erfindung verwendet werden.
-
3 veranschaulicht
eine Volumenwiedergabe unter Verwendung von 3D-Texturen gemäß einem Aspekt
der vorliegenden Erfindung.
-
4 veranschaulicht
die Bestimmung von partiellen Ableitungen oder Differenzen gemäß einem
Aspekt der vorliegenden Erfindung.
-
5 ist
ein Flußdiagramm
eines verallgemeinerten Fragmentprogramms gemäß einem Aspekt der vorliegenden
Erfindung, und 6 ist ein Flußdiagramm
des Gradientenbestimmungsprozesses.
-
7 veranschaulicht
ein Bildgebungssystem gemäß einem
Aspekt der vorliegenden Erfindung.
-
BESCHREIBUNG EINER BEVORZUGTEN
AUSFÜHRUNGSFORM
-
Datenerfassung.
-
Bei
den durch die vorliegende Erfindung verarbeiteten Daten handelt
es sich um ein dreidimensionales Array von Daten. Unter Bezugnahme
auf 1 bestehen die Daten aus einer Sequenz benachbarter "Bilder", wobei jedes Bild
ein zweidimensionales Bildarray von Datenpunkten ist. Jeder Gitterwert
eines zweidimensionalen Bildarrays wird als ein Bildelement oder "Pixel" bezeichnet. Eine
Reihe derartiger Bilder kann in einer sequentiellen Reihenfolge
angeordnet werden, und jedes zweidimensionale Bild wird als ein
SLICE bezeichnet. Somit wird ein Volumen aus mehreren Slices ausgebildet.
-
Wenn
Vollkörperscans
mit einer Magnetbildgebungsmaschine ausgeführt werden, ist es üblich, etwa 3000
Slices an Daten zu erzeugen. Diese Slices können etwa 0,4 mm von einander
getrennt sein.
-
Unter
Bezugnahme auf 2 wird jeder Gitterwert eines
dreidimensionalen Volumenarrays als ein Volumenelement oder "Voxel" bezeichnet. Ein
Voxel weist eine Voxelnachbarschaft auf. Die Voxelnachbarschaft enthält die Eckpunkte
eines Würfels,
die bezeichnet sind V1, V2, V3, V4, V5, V6, V7 und V8.
-
Die
Erfassung dieser Art von Daten ist in der Technik wohlbekannt und
wird von Systemen wie etwa Kernspintomographiesystemen (MR) und
Computertomographiescansystemen (CT), Positronenemissionstomographie
(PET) und Ultraschallscannern durchgeführt. Solche Bildgebungssysteme 70 sind
in 5 gezeigt. Jedes dieser Systeme erzeugt mit einem
Voxel assoziierte Daten. Beispielsweise erzeugt ein Kernspintomographiesystem
einen skalaren Wert für
jedes Voxel, der den Wasser inhalt anzeigt. Ein Computertomographiesystem
erzeugt einen skalaren Wert für
jedes Voxel, der anzeigt, wie viele Röntgenstrahlen absorbiert wurden. Ein
Ultraschallsystem erzeugt einen skalaren Wert für jedes Voxel, der anzeigt,
wieviel Schall absorbiert wurde.
-
Bildsynthese aus volumetrischen
Daten
-
Verfahren
zum Erzeugen eines zweidimensionalen Bilds aus volumentrischen Daten
können
grob in indirekte und direkte Volumenwiedergabetechniken klassifiziert
werden. Indirekte Verfahren erzeugen eine Zwischendarstellung der
Volumendaten und geben sie wieder, während, direkte Verfahren die
Voxeldaten anzeigen durch Auswerten eines optischen Modells, das
beschreibt, wie das Volumen Licht emittiert, reflektiert, streut,
absorbiert oder verdeckt. Siehe beispielsweise N. Max, "Optical Models for
Direct Volume Rendering", IEEE
Transactions an Visualization and Computer Graphics 1995, Seiten
99–108.
-
Die
Voxelwerte werden auf physikalische Größen abgebildet, die die Lichtinteraktion
an den jeweiligen Punkten im 3D-Raum beschreiben. Während der
Bildsynthese wird die Lichtausbreitung berechnet durch Integrieren
von Lichtinteraktionseffekten entlang Sehstrahlen auf der Basis
des optischen Modells. Das entsprechende Integral ist als das Volume
Rendering Integral bekannt.
-
Die
Daten in einem Slice wie in 1 gezeigt
befinden sich im "Objektraum". Wenn aus den Daten Bilder
erzeugt werden, müssen
Ansichten in unterschiedlichen Winkeln konstruiert werden. Dies
erfordert das Konstruieren von Datensätzen aus den Daten im Objektraum
entlang verschiedener Winkel, wie etwa entlang der in 3 dargestellten
Polygonslices. Die Daten in den Polygonslices enthalten Daten von
einer Reihe von Slices in dem Objektraum, und die Daten in den Polygonslices
befinden sich in dem "Schirmraum", da diese Daten
auf einen Computerschirm projiziert werden. Verfahren zum Umwandeln
von Datensätzen
aus dem Objektraum in den Schirmraum sind wohlbekannt und auch die
Ausdrücke
Objektraum und Schirmraum.
-
Schattieren volumetrischer Daten
-
Das
Schattieren liefert visuelle Hinweise zur Unterstützung der
Visualisierung und Interpretation volumetrischer Daten. Das Schattieren
kann kleinskalige Oberflächenstrukturen
und Textur (Rauheit) sowie zusätzliche
Tiefenhinweise betonen. Das Schattieren berücksichtigt den Effekt externer
Lichtquellen durch Berechnen der Interaktion von Licht an jedem
Punkt, wo es die Oberfläche
beleuchtet, unter Berücksichtigung der
Eigenschaft der Oberfläche
an jedem von einem Strahl beleuchteten Punkt. Die Eigenschaften
bestehen aus Materialeigenschaften wie etwa Farbe, Opazität und Glanz
sowie die lokale Gestalt der Oberfläche.
-
Der
rechnerisch aufwendigste Teil der Schattierungsgleichung ist das
Berechnen der lokalen Gestalt, die in der Regel durch den lokalen
Gradienten dargestellt wird. Die am häufigsten eingesetzten Techniken
zum Berechnen von Gradienten für
ein Volumen sind die Verfahren der Vorwärts- und zentralen Differenz.
Siehe beispielsweise Abramowitz, M. und Stegun, I.A. (Hrg.), Handbook
of Mathematical Functions with Formulas, Graphs, and Mathematical
Tables, 9. Druck, New York: Dover, S. 877, 1972, das durch Bezugnahme
hier aufgenommen ist. Zuvor wurden Gradienten an Objektraumdaten
berechnet. Außerdem
werden diese Gradienten häufig
in einem Vorverarbeitungsschritt berechnet und in einem Zusatzvolumen
gespeichert oder mit den Quelldaten in einem anderen Volumen kombiniert.
Durch den zum Speichern von Gradienteninformationen erforderlichen
zusätzlichen
Speicher wird dieser Ansatz jedoch für große Volumendaten ungeeignet.
Folglich werden Gradienten während
der Wiedergabe im laufenden Betrieb berechnet. Die Berechnung von Gradienteninformationen
im laufenden Betrieb erfordert das Auswerten der Nachbarschaft jedes
wiedergegebenen Voxels, für
das eine Vorwärtsdifferenz
das Auswerten von drei Nachbarn beinhaltet, während eine zentrale Differenz
das Auswerten von sechs Nachbarn beinhaltet. Die vorliegende Erfindung
reduziert die Kosten des Zugreifens auf und des Auswertens von Nachbarinformationen
und steigert deshalb die Leistung erheblich.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung kann die Berechnung der Gradienteninformationen
von einer zentralen Verarbeitungseinheit (CPU) zu einem Fragmentprogramm
auf einer Graphikverarbeitungseinheit (GPU) verschoben werden. Für diesen
Ansatz gibt es einige wenige Vorteile. Zuerst kann die GPU solche
Vektoroperationen schneller ausführen
als eine CPU – GPUs
sind SIMD (single instruction multiple data) Parallelprozessoren.
Zweitens werden die effektiven Kosten der Gradientenberechnung aufgrund der
GPU-Pipeline reduziert,
wo in der Regel das gleiche Fragmentprogramm an benachbarten Pixeln
parallel durch Mehrfachpixel-Pipelines ausgeführt wird. Das heißt, eine
Fragmentpipeline erlegt keinerlei zusätzliche Verzögerung auf,
da sie parallel zu und unabhängig
von anderen Fragmentpipelines ausführt. Drittens kann das Verschieben
der Berechnung auf ein Fragmentprogramm die von der CPU zu der GPU über den
relativ langsamen AGP (Accelerated Graphics Port) oder PCI-Express übertragene
Datenmenge reduzieren (Daten werden unter Verwendung von AGP oder
der neueren PCI-Express-Schnittstelle
vom Hauptspeicher in den lokalen GPU-Speicher oder umgekehrt übertragen).
-
Partielle Schirmraumableitungen
-
Die
vorliegende Erfindung verwendet im Schirmraum berechnete partielle
Ableitungen für
die in Schattierungsberechnungen verwendeten Gradienten. Dieser
Ansatz erfordert Zugriff auf Informationen für Strahlen, die benachbarte
Pixel mit der gleichen Tiefe bezüglich
der Kamera durchqueren; das heißt
eine skalare physikalische Eigenschaft p (wie etwa die Dichte) des
Volumens bei Pixeln mit der gleichen Tiefe wie der Strahl bei der
aktuellen Pixelposition muß ausgewertet
werden. Tatsächlich
kann jedes Verfahren zum Berechnen partieller Schirmraumableitungen
(wie etwa Vorwärtsdifferenzen,
zentrale Differenzen, ein Sobel-Operator, usw.)
verwendet werden; nachfolgend jedoch erfolgt die Konzentration auf
Differenzen. Zusätzlich
zu dem Wert des aktuellen Pixels in der Schirmraumposition (x, y),
bezeichnet durch p(x, y) mit einer gegebenen Tiefe bezüglich der
Kamera, erfordert insbesondere ein Vorwärtsdifferenzgradient die Werte
der Pixel rechts von und über
dem aktuellen Pixel (p(x + 1, y)) bzw. (p(x, y + 1)). Ein 2D-Vorwärtsdifferenz-Schirmraumgradient
wird dann berechnet als:
-
Wie
unten ausführlicher
erörtert
wird, eignet sich die Verwendung der vorliegenden Erfindung zum
Finden des Gradienten im Schirmraum besonders gut für GPUs.
Es sollte jedoch klar sein, daß signifikante
Geschwindigkeitsgewinne gefunden werden können, ohne daß notwendigerweise
eine GPU erforderlich ist. Beispielsweise beinhalten bestimmte Algorithmen
zur volumentrischen Wiedergabe das parallele Werfen von Gruppen
von Strahlen durch das Volumen an benachbarte Pixelstellen. Während der
Berechnung können
die Volumendichten (d. h. der skalare Parameter p(x, y)) dieser
benachbarten Strahlen in Registern zwischengespeichert werden, und
somit kann das Holen der Dichten für die Gradientenberechnungen
schnell durchgeführt werden.
-
Zum
Erzeugen eines 3D-Vektors wird eine dritte Kompo nente benötigt. Diese
Komponente kann beispielsweise eine willkürliche Konstante sein, eine
entlang der Strahlrichtung im Objektraum berechnete Vorwärtsdifferenz
oder eine entlang der Strahlrichtung im Objektraum berechnete zentrale
Differenz. Der rechnerisch effizienteste Ansatz besteht darin, eine
Konstante zu verwenden (deren Wert proportional zur Helligkeit ist),
wohingegen man qualitativ hochwertigere Ergebnisse aus zentralen
oder Vorwärtsdifferenzen
im Objektraum erhalten kann.
-
Schließlich wurde
bestimmt, daß die
dritte Komponente als ein Wert berechnet werden kann, der proportional
zur Helligkeit ist und der entsprechend dem Zoomwert skaliert wird,
der zum Betrachten der volumetrischen Daten verwendet wird. Der
Vorteil dabei ist, daß sichergestellt
wird, daß die
scheinbare Helligkeit ungeachtet des Zoomwerts konstant bleibt,
da bei immer höheren
Zoomwerten Strahlen durch benachbarte Pixel im Schirmraum im Objektraum
sich immer weiter annähern.
Somit können
die Offsets für
die Nachschlagevorgänge
von Nachbarn im Schirmraum mit höheren
Zoomfaktoren kleiner werden. Eine Konstante für die dritte Komponente (die
partielle Ableitung im Objektraum) wird im allgemeinen bezüglich der
ersten und zweiten Komponente (den partiellen Ableitungen im Schirmraum)
relativ größer, was
zu einer Helligkeit führt,
die mit dem Zoomfaktor zuzunehmen scheint. So werden Kompensationsfaktoren
eingeführt,
die jede partielle Schirmraumableitung mit einer Konstanten skalieren,
die von dem Zoomfaktor abhängt.
Diese Konstanten werden berechnet, indem der Abstand zwischen den
Abtastwerten, die für
die partielle Objektraumableitung verwendet werden, in den Schirmraum
projiziert werden und die Anzahl von Pixeln bestimmt wird, die von
diesem Abstand entlang der x- und y-Richtung im. Schirmraum abgedeckt
wird.
-
4 veranschaulicht
den Schritt des Bestimmens einer partiellen Ableitung gemäß einem
Aspekt der vorliegenden Erfindung. Jedes Pixel in 4 befindet
sich im Schirmraum. Somit wird jedes Pixel aus einem Polygonslice
bestimmt, während
diese Daten auf einen Computerschirm projiziert werden. Wenn C das
aktuelle Pixel ist, das bearbeitet wird, und wenn ein Vorwärtsdifferenzverfahren
verwendet wird, dann wird die partielle Ableitung in der x-Richtung
durch die Differenz zwischen dem mit Pixel X assoziierten skalaren
Wert und dem mit Pixel C assoziierten skalaren Wert bestimmt. Außerdem wird
die partielle Ableitung in der y-Richtung durch die Differenz zwischen
dem mit Pixel Y assoziierten skalaren Wert und dem mit Pixel C assoziierten
skalaren Wert bestimmt. Da ein nVidia-Graphikprozessor alle Daten in einem
in 4 dargestellten Quad enthält, wird der Einsatz des Vorwärtsdifferenzverfahrens
bevorzugt, wenn zum Bestimmen von partiellen Ableitungen ein nVidia-Graphikprozessor
verwendet wird.
-
Wenn
ein Zentrale-Differenzen-Verfahren verwendet wird, dann wird die
partielle Ableitung in der x-Richtung durch die Differenz zwischen
dem mit Pixel X assoziierten skalaren Wert und dem mit Pixel X1
assoziierten skalaren Wert bestimmt. Außerdem wird die partielle Ableitung
in der y-Richtung durch die Differenz zwischen dem mit Pixel Y assoziierten
skalaren Wert und dem mit Pixel Y1 assoziierten skalaren Wert bestimmt.
Wie man sehen kann, erfordert dies den Zugriff auf Werte außerhalb
eines Quad und kann deshalb nicht an dem nVidia-Graphikprozessor
verwendet werden.
-
Wie
bereits erörtert
wird die partielle Ableitung in der z-Richtung bevorzugt unter Verwendung
von Objektraumdaten bestimmt.
-
Als
Beispiel liefert der folgende C-Code eine Nutzenfunktion, um einen
Kompensationsfaktor zu berechnen, damit die Schattierung vom Zoomfaktor
unabhängig
wird. Der Code nimmt als eine Eingabe die Entfernung zwischen Abtastwerten
entlang einer Betrachtungsrichtung und gibt Skalierungsfaktoren
für partielle Schirmraumableitungen
aus:
damit
die Schattierung vom Zoomfaktor unabhängig wird. Der Code nimmt als
eine Eingabe die Entfernung zwischen Abtastwerten entlang einer
Betrachtungsrichtung und gibt Skalierungsfaktoren für partielle
Schirmraumableitungen aus:
-
GPU-basierte Schirmraumableitungs-Schattierung
-
In 3 wird
eine Reihe von hinsichtlich der Betrachtung ausgerichteten Polygonen
mit schrägen
Slices der Volumendaten texturiert und vereint, um das Endbild zu
erhalten. Das 3D-Texturslicingverfahren (siehe B. Cabral, N. Cam
und J. Foran, "Accelerated
Volume Rendering and Tomographic Reconstruction Using Texture Mapping
Hardware", ACM Symposium
an Volume Visualization, 1994, durch Bezugnahme hier aufgenommen)
entspricht dem parallelen Verfolgen von Strahlen durch alle Pixel
des Schirms durch das Volumen. Das heißt, jeder Slice entspricht
einem Integrationsschritt für
alle Strahlen in der gleichen Tiefe, und jeder Integrationsschritt
wird entlang der Betrachtungsrichtung um ein entsprechend der Abtastrichtung
entsprechendes Ausmaß [Lakune].
-
Die
CineFX-Architektur von nVIDIA erleichtert die Fragmentfunktionen
ddx und ddy zum Approximieren der partiellen Ableitung eines skalaren
Werts bezüglich
Schirmraumkoordinaten. Insbesondere approximiert ddx(a) die partielle
Ableitung von a bezüglich
der x-Komponente
der Schirmkoordinate, während
ddx(a) die partielle Ableitung von a bezüglich der y-Komponente der
Schirmkoordinate approximiert. Diese partiellen Ableitungen werden
durch die Graphikhardware sehr effizient berechnet, da mehrere benachbarte
Pixel parallel verarbeitet werden. Die Werte von Strahlen an benachbarten
Positionen werden intern zwischengespeichert, so daß es effizienter
ist, als wenn auf sie unter Verwendung eines herkömmlichen
Direkttexturzugriffs zugegriffen wird. Partielle Schirmraumablei tungen
können
Architekturmerkmale von GPUs ausnutzen.
-
Durch
Anwenden der ddx- und ddy-Funktionen auf die durch das Abtasten
des Volumens bei benachbarten Pixeln erhaltenen Werte kann man Informationen über die Änderung
von Datenwerten innerhalb des Volumens im Schirmraum erhalten. Diese
Gradienteninformationen können
für das
Blinn-Phong-Schattierungsmodell zum Auswerten der lokalen Beleuchtung
verwendet werden. Unter Bezugnahme auf 5, das ein
Flußdiagramm
für ein
Programm für
die Schirmraumableitungsschattierung an einer GPU gemäß der vorliegenden
Erfindung zeigt. Dieses Flußdiagramm
ist im wesentlichen das gleiche wie das, das bei der herkömmlichen
Schattierung verwendet wird, mit Ausnahme der Art und Weise, wie
Gradienten in dem dritten Schritt 54 berechnet werden.
-
Der
erste Schritt 50 erhält
einen Texel-Wert aus der 3D-Textur, die das Volumen darstellt, unter
Verwendung der aktuellen Texturkoordinate (die eine Eingabe in das
Fragmentprogramm ist), als den Index zu der 3D-Textur. Eine trilineare
Interpolation wird während
dieses Schritts automatisch von der Hardware ausgeführt.
-
Eine
Klassifizierung erfolgt im zweiten Schritt 52. Gemäß einem
Aspekt der vorliegenden Erfindung wird die Klassifizierung unter
Verwendung eines abhängigen
Texturnachschlagens mit dem Texel-Wert als dem Index der Übertragungsfunktion
durchgeführt.
-
In
dem dritten Schritt 54 wird in dem Schirmraum ein Gradient
bestimmt. Dies bedeutet, daß benachbarte
Dichteinformationen in Abhängigkeit
von x- und y-Koordinaten
des aktuellen Pixels anstelle der x-, y- und z-Koordinaten der aktuellen Abtastposition
innerhalb des Volumens bestimmt werden. Wie bereits erwähnt kann
der Gradient auf verschiedene Weisen berechnet werden. Gemäß einem
Aspekt der vorliegenden Erfindung kann der Gradient bestimmt werden,
indem in einem Schirmraum bezüglich
mehrerer Pixel im Schirmraum, die jeweils unterschiedliche Koordinaten
aufweisen, eine partielle Ableitung bestimmt wird. Dann wird aus
den partiellen Ableitungen ein Gradient bestimmt. Die verwendete
Anzahl von Pixeln hängt
von dem zum Berechnen des Gradienten verwendeten Verfahren ab, d.
h. ob ein Vorwärtsdifferenzverfahren
oder ein anderes Verfahren verwendet wird.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird der Gradient bestimmt, indem
die partielle Ableitung eines ersten Pixels mit einer ersten Schirmkoordinate
und eine partielle Ableitung im Schirmraum bezüglich eines zweiten Pixels
mit einer zweiten Schirmkoordinate bestimmt wird. Der Gradient wird
dann auf der Basis der Ergebnisse bestimmt. Wieder hängt die
Anzahl der verwendeten Pixel von dem zum Berechnen des Gradienten
verwendeten Verfahren ab.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung beinhaltet der Schritt
des Bestimmens der partiellen Ableitung bezüglich eines Pixels die Schritte
des Bestimmens einer partiellen Ableitung bezüglich einer x-Koordinate des
Pixels und des Bestimmens einer partiellen Ableitung bezüglich einer
y-Koordinate des Pixels. Wieder hängt die zum Bestimmen der partiellen
Ableitung verwendete Anzahl von Pixeln von dem zum Berechnen des
Gradienten verwendeten Verfahren ab.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird die partielle Ableitung
der x-Komponente eines Pixels unter Verwendung der ddx-Funktion
mit dem aus dem ersten Schritt erhaltenen Texel erhalten. Die partielle
Ableitung der y-Komponente des Gradienten wird unter Verwendung
der ddy-Funktion erhalten. Die z-Komponente
des Gradienten kann eine Konstante, die Objektraumableitung in der
z-Richtung unter Verwendung der Differenz zwischen dem in dem ersten
Schritt erhaltenen Texel und einem aus einer zweiten Texturkoordinate
erhaltenen zweiten Texel-Wert oder ein gemäß dem Zoomfaktor skalierter
Wert sein.
-
Wie
in 6 dargestellt, beinhaltet somit der Schritt des
Bestimmens eines Gradienten gemäß einem Aspekt
der vorliegenden Erfindung das Bestimmen einer partiellen Ableitung
im Schirmraum für
die x-Richtung im Schritt 62, das Bestimmen einer partiellen
Ableitung im Schirmraum für
die y-Richtung im Schritt 64, das Skalieren der partiellen
x/y-Ableitungen auf der Basis eines Zoomwerts im Schritt 66,
das Berechnen der partiellen Ableitung im Objektraum für die z-Richtung
im Schritt 67 und das Montieren des Gradienten im Schritt 68.
Das Skalieren wird unten ausführlicher
beschrieben.
-
Der
Gradient wird im vierten Schritt 56 normalisiert. Der Gradient
wird dann im fünften
Schritt 58 zum Berechnen der diffusen und spiegelnden Komponenten
verwendet. Schließlich
wird die Ausgabefarbe im Schritt 60 unter Verwendung der
klassifizierten Farbe (von Schritt 52), der diffusen und
spiegelnden Parameter (aus Schritt 58) und der Materialparameter
(die als Konstanten in das Fragmentprogramm eingegeben werden) berechnet.
-
Dieser
Prozeß wird
für jede
Abtastposition in einem Datensatz wiederholt, um volumetrische Daten wiederzugeben.
Beispielsweise können über diesen
Prozeß Schattierungscharakteristiken
bestimmt werden.
-
Die
vorliegende Erfindung ist nicht lediglich auf die spiegelnden und
diffusen Komponenten der Schattierung beschränkt. Schirmbasierte partielle
Ableitungen können
auch für
andere Schattierungsarten wie etwa Opazitätsgradientenmodulation verwendet
werden, wobei die Opazität
(Alphakomponente) durch die Größe des Gradienten
moduliert wird, um auf die Ränder
innerhalb des Volumens zu fokussieren.
-
Unter
Bezugnahme auf 7 wird ein Blockschaltbild eines
Systems unter Verwendung der vorliegenden Erfindung gezeigt. Das
System enthält
ein Bildgebungssystem 70, einen Prozessor 72 und
ein Display 74. Bei dem Bildgebungssystem kann es sich
um eine beliebige Art von medizinischem Bildgebungssystem handeln,
einschließlich
u. a. Kernspintomographiesysteme (MR), Computertomographiescansysteme
(CT), Positronenemissionstomographiesysteme (PET) und Ultraschallscansysteme.
Die Prozessoren 72 und das Display 74 für diese
Systeme sind wohlbekannt. Die vorliegende Erfindung wird bevorzugt
in dem Prozessor 72 implementiert.
-
Die
folgende Software, die Cg-Programmiersprache von NVIDIA verwendet,
kann gemäß einem
Aspekt der vorliegenden Erfindung verwendet werden. Der Skalierfaktor
unten wird aus dem obigen Code erhalten, so daß sich die Helligkeit des angezeigten
Bilds nicht mit dem Zoomwert ändert.
In dem Code unten wird die Skalierung an dem x- und y-Wert derart
durchgeführt,
daß die
x- und y-Werte abnehmen,
wenn eine Wegzoomoperation auftritt, und derart, daß die x-
und y-Werte zunehmen, wenn eine Heranzoomoperation auftritt. Natürlich kann
die z-Komponente auch entsprechend der Zoomoperation (mit anderem
Code) skaliert werden, um das gleiche Ergebnis zu erhalten.
-
-
-
Bei
diesem Programm ist das Volumen auf einen 3D-Sampler (Volumen) und die Übertragungsfunktion
auf einen ID-Sampler (Übertragungsfunktion)
begrenzt. Zuerst wird ein Dichtewert von der Volumentextur geholt,
wobei die Texturkoordinaten verwendet werden, die in die Texturstufe
0 eingegeben wurden (TexCoord0). Dann wird eine Klassifizierung
unter Verwendung eines abhängigen
Texturnachschlagens in die Übertragungsfunktion
vorgenommen. Partielle Schirmraumableitungen der Volumendichte werden
unter Verwendung der DDX- und DDY-Befehle ausgewertet und auf der
Basis des Zoomwerts skaliert, wie oben erörtert. Eine optionale partielle
Objektraumableitung wird unter Verwendung einer Texturkoordinate,
die um die Abtastentfernung entlang der z-Richtung der Betrachtungsachse
verschoben ist, für
die z-Komponente ausgewertet (TexCoord1). Dann wird der Gradient
normalisiert und diffuse und spiegelnde Schattierungsparameter für ein Blinn-Phong-Schattierungsmodell
werden berechnet. Schließlich
wird die Ausgabefarbe berechnet und von dem Fragmentprogramm zurückgegeben.
-
Um
den Fragmentcode weiter zu optimieren, können die diffusen und spiegelnden
Schattierungskoeffizienten im voraus berechnet und in einer Nachschlagetabelle
gespeichert werden (Nachschlagetexture). Der folgende Code veranschaulicht
die Berechnung der Nachschlagetabelle für gegebene Blinn-Phong-Schattierungsparameter
(ambientparam, diffuseparam, specularparam, shininessparam), eine
gegebene Lichtrichtung (lightDir), eine gegebene Halbweg-Lichtrichtung
(halfway) und eine Nachschlagetabellengröße (1size).
-
-
-
Obwohl
die Erfindung hier unter Bezugnahme auf bestimmte Ausführungsformen
beschrieben worden ist, versteht sich, daß diese Ausführungsformen
für die
Prinzipien und Anwendungen der vorliegenden Erfindung lediglich
veranschaulichend sind. Für
den Fachmann ist offensichtlich, daß an dem Verfahren der vorliegenden
Erfindung zahlreiche Modifikationen und Abwandlungen vorgenommen
werden können,
ohne vom Gedanken und Schutzbereich der Erfindung abzuweichen. Somit
soll die vorliegende Erfindung Modifikationen und Abweichungen enthalten,
die innerhalb des Schutzbereichs der beigefügten Ansprüche und ihrer Äquivalente
liegen.