Verfahren zur automatischen Verknüpfung von Bildbereichen einer dreidimensionalen Darstellung eines Objektes mit Funktionen
Die Erfindung betrifft ein Verfahren zur automatischen Verknüpfung von Bildbereichen einer dreidimensionalen Darstellung eines Objektes mit Funktionen, wobei die dreidimensionale Darstellung in mindestens einer Projektionsebene in zweidimensionale Texturbilddaten transformiert wird.
In Dietmar Jackel „Grafik-Computergrundlagen, Architekturen und Konzepte computergrafischer Sichtsysteme" Springer- Verlag 1992, Kapitel 4, sind die Grundlagen der Verarbeitung von dreidimensionalen Bilddaten beschrieben. Dreidimensionale Objekte werden vorzugsweise mit einer Vielzahl dreiseitiger Polygone beschrieben, deren Kantenvektoren koplanar ausgerichtet sind und einen einheitlichen Umlaufsinn besitzen. Jedes Polygon ist mit einem Datensatz definiert, der die Eckpunktkoordinaten, Eckpunktnormalenvektoren und den Flächennormalenvektor enthält. Die räumliche Ausrichtung der Polygonebene wird durch den Flächennormalenvektor beschrieben, während die Ausrichtung des Polygons innerhalb seiner benachbarten Polygonmenge durch die Eckpunktnormalenvektoren darstellt wird. Mit dem Prozess der
Geometrietransformation kann das dreidimensionale Objekt in seiner räumlichen Lage verändert werden. Hierzu werden die Polynome mit entsprechenden Transformationsmatrixen, zum Beispiel einer Translation, Skalierung oder Rotation unterworfen. Mit dem Prozess des Back-Facing werden die Polygone eliminiert, die von einer Betrachtungsebene aus gesehen nicht sichtbar sind, da diesen Polygonen sichtbare Polygone vorgelagert sind. Mit Hilfe einer perspektivischen Projektion kann der räumliche Tiefeneindruck verbessert werden. Zudem werden die Flächenelemente an den Grenzflächen abgeschnitten, die nur zum Teil innerhalb eines dreidimensionalen Sichtbereichs liegen. Dieser Prozess wird Polygonkappen genannt.
Aus diesen Prozessen resultiert eine Drahtmodelldarstellung des im Raum gedrehten oder skalierten dreidimensionalen Objektes, die als Projektion im zweidimensionalen Raum zum Beispiel auf einem Monitor dargestellt werden kann. Diese Drahtmodelldarstelluπg vermittelt jedoch nur einen relativ ungenauen visuellen Eindruck des dreidimensionalen Objektes. Es werden daher zusätzlich noch Rendering-Prozesse durchgeführt, die zur Berechnung und Anzeige der Koordinaten und der Farbwerte der Bildpunkte dienen, die sich auf den Flächen der darzustellenden Polygone befinden. Hierzu wird die Oberflächentextur des dreidimensionalen Objektes nicht nur als Polygondarstellung berücksichtigt. Vielmehr werden auch die
Reflektionseigenschaften als Reflektionsdaten, die Farbeigenschaften als Farbwertdaten, die Transparenzeigenschaften als Transparenzdaten etc. abgespeichert. Diese jeweils als Texturbilddaten bezeichneten Bilddaten sind eine Projektion des dreidimensionalen Objektes auf eine zweidimensionale Ebene vergleichbar mit einer Kameraaufnahme aus einem beliebigen Blickwinkel. Sie werden als sogenannte Maps unabhängig voneinander abgespeichert. So ist zum Beispiel eine Colour-Map für die Farbwerte, eine Reflection-Map für die Reflektionseigenschaften zur Darstellung der Tiefe des Objektes, eine Transparency-Map zur Darstellung der Transparenzeigenschaften etc. vorgesehen.
Das Rendering-Verfahren ist zum Beispiel in Peter Oel, Jens Riemschneider „Am Anfang war das Bild" in c't 1999, Heft 17, Seite 164 bis 169 beschrieben. Das sogenannte „Image-based Rendering" basiert auf Projektionsstrahlen, die einen dreidimensionalen Gegenstand auf eine 2D- Fläche projizieren. Insofern entspricht das Verfahren einer fotografischen Aufnahme einer Umgebung auf eine plane Fläche mit einer Kamera. Mit Hilfe der Rendering-Prozesse werden neue Ansichten eines Objektes berechnet. Hierzu wird eine gedachte Kamera und damit eine neue Projektionsebene an eine Position gestellt, von der keine reale Aufnahme des Objektes existiert. Dadurch, dass einige Strahlen von aufgenommenen
Bildern durch die neue Projektionsebene verlaufen, werden Bildinformationen gewonnen, mit denen die neue Ansicht des Objektes berechnet werden kann.
Zur interaktiven Nutzung der dargestellten Objekte bzw. Bilder ist es bekannt, Bildbereiche mit Funktionen zu verknüpfen. Beim Auswählen der Bildbereiche zum Beispiel mit einer Maus oder einem entsprechenden Zeigegerät auf dem Bildschirm wird die entsprechende Bildposition und der zugehörige Bildbereich ermittelt. Herkömmlicherweise wird die Verknüpfung der Funktionen mit Funktionsbereichen mit CAD-Werkzeugen (Computer
Aided Design-Werkzeuge) definiert. Dies ist relativ aufwendig. Zudem ist die Zuordnung der Bildbereiche zu den Funktionen relativ ungenau, wenn die Position des dargestellten Objektes im Raum verschoben wird. Die Methode der Zuordnung von Funktionen zu Bildpositionen mit Hilfe von CAD- Werkzeugen eignet sich daher nur für zweidimensionale Darstellungen.
Weiterhin ist es bekannt, den dreiseitigen Polygonen Funktionen zuzuordnen. Dies erfolgt durch eine entsprechende Datenbank. Auch bei einer Transformation der Polygone bleibt die Zuordnung eines Polygons zu den Funktionen erhalten, so dass die Verknüpfung eines Polygons zu einer Funktion bei einer Verschiebung des Objektes im Raum keinen zusätzlichen Rechenaufwand erfordert. Allerdings sind die auswählbaren Bildbereiche auf die Form der Polygone beschränkt und folglich relativ ungenau.
Aufgabe der Erfindung war es daher, ein verbessertes Verfahren zur automatischen Verknüpfung von Bildbereichen einer dreidimensionalen Darstellung eines Objektes mit Funktionen zu schaffen.
Die Aufgabe wird in dem erfindungsgemäßen Verfahren gelöst durch
a) Erzeugen von Funktionsbereichsdaten als Projektion der zu verknüpfenden Bildbereiche einer dreidimensionalen Darstellung eines Objektes in die zweidimensionale Ebene;
b) Verknüpfen von Funktionen zu entsprechenden Funktionsbereichen und Abspeichern der Funktionsbereichsdaten und der Funktionsverknüpfungen separat zu den Texturbilddaten;
c) Ausführen einer Geometrietransformation der Funktionsbereichsdaten zur Anpassung der Funktionsbereichsdaten an die räumliche Lage der zu verknüpfenden Bildbereiche einer dreidimensionalen Darstellung, wenn eine Funktion durch Auswählen eines Bildbereiches aufgerufen wird, und zur Bestimmung der zu den ausgewählten Bildbereichen zugehörigen Funktionsbereichen;
d) Ausführen der Funktion, die mit dem ausgewählten Funktionsbereich verknüpft ist.
Erfindungsgemäß wird somit parallel zu der Textur zur Beschreibung der dreidimensionalen Darstellung eine zweidimensionale Textur der Funktionsbereichsdaten erzeugt, indem auf der Oberfläche des dreidimensionalen Objektes Bildbereiche definiert und mit Funktionen verknüpft werden und diese Bildbereiche mit den Funktionsverknüpfungen als zweidimensionale Projektion abgespeichert werden. Bei einer Verschiebung des Objektes im Raum können diese Funktionsbereichsdaten gleichermaßen wie die Texturbilddaten einer geometrischen Transformation unterzogen werden, nachdem eine Funktion durch Auswählen eines Bildbereiches aufgerufen wird. Auf diese Weise kann der zu dem ausgewählten Bildbereich gehörende Funktionsbereich bestimmt und die entsprechende zugeordnete Funktion ausgeführt werden.
Die Texturbilddaten sind vorzugsweise dreiseitigen Polygonen zugeordnet, mit denen die Oberfläche des dreidimensionalen Objektes bzw. Bildes definiert werden. Mit diesen Polygonen kann eine zweidimensionale Drahtmodelldarstellung des dreidimensionalen Bildes erzeugt werden, die einen dreidimensionalen Eindruck vermittelt.
Zusätzlich zu den Polygonen können als Texturbilddaten Reflektionsdaten, Farbwertdaten und/oder Transparenzdaten definiert und abgespeichert werden. Sie dienen zur Beschreibung der Reflektionseigenschaften, der Farbeigenschaften und der Transparenzeigenschaften des dreidimensionalen Objektes, insbesondere bezogen auf die Polygonflächen. Diese verschiedenen Texturbilddaten werden unabhängig voneinander als Reflektions-Map, Farbwert-Map und Transparenz-Map abgespeichert. Die Funktionsbereichsdaten werden erfindungsgemäß auf die gleiche Weise wie die vorgenannten Texturbilddaten als sogenannte Funktions-Map behandelt.
Zur Visualisierung eines Objektes wird vorteilhafterweise ein sogenannter Rendering-Prozess durchgeführt, bei dem aus der Polygondarstellung, den Texturbilddaten und aus den Koordinaten, Farbeigenschaften, Reflektionseigenschaften und/oder Transparenzeigenschaften der Bildpunkte auf den Polygonen mittels der Reflektionsdaten, Farbwertdaten und Transparenzdaten Objektansichten berechnet werden, die beispielsweise auf einem Bildschirm dargestellt werden können. Erfindungsgemäß wird der Rendering-Prozess auch mit den Funktionsbereichsdaten durchgeführt, wenn eine Funktion durch Auswählen eines Bildpunktes aufgerufen wird. Aus den Funktionsbereichsdaten, die mit dem Bildpunkt korrelieren, wird die Funktion bestimmt und ausgeführt, die mit dem entsprechenden Funktionsbereich verknüpft ist. Die Funktionsbereichsdarstellung wird somit entsprechend dem Objekt im Raum verschoben, wobei durch den Rendering-Prozess eine Projektion auf die zweidimensionale Ebene des
Betrachters vorgenommen wird. Aus den zweidimensionalen Koordinaten
des ausgewählten Bildpunktes kann sofort der zugehörige Funktionsbereich und die damit verknüpfte Funktion bestimmt werden.
Vorteilhafterweise sind die Funktionen in einer Datenbank abgespeichert und mit Funktionskennungen, das heißt mit Funktionscodewörtern verknüpft. Die als Textur abgespeicherten Funktionsbereichsdaten beinhalten dann lediglich nur eine Verknüpfung von Funktionsbereichen zu den Funktionskennungen. Hierdurch kann Speicherplatz eingespart werden.
Die Erfindung wird nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
Figur 1 - Verfahrensablauf zur erfindungsgemäßen Verknüpfung von Bildbereichen mit Funktionen;
Figur 2 - herkömmliches Verfahren zur Verknüpfung von Bildbereichen mit Funktionen.
Die Figur 1 lässt eine Skizze des Verfahrens zur automatischen Verknüpfung von Bildbereichen einer dreidimensionalen Darstellung eines Objektes 1 mit Funktionen erkennen. Das dreidimensionale Objekt 1 wird in der dreidimensionalen perspektivischen Darstellung 2 als Drahtmodell in den drei Ebenen X, Y und Z skizziert. Das Drahtmodell besteht aus dreiseitigen Polygonen 3 zur annähernden Beschreibung der Oberfläche des Objektes 1 . Die im Hintergrund liegenden nicht sichtbaren Polygone sind mit der sogenannten Backfacing-Methode eliminiert.
Wenn das Objekt von einer gedachten virtuellen Kamera 4 aus einer beliebigen Perspektive aufgenommen wird, würde auf der Aufπahmefläche 5, wie z.B. einem Film, eine zweidimensionale Projektion des Bildes auf der Projektionsebene der Aufnahmefläche 5 entstehen. Diese zweidimensionale Projektion ist in der zweidimensionalen Textur-Map 6 skizziert, die die Projektion eines ausgewählten Polygons 3a zeigt.
Zusätzlich zu der Textur-Map der Polygone 3 können entsprechende Ansichten zur Beschreibung der Reflektionseigenschaften, Farbeigenschaften und Transparenzeigenschaften der projizierten Ansicht aufgenommen und abgespeichert werden. Mit diesen Reflektionsdaten-
Maps, Farbwertdaten-Maps und Transparenzdaten-Maps können
insbesondere die Flächen der einzelnen Polygone 3 detaillierter beschrieben und der räumliche Eindruck des Objektes 1 verbessert werden.
Die Erfindung sieht eine weitere entsprechende Funktionsbereichsdaten-Map 7 vor, in der Funktionsbereiche 8 definiert und mit Funktionskennungen A, B verknüpft sind. Die Funktionsbereiche 8 entsprechen ausgewählten Bildbereichen, die nicht die Form eines Polygones 3 haben müssen. Beim Auswählen eines entsprechenden Bildbereiches, zum Beispiel mit einem Zeigeinstrument eines Computers können Funktionen Funkt. a, Funkt. b ausgeführt werden, die über die Funktionskennungen A, B mit den entsprechenden Funktionsbereichen 8 verknüpft sind. Zur Beschreibung der Verknüpfung der Funktionskennungen A, B mit den zugehörigen Funktionen Funkt.a, Funkt.b ist eine entsprechende Datenbank 9 vorgesehen.
Die Funktionsbereichsdaten-Map 7 zur Definition der Funktionsbereiche 8 wird entsprechend der Textur-Map 6 und der Reflektionsdaten-Maps, Farbwertdaten-Maps und Transparenzdaten-Maps als Teil der zweidimensionalen Projektion des dreidimensionalen Objektes 1 behandelt.
Ein dreidimensionales Objekt 1 kann aus Gründen des Speicherplatzes nicht in allen Ansichten aufgenommen und abgespeichert werden. Daher werden üblicherweise von einem Objekt 1 nur Aufnahmen in ausgewählten Perspektiven aufgenommen und in entsprechenden Maps abgespeichert. Zur Darstellung einer neuen perspektivischen Ansicht werden die erforderlichen Bildinformationen aus den abgespeicherten Maps berechnet. Dies erfolgt mit dem sogenannten Rendering-Verfahren. Dies ist möglich, weil einige Projektionsstrahlen von bereits aufgenommenen und abgespeicherten Bildern durch die neue Projektionsebene des neu zu berechnenden Bildes verlaufen und auf diese Weise bereits Bildinformationen für die einzelnen Bildpunkte zur Verfügung stehen. Wenn nun ein Bildbereich mit einem
Zeigeinstrument ausgewählt und eine Funktion ausgeführt werden soll, wird
die Funktionsbereichsansicht auf die momentane perspektivische Ansicht des Objektes 1 angepasst. Hierzu wird aus den Funktionsbereichsdaten- Maps 7 mit Hilfe bekannter Geometrietransformations- und Rendering- Verfahren die neue Perspektive berechnet. Die Funktionsbereichsdaten werden somit genauso wie die anderen Maps als Texturdaten-Maps behandelt. Nachdem die Funktionsbereichsdaten-Map 7 auf die neue Perspektive umgerechnet wurde, kann die dem ausgewählten Bildbereich zugeordnete Funktionskennung ermittelt und mit Hilfe der Funktionsdatenbank 9 die auszuführende Funktion Funkt.a, Funkt.b bestimmt und ausgeführt werden.
Die Figur 2 lässt ein herkömmliches Verfahren zur Verknüpfung von Funktionen zu dreidimensionalen Objekten 1 erkennen. Auch hier ist wiederum ein Objekt 1 in der dreidimensionalen Ansicht 2 und der zweidimensionalen Projektion als Textur-Map 6 skizziert. Die Textur-Map 6 zeigt ein ausgewähltes Polygon 3a, das als solches in dem Verfahren identifiziert wird. Im Unterschied zu dem erfindungsgemäßen Verfahren ist in der Funktionsdatenbank 9 die Verknüpfung der Nummer des ausgewählten Polygons 3a mit der zugehörigen Funktion Funkt.a, Funkt.b abgespeichert. Als auswählbare Bildbereiche können somit nur Polygone 3 mit Funktionen verknüpft werden. Dabei entfällt zwar die Notwendigkeit des zusätzlichen Anpassens der Funktionsbereichsdaten-Map 7 an die dargestellte Projektion. Die auswählbaren Bildbereiche sind jedoch relativ ungenau.
Die verknüpfbaren Funktionen können beliebiger Art sein. Denkbar sind Funktionen zur Transformation und Bewegung des Objektes 1 , Video- und Audiodaten als Multimedia-Anwendungen, Funktionen zum Austausch von Texturdaten, die Aktivierung von Hyper-Links zum Anwählen von Funktionen und Seiten im Internet oder Intranet, das Anzeigen von erklärenden Texten oder die Durchführung eines Datenaustausches. Bei dem
Austausch von Texturdaten können Bildbereiche geändert werden und auf diese Weise bestimmte Effekte, wie zum Beispiel das Zwinkern eines Auges einer dargestellten Person erzielt werden. Durch die Aktivierung von Hyper- Links können zum Beispiel Benutzerhandbücher für das dargestellte Objekt oder das ausgewählte Bildelement aufgerufen werden. Es können auch nur einfache erklärende Texte zusätzlich zu dem Objekt 1 auf dem Bildschirm angezeigt werden. Diese erklärenden Texte können zum Beispiel als Nutzerhilfe oder als Marketing-Information dienen. Weitere beliebige Aktionen und Interaktionen sind als Funktionen denkbar.