-
GEBIET DER ERFINDUNG
-
Diese
Erfindung betrifft ein Verfahren zum Bilden eines perspektivischen
Rendering von einem Raum von Volumenelementen (Voxeln). Spezieller betrifft
diese Erfindung eine Familie von algorithmischen Optimierungen,
die bei dem Bilden eines perspektivischen Rendering von einem Voxelraum
nützlich
sind.
-
HINTERGRUND
DER ERFINDUNG
-
Viele
quantitative Disziplinen sammeln oder erzeugen mehrdimensionale
Daten. Diese Disziplinen umfassen medizinische Abbildungsanwendungen,
wie z.B. CT oder MRI; geophysikalische Modellierung, Wettervorhersage,
wissenschaftliche Simulationen, Animationsmodelle und dergleichen.
Diese mehrdimensionalen Daten werden häufig in der Form von Voxeln
gespeichert und manipuliert. Voxels sind Volumenelemente in drei
(oder mehr) Dimensionen; und sind analog zu Bildpunkten (zweidimensionalen Bildelementen).
-
Fachleute
finden es häufig
nützlich,
einige Aspekte von Voxeldaten visualisieren zu können. Die Visualisierung erfordert
ein Transformieren der Voxeldaten, so dass ein Querschnitt, eine
Projektion oder eine andere Form von Visualisierung auf einem zweidimensionalen
Anzeigegerät
verwirklicht werden kann. Zahlreiche Visualisierungstechniken sind
untersucht worden, und die meisten sind zur Anwendung nicht praktikabel;
wegen rechnerischer Komplexitäten,
die damit verbunden sind. Nichtsdestoweniger gibt es gewisse grundsätzliche
wünschenswerte Aspekte
von Visualisierungsstandards für
akzeptierte Renderings (Darstellungen).
-
Der
Fachmann erwartet, dass die Visualisierung höhere Einsichten ermöglicht und
ein gesteigertes Verstehen der Daten wachruft. Dies wird häufig bewerkstelligt,
indem (auf einem Rendering der Daten) subjektive Kriterien, wie
z.B. Tiefe, Schattierung, Perspektive, Beleuchtung oder Schattenbildung
aufgebracht werden; die nicht notwendigerweise für die Daten, die gerendert
werden, generisch sind. Z.B. sind Tiefe oder Schatten keine natürlichen
Merkmale von geophysikalischen Querschnitten; sie können aber
für den
Fachmann hilfreich sein, der nach Wegen sucht, um eine solche komplexe
Datenmenge zu verstehen. Alternativ kann der Fachmann erwarten, dass
die Visualisierung naturgetreu ist (von realistischer Erscheinung).
-
Das
Ergebnis der Renderingserwartungen der Fachleute und die rechnerische
Komplexität,
sie zu bewerkstelligen, hat ein wirres Durcheinander von Renderingstechniken
erzeugt. Einige Techniken sind entwickelt worden, die zum Rendern
gewisser Datenmengen spezifisch sind, während andere Techniken anscheinend
allgemeiner im Umfang sind.
-
Die
Beschaffenheit des Standes der Technik (vom Rendering eines Voxelraums)
kann besser aus einem Studium der
US
5201035 ,
US 5499323 ,
US 5594844 , US-A-5 555 352,
FR-A-2662524 und aus den Stand-der-Technik-Bezugsstellen, die darin
zitiert sind, gewürdigt
werden. Weiter wird die Größenordnung
von Komplexität
dadurch eingesehen, die zur erfolgreichen algorithmischen Optimierung
beim Bilden eines perspektivischen Rendering von einem Voxelraum
erforderlich ist.
-
Der
Stand der Technik ist problematisch und in erster Linie anwendungsspezifisch.
Viele überlappende
Kombinationen von fundamentaleren Grafikalgorithmen werden bei einem
Versuch verwendet, um gleichzeitig ein angemessenes Rendering innerhalb algorithmischer
Schranken bereitzustellen, die ökonomisch
und technisch brauchbar sind. Viele Beispiele von Stand-der-Technik-Verfahren
sind visuell realistisch aber algorithmisch schwer, und viele andere
Beispiele des Standes der Technik sind visuell stark vereinfachend,
obgleich algorithmisch praktikabel. Folglich gibt es im Stand der
Technik einen Bedarf an Renderingverfahren, die gleichzeitig visuell realistisch
und algorithmisch brauchbar sind.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Bilden eines hochraumauflösenden perspektivischen
Rendering von einem niedrigraumauflösenden Voxelraum gemäß Anspruch
1.
-
Die
vorliegende Erfindung liefert ein praktikables Verfahren, sowohl
visuell als auch algorithmisch, um ein perspektivisches Volumenrendering mit
hochraumauflösendem
Bild von einem niedrigraumauflösenden
Voxelraum zu bilden. Die Daten, die in eine Visualisierung zu rendern
sind, werden in einem dreidimensionalen Array von Volumenelementen
(Voxeln) dargestellt. Da die in den Voxeln gespeicherten Daten nicht
notwendigerweise von einem Format, Größe oder Verteilung sind, das
zur Darstellung (z.B. auf einem Anzeigegerät, wie z.B. einem TV-Schirm,
einem Plotter oder dergleichen) nützlich ist, ist ein Transformationsschritt
erforderlich, um die Daten mit einer Form in Übereinstimmung zu bringen,
die auf einem Anzeigegerät
dargestellt werden kann. Diese Klassen werden verwendet, um einen oder
mehrere Bereiche von Voxelwerten zu Dubletten eines Transparenzwerts
und eines Darstellungswerts (z.B. RGB für Farbe oder Graustufe oder
dergleichen) zu transformieren. Man erinnere sich, dass Transparenzwert
und Opazitätswert
inverse Quantifizierungen desselben Visualisierungsaspekts sind,
so dass es nur gemäß Konzeptualisierungszweckmäßigkeit ist, dass die vorliegende Erfindung entsprechend
Transparenzwerten oder Opazitäts werten
beschrieben wird.
-
Gemäß der vorliegenden
Erfindung werden einige Interpolationen vor Voxelwert-zu-Visualisierungswert-Transformationen
durchgeführt,
während andere
Interpolationen nach diesen Transformationen durchgeführt werden.
Interpolation ist eines der Schlüsselwerkzeuge,
die verwendet werden, um ein hochauflösendes Bild von einer niedrigerauflösenden Darstellung
zu rendern. Es gibt viele Funktionen, die sich zur Ausführung von
Interpolationen als nützlich erwiesen
haben. Eine Interpolation löst
rechnerisch nach einem Wert an einer ausgewählten Position von zwei oder
mehr Nachbarpositionen auf. Interpolationsfunktionen können selbst
alle bekannten Stellen mit Datenwerten erwägen, um nach einer einzigen Stelle
aufzulösen,
deren Datenwert gesucht wird. Im Allgemeinen können Interpolationsfunktionen
geordnet werden; entweder in demselben Sinn wie Polynome oder entsprechend
einem Maß an
algorithmisch-rechnerischer Komplexität.
-
Der
Kompromiss zwischen Interpolationen niedriger Ordnung (z.B. linear),
Interpolationen dazwischenliegender Ordnung (z.B. kubisch oder Spline)
und Interpolationen höherer
Ordnung beeinflusst direkt die visuelle Glattheit einer Erscheinung
für Bilder,
wobei Interpolationen verwendet worden sind, um Werte für Stellen
synthetisch zu erzeugen, wo keine solchen Werte in den ursprünglichen
Daten existierten. Selbst für
Interpolationen dazwischenliegender Ordnung gibt es einen großen algorithmischen
Aufwand.
-
Deshalb
werden bei Visualisierungsanwendungen normalerweise Interpolationen
niedriger Ordnung zum Lösen
an allen Interpolations-erfordernden Positionen verwendet, abgesehen
von einer äußerst kritischen
Untermenge von Positionen, wie z.B. Positionen, die nahe genug am
Auge sind (z.B. Vordergrundobjekte und keine Hintergründe). Weiter
ist Wechseln zwischen Interpolationen unterschiedlicher Ordnung
bemerkenswert und erfordert einen gewissen sekundären Ausgleichsmechanismus – insbesondere,
wenn das Kriterium Nähe
zum Auge ist. Diese speziellen Erwägungen zum Bewahren einer Erscheinung
von Glattheit sind besonders wichtig, weil – oft ein Ziel der Visualisierung
darin besteht, die klare Auflösung
von eindeutigen Klassengrenzen aufrechtzuerhalten (in der Form von
kontinuierlichen Iso-Oberflächen
von Voxelwerten – wie
unten erklärt).
-
Im
Kontext der vorliegenden Erfindung:
- (i) Eine "Iso-Oberfläche" ist eine Mannigfaltigkeit im
Raum, in der die Interpolationsfunktion der Voxelwerte konstant
ist.
- (ii) Eine "Klasse" ist ein Gebiet im
Raum, in dem die Interpolationsfunktion Werte annimmt, die zu einem
vordefinierten Intervall gehören.
-
Deshalb
folgt durch die Stetigkeit der Interpolationsfunktion, dass eine
Klasse durch die Iso-Oberfläche(n)
begrenzt wird (werden), die dem Rand (den Rändern) des Klassen-Intervalls
entspricht (entsprechen). Es sollte ersichtlich sein, dass im Kontext
der vorliegenden Erfindung die Iso-Oberflächen, die in Bezug zur Verarbeitung "interessant" sind, die Klassen-begrenzenden
Iso-Oberflächen
sind.
-
Ein
anderer signifikanter Aspekt beim Rendern einer Visualisierung von
Daten betrifft Beleuchtung. Es gibt zwei grundsätzliche Typen von Beleuchtung:
Oberflächenbeleuchtung
und Volumenbeleuchtung. Oberflächenbeleuchtung
tritt auf (ist erwünscht),
wenn eine äußere Lichtquelle
die Oberflächen
der Klassen beleuchtet. Im Kontext der bevorzugten Ausführungsform
der vorliegenden Erfindung entsteht Oberflächenbeleuchtung von demselbem vorbestimmten
Ausgangspunkt wie das "Auge
des Beobachters".
Im Gegensatz dazu stammt Volumenbeleuchtung von (ist erwünscht wenn)
ein oder mehrere Voxels im "Voxelraum" selbst Quellen von
Beleuchtung (strahlend) sind. Im Kontext von mehreren Ausführungsformen
der vorliegenden Erfindung wird entweder ausschließlich Oberflächenbeleuchtung verwendet,
oder es wird Volumenbeleuchtung verwendet, um eine Oberflächenbeleuchtung
zu ergänzen.
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird ausschließlich Volumenbeleuchtung verwendet.
-
Qualitativ
sind Oberflächenbeleuchtungswerte
proportional zum Cosinus des Winkels, der zwischen einem Vektor,
der das Auge und einen Punkt auf einer Iso-Oberfläche verbindet, und einer Normalen
auf die Iso-Oberfläche
an diesem Punkt gebildet ist; gemäß der Ausführungsform, wo die Lichtquelle
angrenzend an das Auge ist.
-
Qualitativ
ist Volumenbeleuchtung proportional zur Luminanz (Radianz), die
einem oder mehreren Punkten im Voxelraum zugeordnet ist, dem Abstand
zwischen dem lumineszierenden Punkt und dem Ausgangspunkt (dem Auge)
sowie der Opazität (oder äquivalent
aber invers – der
Transparenz) von relevanten Voxeln zwischen dem lumineszierenden Punkt
und dem Ausgangspunkt (dem Auge).
-
Qualitativ
akkumuliert Opazität
(zwischen jedem Voxel und dem Auge) entsprechend dem Beleuchtungsmodell
unterschiedlich: Oberfläche,
Volumen oder Kombination. Im Allgemeinen stellt kumulative Opazität den "Bruchteil von Licht" ("FoL") (auch als "CT"-kumulative Transparenz
bezeichnet) dar, der das Auge von einem Punkt im Voxelraum erreicht;
aufgrund der Lichtabsorptionsbeschaffenheit des Mediums zwischen
den beiden (dem Auge und dem Punkt). Weiter sollte es angemerkt
werden, dass die räumliche
Genauigkeit, die zum erfolgreichen Rendering von Oberflächenbeleuchtung
notwendig ist, signifikant höher
ist als diejenige, die zum erfolgreichen Volumenbeleuchten erforderlich
ist.
-
Entsprechend
dem Volumenbeleuchtungsmodell ist die Lumineszenz (Radianz) des
Punktes durch FoL zu dem Zeitpunkt, zu dem sie das Auge erreicht,
skaliert (abgeschwächt).
Entsprechend dem Oberflächenbeleuchtungsmodell
ist die Lumineszenz (Radianz) des Auges durch FoL·FoL zu
dem Zeitpunkt, zu dem sie den Pfad vom Auge zum Punkt und zurück zum Auge
beendet, skaliert (abgeschwächt). Weiter wird
die Oberflächennormalenrichtung,
die in der Oberflächenbeleuchtungsberechnung
für Iso-Oberflächen verwendet
wird, bestimmt, indem irgendeine von vielen wohlbekannten analytischen Veranschlagungen
für einen
Gradienten (der interpolierten Iso-Oberfläche) verwendet wird.
-
Akkumulieren
eines Transparenzwerts in einem Bildpunkt erfolgt durch Aktualisieren
des gegenwärtigen
Transparenzwerts für
den Bildpunkt:
CT* = Taugenblickliche
Schrittgröße (siehe 5); der gegenwärtige Transparenzwert für die Position
auf dem Vektor, potenziert mit dem Abstand auf dem Vektor von der
gegenwärtigen
Position zur letzten Position, akkumuliert im Bildpunkt; und der
gegenwärtige Transparenzwert
für die
Position auf dem Vektor ist ein einheitsnormierter Transparenzwert.
-
Ein
weiterer signifikanter Aspekt bei "dem Prozess von Volumenrendering einer
Visualisierung von Daten" betrifft
eine wohlbekannte allgemeine Technik, die "Ray-Casting" genannt wird. Ray-Casting simuliert
im Wesentlichen eine Mehrzahl von optischen Informationsvektoren
die am Brennpunkt des Auges konvergieren. Äquivalent simuliert Ray-Casting
einen algorithmischen Prozess, bei dem eine Akkumulation von optischer
Information in Bezug zu einer Mehrzahl von angrenzenden Vektoren
eingerichtet wird; vom Auge auswärts
ausgehend. Dieser algorithmische Prozess ermöglicht ein Abschneiden des Vektors
(des geworfenen Strahls), wenn die kumulative Transparenz des durchquerten
Pfads vernachlässigbar
wird.
-
Gemäß der vorliegenden
Erfindung werden Positionen entlang dem Vektor zum Akkumulieren von
Transparenzwerten ausgewählt,
und die Schrittgröße zwischen
einer gegenwärtigen
Position und einer nächsten
Position wird so ausgewählt,
dass sie von der Opazität
bei der gegenwärtigen
Position abhängt;
obwohl eine minimale und maximale Schrittgröße die Schranken dieser Proportionalität begrenzen.
Weiter wird eine Klassenänderung
detektiert, indem eine Änderung
in Opazität
zwischen zwei aufeinanderfolgenden Schritten auf einem Vektor bemerkt wird.
Weiter ist gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung in einem durch den Vektor durchquerten
Gebiet mit einer hohen Transparenz die Schrittgröße groß, und in einem durch den Vektor
durchquerten Gebiet mit einer niedrigen Transparenz ist die Schrittgröße klein.
-
Gemäß der bevorzugten
Ausführungsform der
vorliegenden Erfindung werden Volumenbeleuchtungsbeiträge überall erzeugt,
wohingegen Oberflächenbeleuchtungsbeiträge nur erzeugt
werden, wenn von einer Klasse von niedrigerer Opazität zu einer
Klasse von höherer
Opazität übergegangen wird.
Dieses Übergehen
erfolgt an einer Oberfläche, die
dem Auge zugekehrt ist (einer Vorderseitenoberfläche), während ein Übergehen von höheren zu niedrigeren
Klassen von Opazität
eine "verborgene" Oberfläche (eine
Hinterseitenoberfläche)
ist. Z.B. in einem medizinischen Datenkontext, wenn ein Vektor einen
Muscus durchquert und auf ein Gewebe trifft, dann handelt es sich
bei diesem Auftreffen um eine Vorderseitenoberfläche; während die Fortsetzung des Vektors
wieder in einen Muscus eintreten mag, und dieses "zweite Hindurchtreten" ist eine Hinterseitenoberfläche.
-
Entsprechend
den Kriterien (zur Interpolation) zum Bewahren einer Erscheinung
von Glattheit beim Rendern von kontinuierlichen Iso-Oberflächen ist
ein hoher Grad an räumlicher
Genauigkeit notwendig, jedesmal wenn ein Oberflächenbeleuchtungsbeitrag einer
Vorderseitenoberfläche
(zur kumulativen Opazität
des Ray-Casting-Vektors) zu berechnen ist. Deshalb wird gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung, jedesmal wenn eine Vorderseitenoberfläche zwischen
zwei aufeinanderfolgenden Schritten detektiert wird – eine Suche
kleinerer Schrittgröße zwischen
den zwei "aufeinanderfolgenden
Schritten" ausgeführt. Diese
Suche dient dazu, einen höheren
Grad an räumlicher
Positionierung für
einen Punkt auf der Vorderseitenoberfläche, die sich mit dem Vektor
schneidet, und auch für die
Normale an diesen Punkt auf die Iso-Oberfläche zu erzielen.
-
Die
spezielle Signifikanz von diesen Vorderseitenoberflächen für den Renderingsprozess
vorausgesetzt, wird eine zusätzliche
Verarbeitungsschicht eingeführt.
Diese Verarbeitung soll im Wesentlichen verhindern, dass eine Situation
auftritt, bei der zwei aufeinanderfolgende Schritte eine Vorderseitenoberfläche überspringen,
ohne sie zu detektieren. Unter Fortsetzung des Beispiels von medizinischem
Kontext nehme man an, dass es eine Membran (oder Dünnfilm von
Gewebe oder ein Knochenfragment usw.) im Muscus gibt, die tangential
zum Vektor ist. Weil die Membran von einer transparenten Substanz
umgeben ist, riskiert die Schrittgröße ein "Überspringen" der Membran, ohne
die Existenz der Membran zu detektieren.
-
Deshalb
wird gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung ein Opazitätsstörungsvorgang ("Opazifizierung") ausgeführt. Dieser
Opazifizierungsprozess soll ein Überspringen von
Vorderseitenoberflächen,
ohne dass ihre Gegenwart detektiert wird, verhindern. Im Opazifizierungsprozess
wird eine Tabelle (oder Gleichung) hergerichtet, von der jedem Voxelwert
ein Opazitätswert zugewiesen
werden kann. Entsprechend dieser Tabelle (oder Gleichung) wird eine
Opazität
für jeden Voxelwert
als der maximale Wert einer vorbestimmten Nachbarschaft in Bezug
zum ursprünglichen
Voxelwert angenommen. Weiter ist eine Schrittgröße auf dem Vektor entsprechend
dieser Tabelle. Weil diese Tabelle wirkungsvoll Gebiete kennzeichnet,
in denen es eine Vorderseitenoberfläche geben kann, wird die Schrittgröße auf dem
Vektor immer verringert, jedesmal wenn der Vektor in das Gebiet
einer Vorderseitenoberfläche
eintritt; selbst wenn es keinen tatsächlichen Schnittpunkt zwischen
ihnen gibt. Die gestörten Werte
von der Tabelle (oder Gleichung) werden NICHT bei der Akkumulation
einer kumulativen Opazität
verwendet; und werden nur als eine konservative Strategie zum zweckmäßigen Optimieren
(besseres Wählen
von geeigneten) Schrittgrößen verwendet,
um ein visuell akzeptables Rendering zu erzielen.
-
Gemäß der vorliegenden
Erfindung betrifft ein anderer Aspekt beim Prozess von Volumenrendering
selektives Ray-Casting. Wie aus den vorhergehenden Aspekten von
Prozessen, die beim Volumenrendering beteiligt sind, ersichtlich
ist, bewirkt jeder tatsächliche
Vektor, der (vom Auge) geworfen wird, und vermöge dessen Opazitätsdaten
akkumuliert werden, ein Maß an
algorithmischer Komplexität, das
den Kosten eines Volumenrendering hinzuzufügen ist. Weiter sollte es ersichtlich
sein, dass ein Ziel der vorliegenden Erfindung darin besteht, ein
hochraumauflösendes
perspektivisches Rendering von einem niedrigraumauflösenden Voxelraum
zu erzeugen.
-
Man
erinnere sich, dass der zentrale Kompromiss beim Volumenrendering
darin besteht, ein praktikables Verfahren (sowohl visuell als auch
algorithmisch) bereitzustellen. Die bevorzugte Ausführungsform
der vorliegenden Erfindung ist darauf gerichtet, das Ausmaß zu minimieren,
bis zu dem ein tatsächliches
Ray-Casting ausgeführt
wird. Gemäß einer
ersten Approximation dieses Minimierens von Ray-Casting wird eine
vorbestimmte Mehrzahl von Strahlen geworfen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung ist diese vorbestimmte Mehrzahl in einer
symmetrischen gleichmäßigen Verteilung
verteilt, so dass Werte für
alle dazwischenliegenden Strahlen ohne jegliches zusätzliches
Ray-Casting von den geworfenen Strahlen interpoliert werden können.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung werden dazwischenliegende Strahlen geworfen,
jedesmal wenn die akkumulierten Werte von den bisher geworfenen
Strahlen nicht statistisch homogen sind, oder sie werden anders
interpoliert.
-
Gemäß einer
Variationsausführungsform
der vorliegenden Erfindung wird eine erste Mehrzahl von gleichmäßig verteilten
Strahlen geworfen; und in jedem Gebiet zwischen diesen gleichmäßig geworfenen
Strahlen wird eine statistische Homogenitätsmetrik berechnet. Von diesen
geworfenen Strahlen – werden
ENTWEDER Werte im Gebiet von Werten benachbarter geworfener Strahlen
interpoliert, ODER es wird eine nächste Mehrzahl von gleichmäßig verteilten
Strahlen in dem Gebiet geworfen, und es wird eine nächste Auflösungsmetrik
berechnet. Dieses Entweder-Oder-Verarbeiten
wird wiederholt, BIS Werte für
alle Strahlen in einer gewünschten räumlichen
Auflösung
von Strahlen zugeordnete Werte aufweisen. Diese Variationsausführungsform ist
ein iterativer Zoom-Wertauffüllungsprozess,
der wie geeignet die vorherigen Ausführungsformen der vorliegenden
Erfindung verwendet.
-
Im
Allgemeinen kann die vorliegende Erfindung als "Ein Verfahren zum Bilden eines hochraumauflösenden perspektivischen
Rendering von einem niedrigraumauflösenden Voxelraum" definiert werden.
Dieses Verfahren umfasst die vier Schritte ("a" bis "d") von:
- (a) Initialisieren
eines virtuellen Fensters von Bildpunkten vorbestimmter Auflösung, und
Platzieren des virtuellen Fensters in dem oder in der Nähe des Voxelraums;
- (b) von einem vorbestimmten Ausgangspunkt: spärliches
Ray-Casting einer Mehrzahl von Vektoren durch das virtuelle Fenster
in den Voxelraum;
- (c) (i) für
jeden Ray-Casting-Vektor, der bisher keinen zugeordneten Visualisierungswert
aufweist,
(ii) und darin, für
jede Position in einer schrittabhängigen Reihe von Positionen
auf dem Vektor,
(iii) und darin, bei einer Positionsanordnung
von vom Ausgangspunkt bis zum Bildpunkt,
(iv) und darin, bis
ein akkumulierter Transparenzwert-Schwellenwert erreicht ist oder
bis ein zuletzt verfügbares
Voxel, das sich mit dem Vektor schneidet, erreicht ist – was auch
immer eher ist;
Berechnen eines Visualisierungswerts und Speichern
dieses Visualisierungswerts in dem entsprechenden Bildpunkt des
Vektors; durch:
ERSTENS: Interpolieren von Werten von nahegelegenen
Voxeln in einen interpolierten Voxelwert für die Position;
ZWEITENS:
Transformieren des interpolierten Voxelwerts in einen abgeleiteten
Visualisierungswert und Transparenzwert; und
DRITTENS: Verwenden
einer vorbestimmten Auswahlregel, Akkumulieren des abgeleiteten
Visualisierungswerts mit dem Wert, der gegenwärtig in dem entsprechenden
Bildpunkt ist; und
- (d) bis jeder Bildpunkt einen zugeordneten Visualisierungswert
aufweist:
Auswählen
eines Bildpunkts (P) mit der Initialisierung von Schritt (a), und
WENN
im Wesentlichen nächste
Bildpunkte zu dem ausgewählten
Bildpunkt (P) berechnete Visualisierungswerte aufweisen, die statistisch
homogen sind,
DANN Interpolieren eines Visualisierungswerts von
diesen im Wesentlichen nächsten
Bildpunkten, und Zuweisen des interpolierten Visualisierungswerts
zum ausgewählten
Bildpunkt (P),
SONST: Ray-Casting eines Vektors durch den ausgewählten Bildpunkt
(P), und Zuweisen eines Visualisierungswerts zum ausgewählten Bildpunkt
(P) unter Verwendung von Schritt (c).
-
In
Bezug zu diesen vier Schritten ("a" bis "d" – oben)
und zu den Bedingungen und Subschritten darin, ist es wert, einige
zusammenfassende Beobachtungen anzumerken.
-
In
Schritt (a): gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung ist die räumliche Auflösung der
Bildpunkte höher
als diejenige eines Querschnitts von Voxeln im Voxelraum.
-
In
Schritt (b): wenn sich der Ausgangspunkt weit vom virtuellen Fenster
befindet, dann sind die Strahlen, die durch das virtuelle Fenster
geworfen sind, effektiv parallel zueinander. Alternativ, wenn sich
der Ausgangspunkt in der Nähe
zum virtuellen Fenster befindet, dann approximieren die geworfenen
Strahlen effektiv eine divergente Perspektive; wie durch den Winkel
begrenzt, der durch das virtuelle Fenster definiert ist.
-
In
Schritt (c): alle vier Bedingungen müssen erfüllt sein, damit der "Berechnungs- und
Speicherungs-"Vorgang
ausgeführt
wird.
-
In
Schritt (c) Bedingung (i): man beachte, dass Vektoren in Schritt
(b) geworfen werden und auch in Schritt (d) (am "SONST" Subschritt).
-
In
Schritt (c) Bedingung (ii): das "Berechnen und
Speichern" werden
unabhängig
für jede
Position auf dem Vektor durchgeführt.
-
In
Schritt (c) Bedingung (iii): es gibt zwei mögliche Anordnungen beim Ray-Casting.
Diese Anordnungen hängen
davon ab, ob sich das virtuelle Fenster zwischen dem Voxelraum und
dem Ausgangspunkt befindet (wie es für die vorliegende Beschreibung
der Fall ist); oder äquivalent,
ob sich der Voxelraum zwischen dem Ausgangspunkt und dem virtuellen
Fenster befindet. Der Ausdruck von "vom Ausgangspunkt bis zum Bildpunkt" ist eine bequeme Wahl
einer Nomen klatur, die keinerlei äquivalente logisch konsistente
Anordnung ausschließen
soll. Z.B., wenn das virtuelle Fenster in der Mitte des Voxelraums
zu platzieren wäre,
oder wenn der Ausgangspunkt in der Mitte des Voxelraums zu platzieren
wäre, dann
würde es
fakultative Anordnungen geben, wie z.B.:
- • Vom Ausgangspunkt
zum virtuellen Fenster.
- • Vom
Ausgangspunkt durch das virtuelle Fenster.
- • Vom
virtuellen Fenster weg vom Ausgangspunkt.
- • Vom
virtuellen Fenster zum (oder durch den) Ausgangspunkt.
- • Vom
Ende des Voxelraums zum virtuellen Fenster.
- • Vom
Ende des Voxelraums zum virtuellen Fenster; und danach zum (oder
durch den) Ausgangspunkt.
-
In
Schritt (c) Bedingung (iv): "was
auch immer eher ist" bezieht
sich auf ein Akkumulieren von Transparenz, bis eine weitere Akkumulation
die Visualisierung nicht beeinträchtigt,
oder bis es keine weiteren Daten gibt, um die Visualisierung zu
beeinträchtigen.
Weiter ist "Transparenzschwellenwert" eine untere Schranke
(oder wenn äquivalent
angegeben – bis
zu einem Opazitätsschwellenwert,
der eine obere Schranke ist).
-
In
Schritt (c) "ERSTENS": es gibt zahlreiche Verfahren
zum Bewerkstelligen der Interpolation.
-
In
Schritt (c) "ZWEITENS": das Transformieren
ist gemäß der Darstellung,
die auf einem Anzeigegerät
gewünscht
wird. Sollte das Transformieren zum Schnittstellenbilden mit weiterer
Bildverarbeitung erfolgen, dann ist das Transformieren entsprechend
den Werten, die für
dieses Verarbeiten geeignet sind.
-
In
Schritt (c) "DRITTENS": das Akkumulieren ist
entsprechend einem Beleuchtungsmodell, wie z.B. dem Oberflächenbeleuchtungsmodell,
dem Volumenbeleuchtungsmodell, einer Kombination von diesen beiden
Beleuchtungsmodellen, einem Beleuchtungsmodell, bei dem die Beleuchtungsquelle nicht
angrenzend an das Auge ist, oder dergleichen.
-
In
Schritt (d): es sollte ersichtlich sein, dass, wenn das spärliche Ray-Casting von Schritt
(b) ausreichend ist (wie es in dem Fall sein mag, wenn unter Verwendung
von Parallelverarbeitung in der Größenordnung eines Prozessors
pro geworfenem Strahl ausgeführt),
dann kann das ergänzende
Ray-Casting des "SONST"-Subschritts niemals
auftreten. Dies ist nicht besonders problematisch, wenn man die
visuellen und algorithmischen Erwägungen voraussetzt, die das
Verfahren der vorliegenden Erfindung motivieren.
-
Es
sollte auch ersichtlich sein, dass, wenn es eine gleichmäßige Verteilung
von geworfenen Strahlen durch das virtuelle Fenster (in Schritt
(d) oder selbst, wenn direkt von Schritt (b) vorgenommen) gibt und
wenn diese Verteilung eine räumliche
Auflösung im
virtuellen Fenster beschreibt, die höher ist als die räumliche
Auflösung
eines Querschnitts des Voxelraums, dann erwartet wird, dass sich
Schritt (d) auf "Auswählen" und "Interpolieren" im Wesentlichen ohne
jegliches weiteres "Ray-Casting" reduziert.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Um
die Erfindung zu verstehen und um zu sehen, wie sie in der Praxis
durchgeführt
werden kann, wird nun eine bevorzugte Ausführungsform anhand nur eines
nichtbeschränkenden
Beispiels mit Bezug auf die angefügten Zeichnungen beschrieben.
-
1 ist
ein schematisches Diagramm einer Ray-Casting-Geometrie;
-
2 ist
eine schematische Abbildung einer Ray-Casting-Anordnung auf einem
virtuellen Fenster;
-
3 ist
ein schematisches Diagramm einer Suche auf einem Strahl nach einer
Iso-Oberfläche;
-
4 ist
ein schematisches Diagramm eines Strahls, der in der Nähe einer
opazifizierten Iso-Oberfläche
geworfen ist;
-
5 ist ein Flussdiagramm, das den grundsätzlichen
logischen Prozess des vorliegenden Verfahrens zusammenfasst; und
-
6 ist
ein schematisches Diagramm eines Computersystems zum Bilden eines
perspektivischen Rendering von einem Voxelraum.
-
AUSFÜHRLICHE BESCHREIBUNG EINER
BEVORZUGTEN AUSFÜHRUNGSFORM
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Bilden eines hochraumauflösenden perspektivischen
Rendering von einem niedrigraumauflösenden Voxelraum. (Man wende
sich 1 zu, die ein schematisches Diagramm einer Ray-Casting-Geometrie
ist. Diese Geometrie ist eine typische Geometrie, die in vielen
Ausführungsformen
der vorliegenden Erfindung verwendet wird.) Das Verfahren umfasst
die vier Schritte:
- (a) Initialisieren eines
virtuellen Fensters (1) von Bildpunkten vorbestimmter Auflösung (2)
(3), und Platzieren des virtuellen Fensters in dem oder
in der Nähe
des Voxelraums (4). Diese Bildpunkte sind logische Speicherelemente,
die Koordinaten oder Gebieten des virtuellen Fensters entsprechen.
Normalerweise gibt es eine einfache und direkte Transformation von
der Geometrie der Bildpunkte des virtuellen Fensters zu einem Anzeigegerät (z.B.
CRT, LCD, Plotter usw.).
- (b) Von einem vorbestimmten Ausgangspunkt (5): spärliches
Ray-Casting einer Mehrzahl von Vektoren (6) (7)
durch das virtuelle Fenster in den Voxelraum. (Man wende sich 2 zu,
die eine schematische Abbildung einer Ray-Casting-Anordnung auf
einem virtuellen Fenster ist. Z.B. werden zuerst Strahlen durch
die mit "X" gekennzeichneten
Bildpunkte geworfen, dann werden Strahlen durch die mit "0" gekennzeichneten Bildpunkte geworfen,
und schließlich
werden Strahlen für
die ungekennzeichneten Bildpunkte geworfen oder interpoliert – wie in
Schritt (d) unten.)
- (c) (Man wende sich nun 3 zu, die
ein schematisches Diagramm einer Suche auf einem Strahl für eine Iso-Oberfläche ist)
Für jeden Ray-Casting-Vektor,
der bisher keinen zugeordneten Visualisierungswert aufweist, und
darin, für jede
Position in einer schrittabhängigen
Reihe von Positionen auf dem Vektor (z.B. (8) (9)
(10)), und darin, in einer Positionsanordnung von vom Ausgangspunkt
bis zum Bildpunkt, und darin, bis ein akkumulierter Transparenzwertschwellenwert
erreicht ist, oder bis ein zuletzt verfügbares Voxel, das sich mit
dem Vektor schneidet, erreicht ist, – ganz gleich was eher ist,
Berechnen eines Visualisierungswerts und Speichern dieses Visualisierungswerts
in dem entsprechenden Bildpunkt des Vektors; durch: ERSTENS: Interpolieren
von Werten von nahegelegenen Voxeln in einem interpolierten Voxelwert
für die
Position (z.B. von Voxeln in der Nachbarschaft von Position (10)
auf dem Vektor); ZWEITENS: Transformieren des interpolierten Voxelwerts
in einen abgeleiteten Visualisierungswert und Transparenzwert; und
DRITTENS: Verwenden einer vorbestimmten Auswahlregel, Akkumulieren
des abgeleiteten Visualisierungswerts mit dem Wert, der gegenwärtig in
dem entsprechenden Bildpunkt ist.
- (d) Bis jeder Bildpunkt einen zugeordneten Visualisierungswert
aufweist: Auswählen
eines Bildpunkts (P) mit der Initialisierung von Schritt (a), und
WENN im Wesentlichen nächste
Bildpunkte zu dem ausgewählten
Bildpunkt (P) berechnete Visualisierungswerte aufweisen, die statistisch homogen
sind, DANN Interpolieren eines Visualisierungswerts von diesen im
wesentlichsten nächsten
Bildpunkten, und Zuweisen des interpolierten Visualisierungswerts
zum ausgewählten Bildpunkt
(P), SONST Ray-Casting eines Vektors durch den ausgewählten Bildpunkt
(P), und Zuweisen eines Visualisierungswerts zu dem ausgewählten Bildpunkt
(P) unter Verwendung von Schritt (c). Entsprechend vielen Voxelraum-Renderinganwendungen
wird eine statistische Homogenität
in Bezug zu berechneten Werten, die in Bildpunkten gespeichert sind,
oder in Bezug zu Tiefenfaktoren, die damit verbunden sind, gemessen.
(In diesem Kontext beziehen sich "Tiefenfaktoren" auf den Abstand vom Auge zur Position
auf dem Strahl, bei der das Ray-Casting aufgrund eines Erreichens
des Transparenzwertschwellenwerts oder Erreichens des Endes des
Voxelraums beendet wurde.)
-
Gemäß der bevorzugten
Ausführungsform des
Verfahrens der vorliegenden Erfindung wird eine nächste Position
in Schritt (c) in der (transformierten – siehe Schritt (c) "ZWEITENS") schrittabhängigen Reihe
von Positionen entlang dem Vektor unter Verwendung einer variablen
Schrittgröße von einer
gegenwärtigen
Position ausgewählt;
und die variable Schrittgröße hängt von
einer zugeordneten Transparenz für
den Transparenzwert der gegenwärtigen
Position ab. Für
die meisten Anwendungen erhöht
sich die Schrittgröße mit der
Transparenz. Nichtsdestoweniger kann es Anwendungen geben, bei denen
die Visualisierung der transparenten Teile des transformierten Voxelraums
der wichtige Aspekt des Rendering ist.
-
Gemäß den meisten
Ausführungsformen
der vorliegenden Erfindung ist die Schrittgröße von der gegenwärtigen Position
zur nächsten
Position niemals größer als
ein Voxelquerschnitt für
den Voxelraum. Dies bewahrt, dass die endgültige visuelle Qualität des Bildes
(das in den Bildpunkten des virtuellen Fensters zur etwaigen Anzeige
auf einem Anzeigegerät
von Medien eingefangen ist) nicht geringer ist, als die räumliche
Auflösung
des Voxelraums.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist eine erste gegenwärtige Position (der transformierten
schrittabhängigen
Reihe von Positionen) entlang dem Vektor an dem Bildpunkt, der dem
Vektor entspricht. Dies ist äquivalent dazu,
dass jeglicher Teil des Voxelraums verworfen wird, der sich zwischen
dem Ausgangspunkt und dem virtuellen Fenster befindet. Gemäß der bevorzugten
Ausführungsform
ist die erste gegenwärtige Position
am Auge (Ausgangspunkt).
-
Gemäß der bevorzugten
Ausführungsform der
vorliegenden Erfindung wird jede nächste Position (der transformierten
schrittabhängigen
Reihe von Positionen) überprüft, so dass,
WENN eine (interpolierte) Voxelwert-Klassen-Iso-Oberfläche (wie bisher definiert)
entlang dem Vektor zwischen der nächsten Position und der gegenwärtigen Position
vermöge der
Anzeige, dass der Transparenzwert der nächsten Position kleiner ist
als derjenige der gegenwärtigen Position,
entdeckt worden ist, DANN mindestens eine Position zwischen der
gegenwärtigen
und nächsten
Position untersucht wird, um eine höhere Raumauf lösungspositionierung
für die
Iso-Oberfläche
zu liefern. Z.B. befinden sich in der Reihe von Positionen auf dem
geworfenen Strahl in 3 die Positionen (11)
und (12) auf entgegengesetzten Seiten einer Iso-Oberfläche (13).
Wenn der berechnete Visualisierungswert für die Position (12)
größer ist
als derjenige, der an der Position (11) berechnet ist, dann
ist der der Vorderseite gegenüberliegende
Teil der Iso-Oberfläche
durch den geworfenen Strahl durchquert worden. Dies bildet die Detektion
einer Klassen-Iso-Oberfläche.
-
Ein
Fortfahren (z.B. mit einer Suche) zurück, um eine Position (14)
zu überprüfen, und
vorwärts
zu einer Position (15), erhöht die Genauigkeit des Beitrags
durch die Iso-Oberfläche
zum Visualisierungswert. Formeller angegeben, zwischen erstens der mindestens
einen Position und zweitens entweder der gegenwärtigen oder nächsten Position
wird eine weitere mindestens eine Position untersucht, um ein höherraumauflösendes Positionieren
für die Iso-Oberfläche zu liefern.
Weiter werden weitere Untersuchungen von Positionen ausgeführt, bis
eine vorbestimmte Genauigkeit beim Lokalisieren der detektierten
Iso-Oberfläche
erzielt wird.
-
Gemäß einer
alternativen Ausführungsform der
vorliegenden Erfindung wird jede nächste Position (der transformierten
schrittabhängigen
Reihe von Positionen) überprüft, so dass,
WENN eine Klassen-Iso-Oberfläche
entlang dem Vektor zwischen der nächsten Position und der gegenwärtigen Position vermöge der Anzeige,
dass der Transparenzwert der nächsten
Position kleiner ist als derjenige der gegenwärtigen Position, detektiert
worden ist, DANN eine Position zwischen der gegenwärtigen und
nächsten Position
als die Stelle für
die detektierte Iso-Oberfläche zugewiesen
wird.
-
Eine
andere fakultative Verbesserung, die auf Ausführungsformen angewandt wird,
in denen Iso-Oberflächen
detektiert werden, bezieht sich auf einen Visualisierungswert für die detektierte Iso-Oberfläche, wobei
sie auf den zugeordneten Bildpunkt des Vektors angewandt wird (durch
Auffinden einer Normalen (25) auf die Iso-Oberfläche (26)
am Vektorschnittpunkt oder auf äquivalente
Weise), wobei ein angrenzender Gradient zur Vektor-Iso-Oberfläche-Schnittpunktstelle
oder von nahegelegenen Elementen des Schnittpunkts verwendet wird.
Dies wird angewandt durch: Berechnen eines augenblicklichen Oberflächenbeleuchtungsbeitrags
zum kumulativen Visualisierungswert, und Akkumulieren dieses Oberflächenbeleuchtungsvisualisierungswerts
im Bildpunkt. Der Oberflächenbeleuchtungsbeitrag
ist der Visualisierungswert an der Schnittpunktposition, multipliziert
mit dem Cosinus des Winkels (27), der durch den Vektor
und die Normale auf die Iso-Oberfläche an dieser Stelle (28)
gebildet wird; und Multiplizieren von diesem mit der kumulativen
Transparenz (akkumuliert in dem zugeordneten Bildpunkt) im Quadrat.
-
Gemäß der bevorzugten
Ausführungsform der
vorliegenden Erfindung wird ein interpolierter Voxelwert für eine Position
entlang den Vektorfront-nahegelegenen Voxeln berechnet: unter Verwendung einer
kubischen Interpolation für
eine Position in der Nähe
zum Ausgangspunkt oder unter Verwendung einer linearen Interpolation
für eine
Position weit vom Ausgangspunkt oder unter Verwendung einer abstandsabhängigen abgestuften
Mischung von kubischer und linearer Interpolation für eine Position
eines vorbestimmten Zwischenabstands vom Ausgangspunkt. Dies ist
die bevorzugte Ausführungsform,
da die Berechnungen einfach sind, die Ergebnisse glatt und visuell
kontinuierlich sind und die Gewichtung von algorithmischen Mühen eine
hohe Genauigkeit für
nahe Positionen zum Auge ist, mit einer glatten Abnahme von Genauigkeit,
wenn die Position entfernter vom Auge ist. Äquivalent, jegliche Interpolationsfunktion
ist akzeptabel, die von einer Genauigkeit hoher Ordnung für nahe Positionen
zu einer Genauigkeit niedriger Ordnung für eine entferntere Position
glatt verläuft.
-
Es
sollte ersichtlich sein, dass Transparenzwerte einheitsnormiert
sind ("spezifische
Transparenz"). Mit
anderen Worten bezeichnen die Transparenzwerte an jeder Stelle die
Transparenz entsprechend einer "Platte" einer Dickeneinheit.
Normalerweise ist die Schrittgröße nicht
von einer Längeneinheit.
Deshalb wird, um die Transparenz für das Volumen, das durch diesen
Schritt (Intervall) durchquert wird, zu berechnen, der einheitsnormierte
Transparenzwert mit der tatsächlichen
Schrittgröße potenziert.
Akkumulieren eines Transparenzwerts in einem Bildpunkt erfolgt durch:
Multiplizieren des Transparenzwerts des Bildpunkts mit dem Transparenzwert für das Intervall.
-
Gemäß der vorliegenden
Erfindung umfasst die vorbestimmte Auswahlregel eines Akkumulierens in
Schritt (c) eine Vorderseitenoberflächendetektion und eine Oberflächenbeleuchtung.
Weiter wird gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung ein Auswählen einer nächsten Position
in der schrittabhängigen
Reihe von Positionen mit einem Opazifizierungsprozess koordiniert.
-
Gemäß der bevorzugten
Ausführungsform der
vorliegenden Erfindung sind Klassen-Iso-Oberflächen opazifiziert, um eine
höhere
Detektionswahrscheinlichkeit zu ermöglichen. (Man wende sich 4 zu,
die ein schematisches Diagramm eines in der Nähe einer opazifizierten Iso-Oberfläche geworfenen
Strahls ist.) Diese Opazifizierung wird durch Strecken der Intervalle,
die die Klassen definieren, ausgeführt, wobei die opakeren Klassen
Vorrang einnehmen. Dies weist die Wirkung auf, dass die Iso-Oberflächen von
ihrer tatsächlichen
Stelle auswärts
(um wenigeropake Gebiete einzuschließen) verschoben (aufgebläht) werden.
Die Iso-Oberflächen
(16) sind in expandierte Oberflächen-"Puffer", die durch die Iso-Oberfläche (17)
begrenzt sind, opazifiziert worden. Auf dem geworfenen Strahl (6)
erscheinen die Schritte (20), (21) und (22)
bei gleichmäßigen Intervallen
entlang dem Strahl. An der Position (22) wird wegen der
Opazifizierung eine Opazitätszunahme
detektiert. Deshalb wird die Schrittgröße zu (23) verringert,
und es ist wahrscheinlicher, dass die tatsächliche Klassen-Iso-Oberfläche (16) detektiert
wird. Wenn die Opazifizierung nicht ausgeführt würde, dann würde der Schritt nach (22)
an der Position (23A) sein. Da sich die Position (23A)
in einem Gebiet von Transparenz wie demjenigen der Position (21)
befindet, würde
die Iso-Oberfläche
ohne die Opazifizierung nicht entdeckt worden sein.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung umfasst die vorbestimmte Auswahlregel
eines Akkumulierens in Schritt (c) eine Volumenbeleuchtung (siehe 5).
-
Gemäß weiteren
Ausführungsformen
der vorliegenden Erfindung wird eine Ausführung des Verfahrens parallel
bewerkstelligt. Gemäß einer
Ausführungsform
wird der Schritt (c) durch Verarbeiten für den "jeweiligen Ray-Casting-Vektor von noch
weiteren als von einem von Ray-Casting-Vektoren, der das Verarbeiten
von Schritt (c) erfordert, parallel ausgeführt. Dies kann zu einem Zuteilen
eines Prozessors (zum Bewerkstelligen des Algorithmus von Schritt
(c)) zu jedem geworfenen Strahl führen. Gemäß einer anderen Ausführungsform
wird der Schritt (d) parallel ausgeführt; durch Verarbeiten für den jeweiligen
Ray-Casting-Vektor
von noch weiteren als von einem von Ray-Casting-Vektoren, der das
Verarbeiten von Schritt (d) erfordert. Desgleichen kann dies zu
einem Zuteilen eines Prozessors (zum Bewerkstelligen des Algorithmus
von Schritt (d)) zu jedem geworfenen Strahl führen.
-
Gemäß der bevorzugten
Ausführungsform der
vorliegenden Erfindung wird in Schritt (d) ein "Auswählen" von Bildpunkten
geordnet, um geschachtelte Niveaus von Auflösung an dem virtuellen Fenster
fortschreitend zu erzeugen. Dieses Auswählen kann wie in 2 beschrieben
sein oder in Viererbaumweise oder durch simulierten Zoom (oder Panoramieren)
oder dergleichen erfolgen.
-
Gemäß der bevorzugten
Ausführungsform der
vorliegenden Erfindung ist jeder Transparenzwert einem Visualisierungswert
zur Darstellung auf einem Grafikanzeigegerät zugeordnet. Weiter erfolgt
die Darstellung für
zugeordnete Farbe oder Graustufen.
-
Im
Allgemeinen ist die vorliegende Erfindung zur Anpassung an zahlreiche
geometrische Vertauschungen zugänglich.
Gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung ist ein mittleres Oberflächengebiet
des virtuellen Fensters senkrecht zu einem Orientierungsvektor vom
Ausgangspunkt platziert; und der Orientierungsvektor ist ein Mittelwert
der Mehrzahl von Vektoren. Weiter ist das virtuelle Fenster plan.
Alternativ ist das virtuelle Fenster gekrümmt oder krumm. Desgleichen
sind die Bildpunkte vorzugsweise im virtuellen Fenster als ein gleichmäßig beabstandetes
rechteckiges Gitter angeordnet. Jedoch sind alternativ die Bildpunkte
im virtuellen Fenster unter Verwendung von kreisförmigen Koordinaten,
elliptischen Koordinaten oder einer anderen Kegelprojektion von
Koordinaten angeordnet.
-
Das
Verfahren der vorliegenden Erfindung gemäß den bevorzugten und den grundsätzlichen Ausführungsformen
ist auf Rendering des Voxelraums gerichtet, der Daten enthält, die
von einem Computertomographie(CT)scan, Spinresonanzbild (MRI), einem
Ultraschallscan, einem Kernspinresonanz(NMR)scan, einer geophysikalischen
Vermessung, einer meteorologischen Vermessung, einer wissenschaftlichen
Simulation, einer Animation von einem Modell mit mehr als zwei Dimensionen
oder einer Menge von simultanen Gleichungen abgeleitet sind.
-
Demgemäß wird in
der bevorzugten Ausführungsform
der vorliegenden Erfindung das virtuelle Fenster; das berechnete,
interpolierte oder akkumulierte Visualisierungswerte in den Bildpunkten
desselben gespeichert aufweist; auf einem Anzeigegerät gerendert.
-
(Man
wende sich nun 5 zu, die ein Flussdiagramm
ist, das den grundsätzlichen
logischen Prozess des vorliegenden Verfahrens zusammenfasst.) Die
folgenden Anmerkungen sind zum weiteren Verstehen der detaillierten
Ausführung
der vorliegenden Erfindung hilfreich:
- • "Durchgang" bezeichnet die Iterations-"Phase", wie von spärlich geworfenen
Strahlen zu höherauflösendem Ray-Casting
gemessen (oder eine Interpolation im virtuellen Fenster), um ein
Auffüllen
des virtuellen Fensters zu vervollständigen (wie in Schritt (d)) – (siehe
auch 2).
- • "Bildpunkt" bezeichnet einen
oder mehrere Datenspeicher-"Werte", entsprechend einer
Stelle oder einem Gebiet des virtuellen Fensters.
- • "CT" bezeichnet eine
kumulative Transparenz.
- • "(R, G, B)" bezeichnet die rote,
grüne und
blaue Komponente des Visualisierungswerts.
- • "T" bezeichnet einen Transparenzwert.
- • "X+ = Y": bezeichnet X wird
durch X + Y ersetzt.
- • "X* =
Y": bezeichnet X
wird durch X*Y ersetzt.
-
Das
Verfahren der vorliegenden Erfindung ist mit einem gewissen Grad
an Besonderheit im Hinblick auf eine Anordnung von Schritten, Subschritten, Bedingungen, Äquivalenten
und dergleichen beschrieben worden. Dieser Grad an Besonderheit
soll den Bereich oder den Geist der vorliegenden Erfindung nicht
beschränken
und wird nur dargeboten, um an Fachleute solche Information zu über mitteln,
wie sie notwendig ist, um die vorliegende Erfindung und bereitgestellte
Ausführungsformen
derselben richtig zu würdigen.
-
Die
vorliegende Erfindung betrifft auch ein Computersystem, um ein perspektivisches
Rendering von einem Voxelraum zu bilden. (Man wende sich nun 6 zu,
die ein schematisches Diagramm eines Computersystems zum Bilden
eines perspektivischen Rendering von einem Voxelraum ist.) Dieses System
umfasst:
- • ein
erstes Speichermedium (61), in dem ein Voxelraum gespeichert
oder dargestellt ist;
- • einen
Computerprozessor (62) mit einer Datenkommunikation mit
dem ersten Speichermedium und mit einem zweiten Speichermedium,
und wobei der Prozessor ein virtuelles Fenster von Visualisierungsbildpunkten
von einem Ray-Casting in den Voxelraum bildet, wobei das Bilden
gemäß dem Verfahren
zum Bilden eines hochraumauflösenden
perspektivischen Rendering von einem niedrigraumauflösenden Voxelraum
erfolgt, im Wesentlichen wie vorstehend hierin definiert und veranschaulicht;
und
- • das
zweite Speichermedium (63), in dem das virtuelle Fenster
von Visualisierungsbildpunkten gespeichert oder dargestellt ist.
-
Die
bevorzugte Ausführungsform
der vorliegenden Erfindung betrifft auch ein Erzeugen einer Indexabbildung
der Homogenität
des Voxelraums und ein Konsultieren dieser Indexabbildung, um zu
entscheiden, ob eine Interpolationsberechnung erforderlich ist – als Teil
des Prozesses zum Interpolieren von Werten von nahegelegenen Voxeln
(Schritt "c" ERSTENS). Z.B. wird,
um den Prozess von Ray-Casting (ohne Nachteil an Bildqualität) weiter
zu beschleunigen, ein zusätzlicher
Datentyp verwendet, der als ein BIT-VOLUMEN bezeichnet wird. In
diesem Datentyp gibt es ein einziges Bit, das jedem Voxel entspricht. Es
gibt zwei Variationen, bei denen ein Bit-Volumen verwendet werden
kann, um ein Ray-Casting zu ermöglichen:
1te Variation – Pro Klassendefinition wird
das Bit-Volumen (einmal) hergerichtet, so dass ein Wert von 1 zu
einem Bit die Tatsache anzeigt, dass der eine 4x4x4-Kubus von Voxeln
(der mit dem Voxel entsprechend diesem Bit beginnt und sich zu den
positiven Seiten der x-, y- und z-Achse erstreckt) zu einer einzigen
Klasse gehört.
-
Während eines
Ray-Casting, wenn eine neue Position entlang dem Strahl erreicht
wird, werden die Koordinaten des 4x4x4-Kubus von Voxeln, die für die kubische
Interpolation dieser Position benötigt werden, berechnet. Dann
wird der Wert des Bit im Bit-Volumen, das diesem Kubus entspricht
(mit x bezeichnet), abgefragt.
- a wenn x = 0,
dann schreitet die Interpolation (kubisch oder linear, abhängig vom
Abstand vom Auge, wie oben ausführlich
behandelt) wie gewöhnlich
fort.
- b Sonst (wenn x = 1), dann
i. Wenn die vorherige Position
(deren interpolierter Wert gesucht wurde) auch x = 1 aufwies, dann wird
der vorherig gefundene interpolierte Wert auch als der augenblickliche
interpolierte Wert genommen.
ii. Sonst (wenn die vorherige
Position x = 0 aufwies) wird der Wert der Interpolation als ein
EINZIGES Voxel im 4x4x4-Kubus von Voxeln genommen.
-
Man
beachte, dass der interpolierte Wert falsch ist. Um zu sehen, warum
diese Prozedur richtig arbeitet, beachte man, dass es, damit der
Algorithmus richtig arbeitet (wenn ein Visualisierungswert pro Klasse
konstant ist), für
den verwendeten interpolierten Wert ausreichend ist, um zur korrekten
KLASSE zu gehören.
Sein genauer Wert ist belanglos.
-
Eine
hinreichende Bedingung, die leicht erfüllt wird, für die diese korrekte-Klasse-Eigenschaft
in der oben beschriebenen Prozedur erfüllt ist, ist, dass der interpolierte
Wert immer zwischen dem kleinsten und größten Wert liegt, die als Eingabe
für die
Interpolation verwendet werden. Da eine Klasse durch ein Intervall
definiert ist und wenn sämtliche
Eingaben zur Interpolation zu dem Intervall gehören, dann muss ein interpolierter
Wert, der zwischen der kleinsten und größten Eingabe liegt, auch zu
dem Intervall gehören
und folglich zur selben Klasse gehören.
-
2te Variation – ähnelt im Konzept der 1en Variation – Pro Klassendefinition wird
das Bit-Volumen initialisiert, so dass alle Bits 0 sind. Auf eine ähnliche Weise
zur ersten Variation zeigt ein Wert von 1 zu einem Bit an, dass
bekannt ist, dass der 4x4x4-Kubus von Voxeln, der diesem Bit entspricht,
zu einer einzigen Klasse gehört.
Ein Wert von 0 zeigt an, dass die Klassensituation im 4x4x4-Kubus
unbekannt ist, oder dass sie nicht zu einer einzigen Klasse gehören. Da am
Anfang nichts bekannt ist, wird das Bit-Volumen zu einer Konstanten 0
initialisiert.
-
Während eines
Ray-Casting werden, wenn eine neue Position entlang dem Strahl erreicht
wird, die Koordinaten des 4x4x4-Kubus von Voxeln, die für die kubische
Interpolation dieser Position benötigt werden, berechnet. Dann
wird der Wert des Bit im Bit-Volumen, das diesem Kubus entspricht
(mit x bezeichnet), abgefragt.
- a. Wenn x =
0, dann schreitet die Interpolation (kubisch oder linear, abhängig vom
Abstand vom Auge, wie oben ausführlich
behandelt) wie gewöhnlich
fort. Wenn eine kubische Interpolation ausgeführt wird, dann wird der geeignete
4x4x4-Kubus von Voxeln, der für
die Interpolation verwendet wird, kontrolliert, und wenn man findet,
dass er zu einer einzigen Klasse gehört, wird das entsprechende
Bit im Bit-Volumen
auf 1 gesetzt. Man beachte, dass, da diese Voxels in der Interpolation sowieso
verwendet werden, diese Kontrolle keinen großen Overhead mit sich bringt.
- b. Wenn x = 1, dann schreitet der Algorithmus genau wie in Weise
1 fort.