Titel
Verfahren zur räumlichen Darstellung
Gebiet der Erfindung Die Erfindung betrifft ein Verfahren zur räumlichen Darstellung einer Szene auf der Grundlage von mehreren unterschiedlichen Ansichten An der Szene, mit n = 0,...,N-1 und N = 2 oder N > 2 der Gesamtzahl der Ansichten, auf einen Raster aus Bildelementen.
Stand der Technik
Während es im Stand der Technik eine Vielzahl verschiedener Verfahren zur Darstellung räumlicher Bilder gibt, beruht eines der wesentlichen Verfahren, das das Betrachten von räumlichen Bildern ohne Hilfsmittel erlaubt, darauf, die Ansichten An entsprechend einer vorgegebenen Kombinationsvorschrift für die räumliche Darstellung zu einem Kombinations- bild, welches auf dem Raster aus Bildelementen dargestellt wird, zu kombinieren, wobei von jeder der Ansichten An entsprechend der Kombinationsvorschrift auf dem Raster aus Bildelementen nur ein Teil von der jeweiligen Ansicht An zugeordneten Bildpixeln bn(xk,yι) dargestellt wird. Für die Ansichten An werden dabei Ausbreitungsrichtungen vorgegeben, so daß das linke Auge eines Betrachters eine andere Auswahl der Ansichten An als das rechte Auge des Betrachters wahrnimmt, wodurch ein räumlicher Seheindruck entsteht.
Solche Kombinationsvorschriften sind beispielsweise in der DE 100 03 326 A1 beschrieben. Dabei werden die Kombinationsvorschriften immer in Abhängigkeit von den Eigenschaften des Bildschirms, der für die räumliche Darstellung geeignet sein muß, vorgegeben. Bei- spielsweise kann der Bildschirm mit einem speziellen Filterarray ausgestaltet sein, welches aus transparenten und opaken Filterelementen zusammengesetzt ist, so daß im Zusammenspiel mit der Kombinationsvorschrift die Ausbreitungsrichtungen für die Ansichten vorgegeben werden.
Ein wesentlicher Aspekt solcher Verfahren ist dabei die Erzeugung der unterschiedlichen Ansichten, die zu unterschiedlichen Betrachtungspositionen korrespondieren. Während solche Ansichten bei klassischen Filmen, die beispielsweise mit Stereokameras oder Kameras, die an den entsprechenden Betrachtungspositionen positioniert sind, digital aufgenommen und kombiniert werden können, und es dabei auf die Zeit, die dazu verwendet wird, nicht unbedingt ankommt, da der Betrachter ein fertiges, nicht mehr veränderbares und insofern statisches Endprodukt zu sehen bekommt, so erweist sich die Erzeugung der verschiedenen Ansichten bei computeranimierten Objekten, wie sie beispielweise bei Navigationsgeräten oder Computerspielen verwendet werden, mit steigender Auflösung der Bildschirme und höherer Anzahl von Ansichten zunehmend als der die Geschwindigkeit senkender Zeitfaktor, der trotz gestiegener Leistungsfähigkeit von Graphikkarten den Ablauf der Bildfolgen - die in der Regel erst durch Interaktion mit den Betrachter regeneriert werden müssen - stört und beispielsweise zu Ruckein führen kann.
Dabei sind im Stand der Technik verschiedene Verfahren bekannt, ausgehend von einer Quellansicht Q die Ansichten zu erzeugen. Diesen Verfahren ist gemeinsam, daß zunächst eine in eine Projektionsfläche P(x,y) mit einer horizontalen Koordinate x und einer vertikalen Koordinate y projizierte Quellansicht Q bereitgestellt wird, welcher eine Ursprungsbetrach- tungsposition Bq zugeordnet ist. Die Quellansicht Q ist dabei aus Quellpixeln b^x,,^), mit Zeilen j = 1 ,...,J und Spalten i = 1 ,...,l, zusammengesetzt. In jedem Quellpixel bq(x,,y,) ist dabei mindestens eine Farbinformation gespeichert. Außerdem wird auch eine auf die Projektionsfläche bezogene Tiefenkarte T bereitgestellt, welcher ebenfalls die Ursprungsbetrachtungsposition Bq zugeordnet ist. Die Tiefenkarte ist aus Tiefenpixeln t(xp,yr) mit Zeilen r = 1 ,...,R und Spalten p = 1 ,...,P zusammengesetzt. In jedem Tiefenpixel t(xp,yr) ist mindestens eine Tiefeninformation gespeichert, wobei die Tiefeninformation einem senkrechten Abstand zur Projektionsfläche P(x,y) entspricht. Auch weitere Informationen, die die Darstellung betreffen, können in den Quell- bzw. Tiefenpixeln gespeichert sein. Die Ursprungsbetrachtungsposition Bq wird dabei auch einer ersten Ansicht A0 zugeordnet. Sie wird dabei häufig so gewählt, daß sie der Projektionsfläche zentral und mittig gegenüberliegt und ein Strahl von der Betrachtungsposition Bq zur Projektionsfläche, der mit dieser eine senkrechte Linie einschließt, also in etwa das Mittelpixel der Quellansicht Q durchstößt. Ausgehend von dieser Ursprungsbetrachtungsposition Bq werden durch horizontale Verschiebung dieser Position N-1 weitere, paarweise voneinander verschiedene und zu übrigen Ansichten Am, mit m = 1 N-1 , korrespondierende Betrachtungspositionen Bm erzeugt. Für alle Ansichten An müssend Farbinformationen für Bildpixel bn(xk,yι) bestimmt werden, mit Zeilen I = 1 ,...,L und Spalten k = 1 ,...,K.
Im klassischen Ansatz, beispielsweise in der nicht vorveröffentlichten deutsche Anmeldung Nr. 10 2006 005 004 wird dabei eine hier zur Quellansicht Q identische Ursprungsansicht A0 (N-1 )-fach vervielfältigt. Entsprechend der neuen Betrachtungspositionen und der Tiefeninformationen der der Ansicht zugrunde liegenden Primitive können dann die Ansichten be- rechnet werden, wobei verfahrensbedingt jeweils alle Bildelemente bm(xk,yι) neu bestimmt werden.
Ein anderes Verfahren ist in der DE 696 21 778 T2 beschrieben. Ausgehend von einer Ursprungsansicht A0 wird jedes Pixel dieser Ansicht zur Erzeugung der übrigen Ansichten pro- portional zu seiner Tiefeninformation horizontal nach links oder rechts verschoben, es handelt sich um eine sogenannte parallaktische Pixelverschiebung. Es ergibt sich also eine perspektivisch verschobene Ansicht, entstehende Löcher werden durch Interpolation gefüllt. Die Pixelverschiebung muß für jede Ansicht separat ausgeführt werden.
Bei allen Ansätzen steigt der Aufwand mit der Anzahl der Ansichten stark an. Andererseits ist die Verwendung einer hohen Zahl von Ansichten eigentlich wünschenswert, da dies auch einen qualitativ hohen räumlichen Seheindruck zur Folge hat.
Aus einem anderen Bereich der Computergraphik ist das Verfahren des sogenannten relief mapping bekannt. Mit der Anwendung dieses Verfahrens läßt sich ein typisches Artefakt der zweidimensionalen Computergraphik, mit der dreidimensionale Objekte dargestellt werden sollen beseitigen, daß nämlich räumlich scheinende Texturen - also Muster -, mit denen ein computergraphisches Objekt versehen wird, bei genauerem Betrachten nicht räumlich, sondern zweidimensional erscheinen. Wird beispielsweise auf ein computergraphisches Objekt, welches eine Mauer darstellen soll, eine Textur in Form einer Ziegelform aufgebracht, so wirkt die Struktur aus einiger Entfernung tatsächlich wie eine echte Ziegelmauer, verlegt man jedoch die Betrachtungsposition ganz dicht und möglichst in einem schrägen Winkel zur Mauer, dann erscheint die Textur als das was sie ist, nämlich quasi als zweidimensionales Abziehbild ohne jede räumliche Kontur. Mit dem Verfahren des relief mapping, im folgenden als Reliefkartenerzeugung bezeichnet, wird es möglich, diese Artefakte zu beseitigen und beispielweise der oben beschriebenen Ziegelmauer eine tatsächlich räumlich wirkende Struktur zu verpassen, die diesen Effekt auch aus ungünstigen Betrachtungspositionen beibehält. Das Verfahren wird in der Literatur ausführlich beschrieben, beispielsweise in dem Artikel „Relief Texture Mapping" von M. Oliveira, G. Bishop und D. McAllister, erschienen in Proceedings of SIGGRAPH 2000, Seite 359-368, und in dem Artikel „Real-Time Relief Mapping on Arbitrary Polygonal Surfaces" von F. Policarpo, M. Oliveira und J. Comba, erschienen in Proceedings of ACM Symposium on Interactive 3D Graphics and Games 2005, ACM Press, Seite 155-162. Auf die Offenbarung der genannten Dokumente wird hiermit explizit
- A -
Bezug genommen. Das Reliefkartenverfahren arbeitet ähnlich wie sogenannte Ray-Tracing- Verfahren und dient, wie schon gesagt, dazu, den räumlichen Eindruck zweidimensional dargestellter Objekte echter erscheinen zur lassen. Der Hauptunterschied zum Ray-Tracing- Verfahren ist jedoch, daß ersteres den Schnittpunkt eines Strahls mit den geometrischen Objekten der 3D-Szene bestimmt, um das Bild einer 3D-Szene zu berechnen, während das relief mapping ausschließlich den Schnittpunkt mit den Tiefenwerten eines bereits komplett berechneten Bildes bestimmt, um die Position von Bildelementen nachträglich zu verändern. Es wäre sogar denkbar, daß das relief mapping auf ein Bild angewendet wird, welches vorher mittels Ray Tracing berechnet wurde, da auch hier jedem Pixel ein Tiefenwert zugeord- net wurde. Eine Anwendung dieses Verfahrens in bezug auf eine tatsächlich räumliche Darstellung ist nicht bekannt.
Beschreibung der Erfindung Ausgehend von diesem Stand der Technik liegt der Erfindung die Aufgabe zugrunde, Verfahren der eingangs beschriebenen Art dahingehend zu verbessern, daß auch für eine Vielzahl verschiedener Ansichten eine schnelle Berechnung der Kombinationsbilder und in Konsequenz eine ruckelfreie Darstellung in Echtzeit möglich werden.
Diese Aufgabe wird bei einem Verfahren der eingangs beschriebenen Art dadurch gelöst, daß anhand der Tiefenkarte eine Reliefkarte Z(x,y) der Ansicht erstellt wird, wobei Z(x,y) eine stetige Funktion in x und y ist, und die Reliefkarte Z(x,y) mit der Quellansicht Q verknüpft wird. Dies geschieht mittels des oben beschriebenen Verfahrens der Reliefkartenerzeugung. Ist die Reliefkarte Z(x,y) erstellt, können die Farbinformationen für Bildpixel bn(xk,yι) der Ansichten An bestimmt werden, indem (i) ein Strahl entlang einer Betrachtungsrichtung von der jeweiligen Betrachtungsposition Bn zum betreffenden Bildpixel bn(xk,yι) erzeugt und über dieses hinaus in die Tiefe verlängert wird, (ii) der der Betrachtungsposition Bn nächst- liegende Schnittpunkt des Strahls mit der Reliefkarte Z(x,y) bestimmt wird, (iii) das dem Schnittpunkt nächstliegende Quellpixel bq(xs',y,) bestimmt wird, und (iv) dem betreffenden Bildpixel bn(xk,yι) die Farbinformation des Bildpixels bq(xs',y,) zugeordnet wird. Dabei ist wesentlich, daß die Farbinformationen nicht für alle Bildpixel der Ansichten bestimmt werden. Vielmehr werden die Farbinformationen für die Ansichten An nur für die entsprechend der Kombinationsvorschrift darzustellenden Bildpixel bn(xk,yι) bestimmt.
Bezogen auf das Raster xk, y,, welches den Bildpixeln des Kombinationsbildes zugrunde liegt, heißt das, daß für jedes Paar (k,l) entsprechend der Kombinationsvorschrift zunächst bestimmt wird, aus welcher Ansicht die an dieser Stelle im Kombinationsbild darzustellende Information stammt. Die Bestimmung der darzustellenden Farbinformation erfolgt dann an-
hand der zu der betreffenden Ansicht korrespondierenden Betrachtungsrichtung wie oben beschrieben, und zwar nur für die betreffende Ansicht. Die Informationen der Ansichten, die an der Rasterposition xk, y,, nicht dargestellt werden, werden nicht bestimmt - im Gegensatz zum Stand der Technik, wo sich diese unnötigen Operationen verfahrensbedingt nicht ver- meiden lassen. Es wird also für jede Ansicht An immer nur der Teil der Bildpixel bn(xk,yι) bestimmt, der entsprechend der Kombinationsvorschrift auch tatsächlich dargestellt wird. Das Verfahren der Reliefkartenerzeugung wird also nicht auf jede der Ansichten vollständig angewandt, sondern nur selektiv für die in jeder Ansicht jeweils sichtbaren Bildpixel, also in Abhängigkeit von der Kombinationsvorschrift. Dabei ist es durchaus auch möglich, daß in einem Kombinationsbild an einer Stelle (xk,yι) nicht nur die Farbinformation einer der Ansichten dargestellt wird, sondern auch von zwei oder mehreren. Dies hängt von der Kombinationsvorschrift ab.
Für den Fall, daß die Quellansicht Q und / oder die Tiefenkarte T eine geringere oder größe- re Auflösung als die Ansichten An aufweisen, daß also R ≠ L und / oder P ≠ K ist, bzw. J ≠ L und / oder I ≠ K ist, wird eine Skalierung der Tiefenkarte T bzw. der Quellansicht Q mit entsprechenden Skalierungsfaktoren vorgenommen. Diese Skalierungsfaktoren sind für die Tiefenkarte T in der Breite Sτ x = K/P und in der Höhe Sτ y = L/R. Für die Skalierung der Quellansicht Q lauten die Skalierungsfaktoren entsprechend für die Breite SQ X = K/l und für die Höhe SQ y = L/J. Für den Fall, daß die Auflösungen gleich sind, muß dieser Schritt nicht unbedingt übersprungen werden, vielmehr kann auch eine Multiplikation mit dem Faktor 1 erfolgen. Die Skalierungsfaktoren werden auf die Tiefenpixel t(xp,pr) und / oder die Quellpixel bq(x„y,) angewendet, so daß diese gegenüber den Bildpixeln bn(xk,yι) gestreckt oder gestaucht werden. Ist beispielsweise die Auflösung der Quellansicht und der Tiefenkarte so- wohl in x- als auch in y-Richtung nur halb so hoch wie die Auflösung des Bildschirms, auf dem die Ansichten An dargestellt werden sollen und dessen Auflösung entsprechend sie erzeugt werden sollen, so werden Quellansicht Q und Tiefenkarte T gestreckt, so daß jedes Quellpixel und jedes Tiefenpixel vier Bildpixel abdeckt, was die Zuordnung von Bildpixeln zu Quellpixeln aus verschiedenen Betrachtungspositionen beeinflußt.
Dabei ist es möglich, daß Quellansicht Q und Tiefenkarte T in verschiedenen Auflösungen vorliegen, wenn sie beispielsweise getrennt voneinander erzeugt werden. In der Regel werden aber beide die gleiche Auflösung aufweisen, so daß zu jedem Quellpixel genau ein Tiefenpixel korrespondiert und umgekehrt. Die Tiefenkarte T kann dann auch als weiteres Feld mit einem eigenen Index in einer Matrix, in der auch die Farbinformationen der Quellansicht gespeichert sind, abgelegt werden, sie kann aber auch als selbständiges, unabhängiges Feld behandelt werden, in dem sie beispielsweise in einem durch einen Treiber manipulierbaren Tiefenpuffer abgelegt wird.
Ist die Auflösung der Tiefenkarte, der Quellansicht und der Ansichten An identisch, so erfolgt keine Skalierung bzw. eine Skalierung mit dem Faktor 1. Bei einer Streckung der Quellansicht und einer an die Quellansicht angepaßten Tiefenkarte lassen sich Farbartefakte besei- tigen, die durch ein Zusammenspiel der speziellen Filterstruktur für die räumliche Darstellung mit dem Bildschirm, in dem beispielsweise Pixel aus nebeneinander liegenden Subpixeln der Farben Rot, Grün und Blau zusammengesetzt sind, entstehen. Dieses Zusammenspiel führt bei der räumlichen Darstellung unter Umständen zum Auftreten von bunt schillernden Farbsäumen an Farbkanten, d.h. an Kanten, bei denen die Farben wechseln.
Andererseits lassen sich auch umgekehrt das Quellbild und die Tiefenkarte stauchen, wenn deren Auflösung höher als die Auflösung des zur Darstellung verwendeten Bildschirms ist. Dies kann insbesondere bei Bildschirmen mit vollfarbigen Pixeln oder bei monochromatischen Bildschirmen von Vorteil sein, weil auf diese Weise eine Erhöhung der Tiefenpräzision erreicht werden kann.
Mittels des erfindungsgemäßen Verfahrens erreicht man also, daß der zu treibende Aufwand für die Berechnung des Kombinationsbildes, der im Stand der Technik wesentlich von den Berechnungen im Zusammenhang mit der Erzeugung der Ansichten, dem für jede der An- sichten durchzuführenden sogenannten Rendering dominiert wird, abhängt, im wesentlichen nur noch von der Auflösung des Bildschirms abhängt und nur noch zu einem geringen Teil von der Anzahl der Ansichten. Damit ist es grundsätzlich möglich, beliebig viele Ansichten zu kombinieren, was insbesondere bei großformatigen, hochauflösenden Bildschirmen zu einer deutlichen Qualitätssteigerung des räumlichen Eindrucks führt.
Bei den Bildpixeln bn(xk,yι) kann es sich entweder um Vollpixel oder um Subpixel handeln. Im Falle von Vollpixeln sind jedem Vollpixel Farbinformationen für die Farben Rot, Grün und Blau zugeordnet, im Falle von Subpixeln sind jedem Subpixel Farbinformationen für genau eine dieser Farben zugeordnet.
In einer vorteilhaften Ausgestaltung des Verfahrens werden die Tiefeninformationen der Tiefenkarte T skaliert, so daß die darzustellende Tiefe beispielsweise an einen bestimmten Gerätetyp, aber auch an ein Standard-3D-Volumen angepaßt werden kann, so daß für einen Betrachter immer der maximale räumliche Eindruck entsteht. Diese Skalierung erfolgt nach den folgenden Schritten: In einem ersten Schritt werden eine Ebene mit einer maximalen Tiefe und eine Ebene mit einer minimalen Tiefe festgelegt. Dies erfolgt in bezug auf die Betrachtungsposition Bq, also in der Regel senkrecht zur Projektionsebene P(x,y), wobei grundsätzlich auch andere Perspektiven denkbar sind. Skaliert man den gesamten Tiefen-
raum bzw. den Wertebereich, den die Tiefeninformationen in der Tiefenkarte annehmen können, auf das Intervall zwischen 0 und 1 , so hat die Ebene mit maximaler Tiefe als Tiefeninformation den Wert 1 und die Ebene mit minimaler Tiefe als Tiefeninformation den Wert 0. Üblicherweise wird die Ebene mit minimaler Tiefe alle Quellpixel verdecken, sofern sie nicht in dieser Ebene liegen. Auf der anderen Seite sollte die Ebene mit maximaler Tiefe keine Quellpixel verdecken, sofern nicht Quellpixel auf dieser liegen. Im Regelfall werden jedoch weder auf der Ebene mit minimaler Tiefe noch auf der Ebene mit maximaler Tiefe Quellpixel liegen, so daß der Tiefeneindruck noch nicht optimal ausgenutzt wurde bzw. noch optimiert werden kann. Die Tiefeninformationen bzw. Tiefenwerte der Ebene sind für jeden Punkt in der Ebene identisch.
Im nächsten Schritt werden dann die beiden Ebenen aufeinander zu verschoben und es wird der kleinste Abstand zwischen den beiden Ebenen bestimmt, bei dem die Tiefeninformationen der Tiefenkarte noch sämtlich auf bzw. zwischen diesen Ebenen liegen. Sollte sich bei der Festlegung der Ebenen bereits Tiefeninformationen auf einer der Ebenen gefunden haben, so wird diese Ebene nicht weiter verschoben. Die Verschiebung erfolgt bevorzugt iterativ, wobei die Lage der Ebene in Sprüngen vor und zurück verschoben wird, und als Ausgangspunkt für den nächsten Iterationsschritt im Falle der Ebene mit maximaler Tiefe von den vergangenen beiden Iterationsschritten diejenige ausgewählt wird, die die wenigsten Pixel abdeckt, und im Falle der Ebene mit minimaler Tiefe diejenige für den nächsten Iterationsschritt ausgewählt wird, welche die meisten Pixel abdeckt. Die Ebenen werden dabei durch ihren - einheitlichen - Tiefenwert bzw. ihre einheitliche Tiefeninformation charakterisiert. Auch andere bekannte Iterationsverfahren sind selbstverständlich anwendbar.
Sind die beiden Ebenen so weit verschoben, daß weitere Iterationsschritte keine weitere Verbesserung mehr bringen, ist also der kleinstmögliche Abstand gefunden, so werden die Tiefeninformationen in Abhängigkeit von diesem kleinsten Abstand auf einen vorgegebenen Normabstand skaliert. Beispielsweise kann der Normabstand auf 1 festgelegt werden, und wenn sich alle Tiefeninformationen der Tiefenkarte in einem Bereich von 0,2 bis 0,7 befin- den, kann eine Skalierung auf den Normabstand zwischen 0 und 1 erfolgen, so daß das zur Verfügung stehende 3D-Volumen maximal ausgenutzt wird. Die Skalierung kann dabei abhängig von der Tiefeninformation in der Tiefenkarte sein und muß nicht linear erfolgen.
Die Festlegung der Ebene mit maximaler Tiefe und / oder der Ebene mit minimaler Tiefe im ersten Schritt kann dabei automatisch erfolgen - also beispielsweise bei den Tiefenwerten 0 und 1 - sie kann aber auch manuell erfolgen. Dies ist insbesondere dann von Vorteil, wenn die Festlegung der jeweiligen Ebene aufgrund einer Bewertung anhand des Bildinhalts erfolgen soll, was selbstverständlich aber auch automatisch basierend auf entsprechenden Bild-
auswertungsalgorithmen erfolgen kann. Werden die Ebenen auf diese Weise mit von 0 bzw. 1 verschiedenen Tiefenwerten anfänglich festgelegt, so bekommen alle Tiefenpixel t, deren Tiefeninformationen Werten entsprechen, die vor der Ebene mit minimaler Tiefe bzw. hinter der Ebene mit maximaler Tiefe liegen, jeweils einheitliche Tiefenwerte zugeordnet. Solche Objekte scheinen dann jeweils in einer Ebene vor bzw. hinter dem eigentlichen Volumen, in dem andere Objekte räumlich dargestellt werden, zu liegen und weisen nur eine zweidimensionale Bildstruktur auf.
Der Ablauf der Verfahrensschritte wird bevorzugt durch einen Treiber gesteuert, in den auch manuell eingegriffen werden kann. Bevorzugt erfolgt die Steuerung durch einen auf einer Grafikkarte implementierten Treiber, der auch die Grafikkarte entsprechend ansprechen kann. Auch die Verfahrensschritte werden bevorzugt auf einer Grafikkarte durchgeführt, die eine für solche Prozeßschritte optimierte Verschaltung aufweist.
Der Treiber kann beispielsweise in Abhängigkeit von vorangehend durchgeführten Bearbeitungsschritten entscheiden, welche Tiefenkarte zur Erstellung und Anzeige des räumlichen Bildes benutzt wird, bzw. ob eine solche Tiefenkarte erst erzeugt werden muß, oder ob eine vorhandene Tiefenkarte ergänzt werden muß. Die Tiefenkarte kann dabei insbesondere auch einer Anwendung entnommen werden, beispielsweise einem Computerspiel oder ei- nem Programm zur Darstellung medizinischer Sachverhalte, deren Bildschirmausgabe vom Zweidimensionalen ins Dreidimensionale konvertiert werden soll und bei denen eine Tiefenkarte für die normale zweidimensionale Darstellung berechnet wird um zwischen Objekten im Hinter- und Vordergrund zu unterscheiden.
Es versteht sich, daß die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in den angegebenen Kombinationen, sondern auch in anderen Kombinationen oder in Alleinstellung einsetzbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Kurze Beschreibung der Zeichnungen
Nachfolgend wird die Erfindung beispielsweise anhand der beigefügten Zeichnungen, die auch erfindungswesentliche Merkmale offenbaren, noch näher erläutert. Es zeigen:
Fig.1 einen Überblick über die Zusammenhänge von Projektionsfläche, Ursprungsansicht, Reliefkarte, sowie den verschiedenen Betrachtungspositionen, Fig.2 ein Kombinationsbild, welches aus fünf Ansichten zusammengesetzt ist, Fig.3a eine Filterstruktur zur Vorgabe definierter Ausbreitungsrichtungen,
Fig.3b,c das Kombinationsbild mit darüber gelegter Filterstruktur, so wie sie an einer bestimmten Position vom linken bzw. rechten Auge wahrgenommen werden,
Fig.4 das Vorgehen zur Bestimmung der Farbinformationen für die übrigen Ansichten,
Fig.5 am Beispiel eines Vollpixelbildschirms die Bestimmung der Farbinformationen, und Fig.6 die Bestimmung der Farbinformation für die darzustellenden Bildpixel am Beispiel eines Bildschirms mit Subpixeln,
Fig.7a, b einen Fall, bei dem die Ansichten eine höhere Auflösung als die Tiefenkarte und die Quellansicht haben, und
Fig.8 den umgekehrten Fall zu Fig.7a, b.
Ausführliche Beschreibung der Zeichnungen
In Fig.1 sind zunächst die grundlegenden Begriffe im Zusammenhang mit einem Verfahren zur räumlichen Darstellung einer Szene auf der Grundlage von mehreren unterschiedlichen An der Szene mit n = 0....N-1 und N > 2 oder N = 2 der Gesamtzahl der Ansichten, auf einem Raster aus Bildelementen dargestellt. Zunächst wird eine in eine Projektionsfläche P(x,y) mit einer horizontalen Koordinate x und einer vertikalen Koordinate y projizierte Quellsansicht Q bereitgestellt. Die Projektionsfläche P(x,y) ist in Fig.1 a gezeigt, die Szene enthält hier nur einen Quader und ist ansonsten leer. Wie in Fig.1 b gezeigt, ist der Quellansicht Q eine Ur- Sprungsbetrachtungsposition Bq zugeordnet. Die Quellansicht Q ist dabei außerdem aus Quellpixeln bq(x„y,), mit Zeilen j = 1 ,...,J und Spalten i = 1 ,...,l, zusammengesetzt. In jedem Quellpixel bq(x,,y,) ist mindestens eine Farbinformation gespeichert. Zusätzlich können auch weitere Informationen gespeichert werden. Auf die Darstellung der Quellpixel bq(x,,y,)wurde verzichtet um die Übersichtlichkeit zu wahren. Man kann sie sich jedoch als ein der Ansicht Q in Fig.1 a unterlegtes, engmaschiges Raster vorstellen. Die Ursprungsbetrachtungsposition Bq wird auch einer ersten Ansicht A0 zugeordnet. Durch horizontale Verschiebung der Ursprungsbetrachtungsposition Bq werden N-1 weitere paarweise voneinander verschiedene
Betrachtungspositionen Bm, die zu übrigen Ansichten Am mit m = 1 N-1 korrespondieren.
Im vorliegenden Fall ist N = 5. Es können aber auch andere Anzahlen von Ansichten ver- wendet werden, allgemein ist N eine natürliche Zahl größer oder gleich 2.
In Fig.1 b ist außerdem noch eine Reliefkarte Z(x,y) dargestellt, die anhand von Tiefeninformationen zur Quellansicht Q erstellt wird. Diese Tiefeninformationen sind in einer auf die Projektionsfläche bezogenen Tiefenkarte T gespeichert. Dieser Tiefenkarte T ist ebenfalls die Ursprungsbetrachtungsposition Bq zugeordnet. Sie ist aus Tiefenpixeln t(xp, yr) zusammengesetzt, mit Zeilen r = 1 ,...,R und Spalten p = 1 ,...,P. In jedem Tiefenpixel t(xp, yr) ist mindestens eine Tiefeninformation gespeichert, wobei eine jede Tiefeninformation einem senkrechten Abstand zur Projektionsfläche P(x, y) entspricht. Tiefenkarte T und Quellansicht
Q weisen in der Regel die gleichen Dimensionen bzgl. der Anzahl der Zeilen und Spalten auf, eine Skalierung aneinander ist jedoch möglich, sollte dies nicht der Fall sein.
Auch für den Fall, daß die Tiefenkarte T und / oder die Quellansicht Q eine geringere oder größere Auflösung als die Ansichten An aufweist, wird eine Skalierung der Tiefenkarte T bzw. der Quellansicht Q mit entsprechenden Skalierungsfaktoren vorgenommen. Für den Fall, daß R ≠ L und / oder P ≠ K ist, wird eine Skalierung der Tiefenkarte T mit Skalierungsfaktoren Sτ x = K/P bzw. Sτ y = L/R vorgenommen. Für den Fall, daß die Quellansicht Q eine geringere oder größere Auflösung als die Ansichten An aufweist, daß also J ≠ L und / oder I ≠ K ist, wird eine Skalierung der Quellansicht Q mit Skalierungsfaktoren SQ X = K/l bzw. SQ y = L/J vorgenommen. Bei einer geringeren Auflösung von Tiefenkarte T und Quellansicht Q als die Auflösung der Ansichten An lassen sich Farbsäume bei Farbübergängen in der SD- Darstellung verringern, wozu man auch die Auflösung der Quellansicht Q und der Tiefenkarte T durch entsprechende Bildalgorithmen künstlich reduzieren kann. Gerade bei älteren Bildschirmen, bei denen die Pixel weiter auseinander als bei neueren liegen, ist diese Vorgehensweise sinnvoll, da hier Farbsäume um so störender auftreten, je weiter der Abstand der Pixel ist. Bei einer höheren Auflösung als für die Ansichten An kann der Tiefeneindruck verbessert werden, insbesondere bei monochromatischen Bildschirmen oder solchen auf Vollpixelbasis.
Sofern die Auflösungen von der Quellansicht Q, der Tiefenkarte T und den Ansichten An identisch sind, kann als Ansicht A0 auch die Quellansicht Q verwendet werden, der dann die Tiefeninformationen zugeordnet sind.
Die Reliefkarte Z(x,y) wird dann entsprechend des Verfahrens der Reliefkartenerzeugung mit der Quellansicht Q verknüpft, etwa in der dargestellten Weise. Z(x,y) ist dabei eine stetige Funktion in x und y. Es kann sich dabei beispielsweise um eine Treppenfunktion handeln, die Werte zwischen den Pixeln können aber auch so interpoliert werden, daß die Funktion Z(x, y) ein- oder zweimal stetig differenzierbar ist, beispielsweise kann linear oder bikubisch interpoliert werden. Die Reliefkarte Z(x,y) ist in Fig.1 b für einen Schnitt durch die Ansicht Q mit konstantem y dargestellt; der Schnitt wird in Fig.1 a durch die gestrichelte Linie gekennzeichnet. Die Reliefkarte ist außerdem normiert, kleine Werte entsprechen niedrigen Tiefen und erfahren demzufolge nur eine geringe Verschiebung, hohe Werte entsprechen Punkten im Hintergrund, die eine relativ kleinere Verschiebung im Vergleich zu den vorn liegenden erfahren.
Im folgenden werden dann Farbinformationen für Bildpixel bn(xk,yι), mit Zeilen I = 1 ,...,L und Spalten k = 1 ,...,K, der Ansichten An bestimmt. Anschließend werden alle Ansichten An ent-
sprechend einer vorgegebenen Kombinationsvorschrift für die räumliche Darstellung zu einem Kombinationsbild kombiniert, welches auf dem Raster von Bildelementen dargestellt wird, wobei von jeder der Ansichten An entsprechend der Kombinationsvorschrift auf dem Raster aus Bildelementen nur ein Teil von den der jeweiligen Ansicht An zugeordneten BiId- pixeln bn(xk,yι) dargestellt wird, und wobei für die Ansichten An Ausbreitungsrichtungen vorgegeben werden, so daß das linke Auge eines Betrachters eine andere Auswahl an Ansichten An als das rechte Auge des Betrachters wahrnimmt, wodurch ein räumlicher Seheindruck entsteht.
Ein solches, entsprechend einer Kombinationsvorschrift zusammengesetztes Kombinationsbild ist beispielsweise in Fig.2 dargestellt. Dabei handelt es sich um ein Kombinationsbild, welches für die Darstellung auf Bildschirmen mit Subpixeln vorgesehen ist. Entsprechend der Vorschrift sind benachbarten Subpixeln verschiedene Ansichten zugeordnet. Die Nummern in den Kästchen unterhalb der mit R, G, und B gekennzeichneten Kästchen bezeich- nen den Index n der fünf im Beispiel verwendeten Ansichten An.
Die Ausbreitungsrichtungen werden dann durch entsprechende optische Filterstrukturen, beispielsweise durch parallaktische Barrierefilter oder Lentikularfilter vorgegeben. Ein solcher optischer Filter in Form einer Barrierestruktur ist in Fig.3a dargestellt. Befindet sich ein Betrachter an einer ausgewählten Position vor dem Bildschirm, so ist es beispielsweise möglich, daß das linke Auge nur die zweite Ansicht, wie in Fig.3b dargestellt, und das rechte Auge nur die vierte Ansicht, wie in Fig.3c dargestellt, wahrnimmt. Die optische Filterstruktur ist also dem gerasterten Kombinationsbild in Blickrichtung vor- oder auch nachgeordnet, dadurch werden Ausbreitungsrichtungen vorgegeben, die den räumlichen Seheindruck ent- stehen lassen.
In Fig.4 ist die grundsätzliche Vorgehensweise bei der Bestimmung der Farbinformationen für die Bildpixel bn(xk,yι) der Ansichten An dargestellt. Dazu wird zunächst ein Strahl entlang einer Betrachtungsrichtung von der jeweiligen Betrachtungsposition Bn, im vorliegenden Beispiel B1 , zum betreffenden Bildpixel bn(xk,yι) erzeugt. Im Beispiel ist dies für vier Bildpixel k=1 ,...,4 , in der ersten Zeile (1=1 ) für die erste Betrachtungsposition B1 dargestellt. Die Quellansicht Q ist in der Regel so berechnet, daß sie bereits in Zentralprojektion oder orthographischer Projektion bestimmt und projiziert wurde. Zur Erzeugung der Ansichten An von dieser und den übrigen Betrachtungspositionen aus wird daher keine erneute Projektion benötigt, eine Parallelverschiebung, entsprechend einer Scherung des Projektionsvolumens, reicht aus. Demzufolge korrespondiert zu jeder der Ansichten An bzw. Betrachtungspositionen Bn jeweils genau eine Betrachtungsrichtung.
Die Betrachtungsrichtungen werden dann über das betreffende Bildpixel hinaus in die Tiefe verlängert, und es wird der der Betrachtungsposition Bn nächstliegende Schnittpunkt des Strahls mit der Reliefkarte Z(x,y) bestimmt. Dies geschieht rechnerisch, wobei die Verknüpfung der Quellansicht Q mit der Reliefkarte Z(x,y) verwendet wird. Die Vorgehensweise ent- spricht der im Stand der Technik im Zusammenhang mit dem sogenannten Relief Mapping beschriebenen Vorgehensweise zur Auffindung dieser Schnittpunkte. Die Schnittpunkte sind ebenfalls in Fig.4 eingezeichnet, an ihnen enden die Pfeile der Strahlen. Bei der Suche der Schnittpunkte ist darauf zu achten, daß jeweils tatsächlich nur der nächstliegende Schnittpunkt gefunden wird, und nicht etwa einer, der durch davorliegende Objekte verdeckt wird. Auch dies ist mittels entsprechender Algorithmen realisierbar. Im nächsten Schritt wird dann das dem Schnittpunkt nächstliegende Quellpixel bq(xs',y,) bestimmt. Auch diese Quellpixel sind in Fig.4 dargestellt. Im letzen Schritt schließlich wird dem betreffenden Bildpixel bn(xk,yι) die Farbinformation dieses Bildpixels bq(xs',y,) der Quellansicht Q zugeordnet. Dies entspricht dann einer Verschiebung der Objekte entsprechend ihrer Tiefe, angedeutet durch die mit dx1 : dx2i dx3 und dx4 gekennzeichneten Abstände. Dabei ist die Reliefkarte Z(x,y) so zu verstehen, daß kleine Werte einer geringen Tiefe und Werte nahe bei 1 einer hohen Tiefe entsprechen; Objekte im Hintergrund werden bei wechselnder Betrachtungsposition weniger stark verschoben als im Vordergrund liegende.
Dabei ist wesentlich, daß die Farbinformationen für die Ansichten An nur für die entsprechend der Kombinationsvorschrift darzustellenden Bildpixel bn(xk,yι) bestimmt werden. Für alle übrigen Bildpixel werden keine Farbinformationen bestimmt, diese werden also bei der Berechnung nicht berücksichtigt, da ihre Informationen nicht benötigt werden. Es wird also für jede Ansicht An immer nur der Teil der Bildpixel bn(xk,yι) bestimmt, der entsprechend der Kombinationsvorschrift auch tatsächlich dargestellt wird.
In Fig.5 ist die Vorgehensweise zur Bestimmung der Farbinformationen bei Kombinationsbildern für einen Bildschirm auf Vollpixel-Basis, auf dem nur zwei Ansichten, eine für das linke und eine für das rechte Auge, dargestellt werden, gezeigt. Jedes Vollpixel enthält Farbinfor- mationen für Rot (R), Grün (G) und Blau (B). Die Ansichten für linkes und rechtes Auge sind in Fig.5 mit L und R gekennzeichnet, die Gesamtzahl der Ansichten ist also N = 2.
In Fig.6 ist die Vorgehensweise für einen Bildschirm auf Subpixelbasis gezeigt. Hier werden auf benachbarten Subpixeln verschiedene Ansichten dargestellt. Dem ersten roten Subpixel R1 wird eine Farbinformation der Ansicht 1 , dem ersten grünen Subpixel, gekennzeichnet mit G1 , eine Farbinformation der Ansicht 2, usw. zugeordnet. Jeder Farbwert kommt aus einer anderen Ansicht.
In den Fig.7a und Fig.7b sowie in Fig.8 sind Situationen ähnlich der in Fig.6 gezeigten Situation dargestellt. Während dort und auch in Fig.4 und Fig.5 die gezeigte Reliefkarte Z(x,y) als zweimal stetig differenzierbare Funktion interpoliert wurde, bei der also auch die erste Ableitung eine stetig differenzierbare Funktion bildet, entspricht die in Fig.7a gezeigte Reliefkarte Z(x, y) einer Stufenfunktion, wobei sich jede Stufe entsprechend des Tiefenwertes über ein gesamtes Quellpixel erstreckt; die in Fig.7b und Fig.8 gezeigten Reliefkarten Z(x,y) entsprechen zwischen den Tiefeninformationen der Quellpixel linear interpolierten Funktionen.
In Fig.7a, b und in Fig.8 sind beispielhaft mögliche Skalierungen bei unterschiedlich dimen- sionierten Quellansichten und Tiefenkarten einerseits und Ansichten An andererseits verdeutlicht. Bei den in Fig.7a und Fig.7b gezeigten Situationen ist die Quellansicht Q in der Horizontalen nur halb so groß dimensioniert wie die Ansichten An, hat also nur halb soviel Spalten. Dementsprechend ist der Skalierungsfaktor SQ X = 2. Ein Quellpixel ist also je zwei Bildpixeln zugeordnet. Dies führt zu einer wesentlichen Verminderung von Farbsäumen, wie sie bei der Verwendung von speziellen Filtern für die 3D-Darstellung auftreten, beispielsweise bei dem in Fig.3a gezeigten. Die Tiefenkarte T - die Tiefeninformationen sind als Punkte in die Mitte der jeweiligen Quellpixelbereiche eingezeichnet - kann so mit der Quellansicht Q verknüpft sein, daß beide immer die gleichen Dimensionen aufweisen, d.h. also eine Skalierung der Tiefenkarte T automatisch erfolgt, wenn die Quellansicht Q skaliert wird. Die Tie- fenkarte T kann beispielsweise ein weiterer Index in der üblicherweise mehrdimensionalen Matrix der Quellpixel sein, so daß jedem Quellpixel nicht nur eine Farbinformation, beispielsweise aus drei Farbwerten, sondern eben auch eine Tiefeninformation, oder noch weitere Informationen zugeordnet sind. Die Tiefenkarte T kann jedoch auch unabhängig von der Quellansicht Q verwendet werden und beispielsweise in einem Tiefenpuffer gespeichert sein, so daß sie unabhängig manipuliert werden kann und später mit der Quellansicht Q verknüpft wird.
In Fig.8 ist gegenüber Fig.7 eine umgekehrte Situation dargestellt, indem nämlich die Quellansicht Q eine höhere Auflösung hat, als die Ansichten An, nämlich eine genau doppelt so hohe. Dies trägt zu einer Erhöhung der Genauigkeit in der Tiefenabtastung bei. Ist beispielsweise die Auflösung der Quellansicht Q dreimal so hoch wie die Auflösung der Ansichten An, dann kann jedem Subpixel ein eigener Tiefenwert zugeordnet werden, die Genauigkeit in der Tiefenbestimmung wird also erhöht.
Der Tiefeneindruck kann auch durch eine gesonderte Behandlung der Tiefenkarte T verbessert werden, indem nämlich die Tiefeninformationen wie folgt skaliert werden: Zunächst wird eine Ebene mit einer maximalen Tiefe und eine Ebene mit einer minimalen Tiefe in bezug auf die Betrachtungsposition Bq festgelegt. Diese beiden Ebenen werden dann aufeinander
zu verschoben und es wird der kleinste Abstand zwischen den Ebenen bestimmt, bei dem die Tiefeninformationen der Tiefenkarte T, die bei der Festlegung der Ebenen im vorangegangenen Schritt auf oder zwischen diesen Ebenen lagen, noch sämtlich auf bzw. zwischen den Ebenen liegen. Sofern bereits bei maximaler Tiefe Tiefeninformationen auf einer der Ebenen lagen, wird diese in der Regel nicht verschoben. Die Verschiebung erfolgt im Allgemeinem iterativ, so daß der kleinste Abstand innerhalb von mehreren Iterationsschritten gefunden wird. Ist der kleinste Abstand gefunden, so werden die Tiefeninformationen - d.h. die Tiefenwerte - in Abhängigkeit von diesem kleinsten Abstand auf einen vorgegebenen neuen Abstand skaliert, so daß in der Regel der zur Verfügung stehende 3D-Tiefenraum optimal ausgenutzt werden kann.
In einer besonderen Variante dieses Verfahrens kann die Ebene mit maximaler Tiefe und / oder die Ebene mit minimaler Tiefe im ersten Schritt anhand einer Bewertung der Bildinhalte festgelegt werden. Beispielsweise kann die Ebene mit minimaler Tiefe in einem Bereich zwi- sehen einer Vordergrundinformation - bei einem Computerspiel beispielsweise das Cockpit eines Rennwagens, der Führerstand einer Lokomotive oder das Cockpit eines Flugzeugs - festgelegt werden, so daß sich das Cockpit o.a. vor dieser Ebene befindet. Alle Punkte vor dieser Ebene haben dann einen gemeinsamen Tiefenwert, unabhängig von der Verschiebung der beiden Ebenen aufeinander zu. Eine Skalierung der Tiefeninformationen erfolgt dann nur für die außerhalb des - zweidimensional erscheinenden - Cockpits o.a., so daß für diesen Bereich, der für den Betrachter oder Spieler eigentlich interessant ist, eine Optimierung des räumlichen Seheindrucks durch maximale Ausnutzung des zur Verfügung stehenden Tiefenraumes erfolgen kann.
Das ganze Verfahren kann durch einen Treiber gesteuert werden, der auch auf einer Graphikkarte implementiert sein kann. Auch die Verfahrensschritte lassen sich ohne weiteres auf eine Graphikkarte durchführen.
Bei dem vorangehend beschriebenen Verfahren hängt der wesentliche Aufwand zur Erzeu- gung des Kombinationsbildes nicht mehr von der Anzahl der verwendeten Ansichten ab, sondern nur noch von der Auflösung des verwendeten Bildschirms. Dies ermöglicht die Verwendung einer Vielzahl von Ansichten, wodurch die Qualität des räumlichen Seheindrucks verbessert wird.