-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der Seriennummer 61/369,635, die am 30. Juli 2010 eingereicht wurde, und der US-Patentanmeldung mit der Seriennummer 13/193,531, die am 28. Juli 2011 eingereicht wurde. Jede dieser Anmeldungen ist durch Bezugnahme mit eingeschlossen.
-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft das Gebiet der Computeranimation und betrifft insbesondere die mehrskalierte dreidimensionale (3D) Orientierung.
-
Beschreibung des Stands der Technik
-
Die jüngere Forschung in der 3D-Computergrafik und Interaktion hat den engen Bereich der Entwicklung von Autorensoftware und Inspektion für einzelne Objekte verlassen und hat damit begonnen, komplexe mehrskalierte bzw. mehrfach skalierte Objekte und Umgebungen zu betrachten. Konventionelle Vorgehensweisen in der Computergrafik für die Modellierung und für das Verständnis von Gestaltungsräumen, obwohl dies nunmehr gut verstanden ist, haben sich für diese neuen und komplexeren grafischen Umgebungen in gewisser Weise als beschränkt erwiesen. Um in diesem neuen grafischen Umgebungen geeignet und effizienter arbeiten zu können, ist ein besseres Verständnis des Gestaltungsraums erforderlich.
-
Wie das Vorhergehende zeigt, besteht auf diesem Gebiet der Technik ein Bedürfnis nach verbesserten Techniken zum Verstehen und zum Interagieren mit komplexen mehrskaligen 3D-Umgebungen.
-
ÜBERBLICK ÜBER DIE ERFINDUNG
-
Eine Ausführungsform der Erfindung umfasst ein computerimplementiertes Verfahren zur Erzeugung einer grafischen Navigationsanwenderschnittstelle (GUI) zum Navigieren in einer dreidimensionalen (3D) Umgebung, die mit einem mehrskaligen 3D-Datensatz verknüpft ist. Das Verfahren umfasst den Empfang einer aktuellen Position in der 3D-Umgebung, an der ein sichtbarer Bereich der 3D-Umgebung für die Anzeige aus der Perspektive der aktuellen Position erzeugt wird, das Erkennen eines 3D-Objekts, das in einem nicht-sichtbaren Bereich der 3D-Umgebung liegt, und das Veranlassen, dass ein Objektindikator in dem sichtbaren Bereich der 3D-Umgebung angezeigt wird, wobei der Objektindikator eine Orientierung aufweist, die die Position des 3D-Objekts in dem nichtsichtbaren Bereich der 3D-Umgebung in Bezug auf die aktuelle Position angibt.
-
Vorteilhafterweise werden für einen Endbenutzer diverse Möglichkeiten bereitgestellt, mit einer komplexen 3D-Umgebung in Wechselwirkung zu treten, die beobachtbare Eigenschaften mit einer Fülle von unterschiedlichen Skalen bzw. Skalierung enthält. Einige Vorgehensweisen sind wichtig, um Anwender mit dem visuell eindringenden Details in Berührung zu bringen, die mit einer jeweiligen unterschiedlichen Skala derartiger 3D-Umgebungen verknüpft sind.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Um die Art und Weise, in der die oben genannten Merkmale der Erfindung im Detail angegeben sind, verständlich zu machen, wird eine genauere Beschreibung der Erfindung, die zuvor kurz zusammengefasst ist, mit Bezug zu Ausführungsformen angegeben, wovon einige in den angefügten Zeichnungen dargestellt sind. Es ist jedoch zu beachten, dass die angefügten Zeichnungen nur typische Ausführungsformen dieser Erfindung darstellen und daher nicht als Beschränkung des Schutzbereichs zu betrachten sind, da die Erfindung andere, gleichermaßen wirksame Ausführungsformen zulässt.
-
1A ist eine Blockansicht eines Systems, das für das Einrichten eines oder mehrerer Aspekte der Erfindung ausgebildet ist;
-
1B ist eine detailliertere Darstellung des Systemspeichers aus 1A gemäß einer Ausführungsform der Erfindung;
-
2 zeigt diverse Elemente, die in einer 3D-Szene gemäß einer Ausführungsform der Erfindung vorhanden sind;
-
3A bis 9 zeigen unterschiedliche Bildschirmaufnahmen einer 3D-Umgebung gemäß einer Ausführungsform der Erfindung;
-
10 ist ein Flussdiagramm von Verfahrensschritten zur Visualisierung eines mehrskaligen 3D-Datensatzes gemäß einer Ausführungsform der Erfindung;
-
11 ist ein Flussdiagramm von Verfahrensschritten zur Abfrage eines mehrskaligen 3D-Datensatzes gemäß einer Ausführungsform der Erfindung; und
-
12 ist ein Flussdiagramm von Verfahrensschritten zur Erzeugung einer Navigations-GUI auf der Grundlage eines mehrskaligen 3D-Datensatzes gemäß einer Ausführungsform der Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung sind zahlreiche spezielle Details angegeben, um ein gründlicheres Verständnis der vorliegenden Erfindung zu ermöglichen. Der Fachmann erkennt jedoch, dass die vorliegende Erfindung ohne eines oder mehrere dieser speziellen Details in die Praxis umgesetzt werden kann. In anderen Fällen sind gut bekannte Merkmale nicht beschrieben, um eine Verdunkelung der vorliegenden Erfindung zu vermeiden.
-
Überblick über die Hardware
-
1 zeigt eine Architektur eines Systems 100, in der Ausführungsformen der vorliegenden Erfindung eingerichtet werden können. Diese Figur beabsichtigt weder eine Einschränkung des Schutzbereichs der vorliegenden Erfindung noch stellt sie eine Einschränkung war. Das System 100 kann ein Personalcomputer, eine Video-Spielekonsole, ein persönlicher digitaler Assistent, eine Bilderzeugungseinheit oder ein anderes Gerät sein, das zur Umsetzung einer oder mehrere Ausführungsformen der vorliegenden Erfindung geeignet ist.
-
Wie gezeigt, umfasst das System 100 eine zentrale Recheneinheit (CPU) 102 und einen Systemspeicher 104, die über einen Buspfad miteinander in Verbindung stehen, der eine Speicherbrücke 105 beinhalten kann. Die CPU 102 enthält einen oder mehrere Verarbeitungskerne und während des Betriebs ist die CPU 102 der übergeordnete Prozessor des Systems 100, der den Betrieb anderer Systemkomponenten überwacht und koordiniert. Der Systemspeicher 104 enthält Software-Anwendungen und Daten zur Verwendung durch die CPU 102. Die CPU 102 arbeitet die Software-Anwendungen und optional ein Betriebssystem ab. Die Speicherbrücke 105, die beispielsweise ein Nordbrücken-Chip sein kann, ist über einen Bus oder einen anderen Kommunikationspfad (beispielsweise eine HyperTransport-Verbindung) mit einer I/O-(Eingangs/Ausgangs-)Brücke 107 verbunden. Die I/O-Brücke 107, die beispielsweise ein Südbrücken-Chip sein kann, empfängt eine Eingabe eines Anwenders aus einer oder mehreren Anwendereingabeeinrichtungen 108 (beispielsweise Tastatur, Maus, Joystick, digitalisierende Tabletts, berührungsempfindliche Auflage, berührungsempfindliche Bildschirme, Kameras für Videobilder oder unbewegte Bilder, Bewegungssensoren, und/oder Mikrofone) und leitet die Eingabe an die CPU 102 über die Speicherbrücke 105 weiter.
-
Ein Anzeigeprozessor 112 ist mit der Speicherbrücke 105 über einen Bus oder einen anderen Kommunikationspfad (beispielsweise PCI-Express, beschleunigter Graphikport oder HyperTransport-Verbindung) verbunden; in einer Ausführungsform ist der Anzeigeprozessor 112 ein Grafik-Subsystem, das mindestens eine grafische Verarbeitungseinheit (GPU) und einen Grafikspeicher enthält. Der Grafikspeicher enthält einen Anzeigespeicher (beispielsweise einen Blockpuffer bzw. Bildpuffer), der zur Speicherung von Pixeldaten für jedes Pixel eines Ausgabebilds verwendet wird. Der Grafikspeicher kann in der gleichen Einrichtung wie die GPU integriert sein, kann als eine separate Einrichtung mit der GPU verbunden und/oder kann in dem Systemspeicher 104 eingerichtet sein.
-
Der Anzeigeprozessor 112 liefert regelmäßig Pixel an eine Anzeigeeinrichtungen 110 (beispielsweise ein Bildschirm oder eine konventionelle CRT, ein plasmagestützter Monitor oder Fernseher oder ein Monitor oder Fernsehgerät auf Basis von OLED, SED oder LCD). Ferner kann der Anzeigeprozessor 112 Pixel an die Aufzeichnungseinrichtung ausgeben, die ausgebildet sind, computererzeugte Bilder auf fotografischen Film zu reproduzieren. Der Anzeigeprozessor 112 kann die Anzeigeeinrichtungen 110 mit einem analogen oder digitalen Signal versorgen.
-
Eine Systemdiskette 114 ist ebenfalls mit der I/O-Brücke 107 verbunden und kann ausgebildet sein, Inhalte und Anwendungen und Daten zur Verwendung durch die CPU 102 und den Anzeigeprozessor 112 zu speichern. Die Systemdiskette 114 stellt einen nicht-flüchtigen Speicher für Anwendungen und Daten bereit und kann fest installierte oder entfernbare Festplattenlaufwerke, Flash-Speichereinrichtungen und CD-ROM, DVD-ROM, Blu-ray, HD-DVD oder andere magnetische, optische oder Halbleiterspeichereinrichtungen umfassen.
-
Ein Schalter bzw. Verteiler 116 stellt Verbindungen zwischen der I/O-Brücke 107 und weiteren Komponenten, etwa einem Netzwerkadapter 118 und diversen Zusatzkarten 120 und 121 bereit. Der Netzwerkadapter 118 ermöglicht es dem System 100, mit anderen Systemen über ein elektronisches Kommunikationsnetzwerk in Verbindung zu treten, und kann dabei eine verdrahtete oder drahtlose Kommunikation über Nahbereichsnetzwerke und Weitbereichsnetzwerke, etwa das Internet, beinhalten.
-
Andere Komponenten (nicht gezeigt), wozu USB-Verbindungen oder andere Port-Verbindungen, Filmaufzeichnungseinrichtungen und dergleichen gehören, können ebenfalls mit der I/O-Brücke 107 verbunden sein. Beispielsweise kann ein Audio-Prozessor verwendet werden, um analoge oder digitale Audio-Ausgangssignale aus Befehlen und/oder Daten, die von der CPU 102, dem Systemspeicher 104 oder der Systemdiskette 114 bereitgestellt werden, zu erzeugen. Kommunikationspfade, die die in 1 dargestellten diversen Komponenten verbinden, können unter Anwendung geeigneter Protokolle eingerichtet werden, etwa PCI (periphere Komponenten-Verbindung), PCI-Express (PCI-E), AGP (beschleunigter Graphikport), HyperTransport, oder durch andere Bus- oder Punkt-zu-Punkt-Kommunikationsprotokolle, und Verbindungen zwischen unterschiedlichen Geräten können unterschiedliche Protokolle benutzen, wie dies auf diesem Gebiet der Technik bekannt ist.
-
In einer Ausführungsform enthält der Anzeigeprozessor 112 eine Schaltung, die für die Grafik- und Videoverarbeitung optimiert ist, wozu beispielsweise eine Videoausgabeschaltung gehört, und die eine grafische Verarbeitungseinheit (GPU) bildet. In einer weiteren Ausführungsform enthält der Anzeigeprozessor 112 eine Schaltung, die für eine Verarbeitung für Allgemeinzwecke optimiert ist. In einer noch weiteren Ausführungsform kann der Anzeigeprozessor 112 zusammen mit einem oder mehreren anderen Systemelementen integral aufgebaut sein, etwa mit der Speicherbrücke 105, der CPU 102 und der I/O-Brücke 107, um ein System auf einem Chip (SoC) zu bilden. In noch weiteren Ausführungsformen ist der Anzeigeprozessor 112 nicht vorhanden und Software, die von der CPU 102 abgearbeitet wird, führt die Funktionen des Anzeigeprozessors 112 aus.
-
Pixeldaten können dem Anzeigeprozessor 112 direkt aus der CPU 102 zugeleitet werden. In einigen Ausführungsformen der vorliegenden Erfindung werden Befehle und/oder Daten, die eine Szene darstellen, einer Gruppe von Bilderzeugungseinrichtungen oder einer Gruppe von Dienstleister-Computern zugeleitet, die jeweils ähnlich dem System 107 sind, wobei dies über den Netzwerkadapter 118 oder die Systemdiskette 114 erfolgt. Die Gruppe aus Bilderzeugungseinrichtungen bildet ein oder mehrere erzeugte Bilder der Szene unter Anwendung der bereit gestellten Befehle und/oder Daten. Diese erzeugten bzw. computererzeugten Bilder können auf computerlesbaren Medien in einem digitalen Format gespeichert und optional in das System 100 zur Darstellung zurückgespeist werden. In ähnlicher Weise können Stereo-Bildpaare, die von dem Anzeigeprozessor 112 verarbeitet werden, anderen Systemen zur Anzeige zugeleitet werden, können in der Systemdiskette 114 gespeichert werden, oder können auf computerlesbaren Medien in digitaler Form gespeichert werden.
-
Alternativ versorgt die CPU 102 den Anzeigeprozessor 112 mit Daten und/oder Befehlen, die die gewünschten Ausgabebilder festlegen, wovon der Anzeigeprozessor 112 die Pixeldaten eines oder mehrerer Ausgabebilder erzeugt, wozu die Kennzeichnung und/oder Einstellung des Abstands zwischen Stereo-Bildpaaren gehört. Die Daten und/oder Befehle, die die gewünschten Ausgabebilder festlegen, können in dem Systemspeicher 104 oder in dem Grafikspeicher innerhalb des Anzeigeprozessors 112 gespeichert sein. In einer Ausführungsform hat der Anzeigeprozessor 112 die Fähigkeit der 3D-Bilderzeugung, um Pixeldaten für Ausgabebilder aus Befehlen und Daten zu erzeugen, die die Geometrie, die Beleuchtungsschattierung, die Oberflächenbeschaffenheit, Bewegung und/oder Kameraparameter für die Szene festlegen. Der Anzeigeprozessor 112 kann ferner eine oder mehrere programmierbare Ausführungseinheiten enthalten, die in der Lage sind, Schattierungsprogramme, Farbtonzuordnungsprogramme, und dergleichen auszuführen.
-
Die CPU 102, die Gruppe der Bilderzeugungseinrichtungen und/oder der Anzeigeprozessor 112 können beliebige Oberflächen- oder Volumenbilderzeugungstechniken anwenden, die im Stand der Technik bekannt sind, um ein oder mehrere erzeugte Bilder aus dem bereitgestellten Daten und Befehlen zu erzeugen, wozu die Rastereinteilung, die Abtastlinien-Bilderzeugung RGYGS oder die Mikro-Polygon-Bilderzeugung, der Strahlenwurf, die Strahlverfolgung, bildbasierte Erzeugenstechniken und/oder Kombinationen dieser und anderer Bilderzeugungstechniken oder Bildverarbeitungstechniken, die im Stand der Technik bekannt sind, gehören.
-
Zu beachten ist, dass das hierin gezeigte System anschaulicher Natur ist und dass Variationen und Modifizierungen möglich sind. Die Verbindungstopologie einschließlich der Anzahl und der Anordnung von Brücken, kann nach Bedarf modifiziert werden. Beispielsweise ist in einigen Ausführungsformen der Systemspeicher 104 direkt mit der CPU 102 anstatt über eine Brücke verbunden, und andere Geräte kommunizieren mit dem Systemspeicher 104 über die Speicherbrücke 105 und die CPU 102. In anderen alternativen Topologien ist der Anzeigeprozessor 112 mit der I/O-Brücke 107 oder direkt mit der CPU 102 anstatt mit der Speicherbrücke 105 verbunden. In noch anderen Ausführungsformen können die I/O-Brücke 107 und die Speicherbrücke 105 gemeinsam in einem einzelnen Chip integriert sein. Die speziellen hierin gezeigten Komponenten sind optional; beispielsweise kann eine beliebige Anzahl an Zusatzkarten oder peripheren Geräten unterstützt werden. In einigen Ausführungsformen ist der Schalter bzw. Verteiler 116 weggelassen, und der Netzwerkadapter 118 und die Zusatzkarten 120, 121 sind direkt mit der I/O-Brücke 107 verbunden.
-
Überblick über die Software
-
1B ist eine detailliertere Darstellung des Systemspeichers 104 aus 1A gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält der Systemspeicher 104 eine mehrskalige bzw. mehrfach skalierte Dateneinheit 130, die ausgebildet ist, auf einen mehrskaligen 3D-Datensatz 132 zuzugreifen. Der mehrskalige 3D-Datensatz 132 repräsentiert eine 3D-Umgebung, die beobachtbare Eigenschaften in mehreren unterschiedlichen Skalen bzw. Skalierung aufweisen kann.
-
Beispielsweise kann der mehrskalige 3D-Datensatz 132 ein georäumlicher Datensatz sein, der ein 3D-Modell des Planeten Erde darstellt. In diesem Beispiel könnte der mehrskalige 3D-Datensatz 132 eine große Kugel, die die Erde repräsentiert, enthalten, was einer „planetarischen” Skala bzw. Skalierung entspricht. Ferner könnte der mehrskalige 3D-Datensatz 132 Gruppen aus 3D-Rechtecken enthalten, die auf der Oberfläche der Kugel angeordnet sind, und Städte repräsentieren, was einer „städtischen” Skala entspricht. Innerhalb einer gegebenen „Stadt” kann jedes „Gebäude” diverse Gebäudeelemente, etwa beispielsweise Säulen, Balken, Treppen oder Fenster enthalten, was einer „Gebäudeskala bzw. Gebäudeskalierung” entspricht. Der Fachmann erkennt, dass der mehrskalige 3D-Datensatz 132 eine beliebige Art einer 3D-Umgebung repräsentieren kann und dies kann unter Anwendung einer Fülle von möglichen Datenstrukturen und/oder Datenformaten bewerkstelligt werden.
-
In einer Ausführungsform repräsentiert der mehrskalige 3D-Datensatz 132 eine 3D-Umgebung auf der Grundlage von Daten, die aus einer Datenbank eines geographischen Informationssystems (GIS) abgeleitet sind. Beispielsweise könnte der mehrskalige 3D-Datensatz 132 eine 3D-Höhenkarte repräsentieren, wobei jeder Punkt in der Karte eine einzigartige GIS-Markierung aufweist. Der mehrskalige 3D-Datensatz 132 kann auch eine andere Datenstruktur und/oder ein anderes Datenformat einrichten, um jeweils eine unterschiedliche Skalierung innerhalb der 3D-Umgebung darzustellen. Beispielsweise könnte der mehrskalige 3D-Datensatz 132 ein 3D-Modell einer Stadt als diverse Punktwolken repräsentieren, wovon jede einem anderen Gebäude in der Stadt entspricht. Jede Punktwolke könnte auf „planetarischer” Skala unter Anwendung von GIS-Daten positioniert werden. Auf einer kleineren „Gebäudeskala” könnten die Punkte innerhalb einer gegebenen Punktwolke relativ zu der GIS-Markierung dieser Punktwolke festgelegt werden.
-
Der mehrskalige 3D-Datensatz 132 kann eine 3D-Umgebung unter Anwendung eines oder mehrerer unterschiedlicher 3D-Datensätze repräsentieren, wovon jeder einer anderen Skala dieser 3D-Umgebung entspricht. In einigen Ausführungsformen ist jeder 3D-Datensatz innerhalb des mehrskaligen 3D-Datensatzes 132 mit den anderen 3D-Datensätzen auf einer Stufe oder ist innerhalb des mehrskaligen 3D-Datensatzes 132 relativ zu anderen 3D-Datensätzen eingebettet. Wie nachfolgend weiter beschrieben ist, kann auf die mit dem mehrskaligen 3D-Datensatz 132 verknüpfte 3D-Umgebung von einem Endanwender unter Anwendung einer mehrskaligen Dateneinheit bzw. Datenverarbeitungseinheit 130 zugegriffen werden.
-
Die mehrskalige Dateneinheit 130 enthält eine Visualisierungseinheit 134, eine Abfrageeinheit 136 und eine Navigationseinheit 138, wovon jede ausgebildet ist, diverse Verarbeitungsaufgaben an dem mehrskaligen 3D-Datensatz 132 auszuführen. Ein Endanwender kann Befehle an die diversen Einheiten in der mehrskaligen Dateneinheit 130 über die Eingabeeinrichtungen 108 ausgegeben und kann eine Ausgabe, die von diesen Einheiten erzeugt ist, über die Anzeigeeinrichtungen 110 empfangen. Wie nachfolgend in Verbindung mit den 2 und 10 detaillierter beschrieben ist, ist die Visualisierungseinheit 134 ausgebildet, eine 3D-Umgebung auf der Grundlage des mehrskaligen 3D-Datensatzes 132 zur Ausgabe an die Anzeigeeinrichtungen 110 zu erzeugen. Die Abfrageeinheit 136 ist ausgebildet, 3D-Objekte innerhalb des mehrskaligen 3D-Datensatzes 132 auf der Grundlage von Abfragen zu ermitteln, die von einem Endanwender über die Eingabeeinrichtungen 108 empfangen werden, wie dies nachfolgend in Verbindung mit den 2 und 11 detaillierter beschrieben ist. Die Navigationseinheit 138 ist ausgebildet, diverse Navigation-GUIs s auf der Grundlage des mehrskaligen 3D-Datensatzes 132 zu erzeugen, um es einem Endanwender zu ermöglichen, in der mit dem mehrskaligen Datensatz 132 verknüpften 3D-Umgebung zu navigieren, wie dies nachfolgend in Verbindung mit den 3–9 und 12 detaillierter beschrieben ist.
-
Visualisierung, Abfrage und Navigation für mehrskalige 3D-Datensätze
-
2 zeigt die Perspektive einer dritten Person für diverse Elemente, die in einer 3D-Szene 200 gemäß einer Ausführungsform der Erfindung vorhanden sind. Die 3D-Szene 200 kann eine aktuelle Aufnahme einer dritten Person der 3D-Umgebung repräsentieren, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft ist, wie dies zuvor in Verbindung mit 1B beschrieben ist. Wie gezeigt, enthält die 3D-Szene 200 3D-Objekte 202, 204 und 206, sowie eine Kamera 208. Die Visualisierungseinheit 134, die zuvor in Verbindung mit 1B beschrieben ist, ist ausgebildet, ein Bild zur Anzeige für einen Endanwender aus der Perspektive der Kamera 208 zu erzeugen.
-
Die Visualisierungseinheit 134 ist ferner ausgebildet, eine „räumliche Hierarchie” von 3D-Objekten innerhalb der 3D-Umgebung zu erzeugen, indem die 3D-Objekte auf der Grundlage von räumlichen Eigenschaften, die mit diesen Objekten verknüpft sind, selektiv gruppiert werden. Auf diese Weise kann die Visualisierungseinheit 134 die 3D-Umgebung „aufräumen”, indem die Anzahl sichtbarer 3D-Objekte reduziert wird, wie dies hierin beispielhaft beschrieben ist.
-
Die Visualisierungseinheit 134 ist ausgebildet, zwei oder mehr der 3D-Objekte 202, 204 und 206 auf der Grundlage der linearen Abstände zwischen diesen Objekten, den Winkelabständen zwischen diesen Objekten relativ zu der Kamera 208 und/oder auf der Grundlage der Abstände zwischen diesen Objekten und der Kamera 210 zu gruppieren. In der 3D-Szene 200 repräsentiert δ1 den linearen Abstand zwischen den 3D-Objekten 202 und 204, δ2 repräsentiert den linearen Abstand zwischen den 3D-Objekten 204 und 206, ☐1 repräsentiert den Winkelabstand zwischen den 3D-Objekten 202 und 204, und ☐2 repräsentiert den Winkelabstand zwischen den 3D-Objekten 204 und 206. Des weiteren repräsentieren δ3, δ4 und δ5 die Abstände entsprechend zwischen den 3D-Objekten 202, 204 und 206 und der Kamera 208.
-
In einer Ausführungsform der Erfindung kann die Visualisierungseinheit 134 ausgebildet sein, zwei oder mehr der 3D-Objekte 202, 204 und 206 zu gruppieren, wenn der lineare Abstand zwischen diesen Objekten kleiner als ein gegebener linearer Schwellwert ist. Wenn beispielsweise δ1 kleiner als der lineare Schwellwert ist, dann würde die Visualisierungseinheit 134 die 3D-Objekte 202 und 204 in einer Gruppe zusammenfassen.
-
In einer weiteren Ausführungsform der Erfindung kann die Visualisierungseinheit 134 ausgebildet sein, zwei oder mehr der 3D-Objekte 202, 224 und 206 zu gruppieren, wenn der Winkelabstand zwischen diesen Objekten relativ zu der Kamera 208 kleiner als ein gegebener Winkelschwellwert ist. Wenn beispielsweise ☐2 kleiner als der Winkelschwellwert ist, dann würde die Visualisierungseinheit 134 die 3D-Objekte 204 und 206 in eine Gruppe zusammenfassen.
-
In einer noch weiteren Ausführungsform der Erfindung kann die Visualisierungseinheit 134 ausgebildet sein, zwei oder mehr der 3D-Objekte 202, 204 und 206 auf der Grundlage einer beliebigen Kombination aus linearen Abständen zwischen den 3D-Objekten, aus Winkelabständen zwischen den 3D-Objekten relativ zu der Kamera 208 oder dem Abstand zwischen jedem 3D-Objekt und der Kamera 208 in Gruppen zu unterteilen.
-
Wenn ein Bild für die Anzeige erzeugt wird, kann die Visualisierungseinheit 134 Gruppen aus 3D-Objekten als ein einzelnes 3D-Objekt repräsentieren, das wiederum die Gruppe repräsentiert. Wenn beispielsweise die 3D-Objekte 202 und 204 als Gruppe zusammengefasst sind, könnte die Visualisierungseinheit 134 ein einzelnes 3D-Objekt erzeugen, das diese Gruppe repräsentiert. Auf diese Weise kann die Visualisierungseinheit 134 die Komplexität einer 3D-Szene, die zahlreiche 3D-Objekte enthält, verringern. Der Fachmann erkennt, dass die Visualisierungseinheit 134 eine beliebige Anzahl an 3D-Objekten auf der Grundlage einer breiten Fülle räumlicher Eigenschaften, die mit diesen 3D-Objekten verknüpft sind, in Gruppen zusammenfassen kann, und dass die zuvor beschriebenen Beispiele nur anschaulichen Zwecken dienen.
-
Es sei wiederum auf die 3D-Szene 200 der 2 verwiesen; die Abfrageeinheit 136 ist ausgebildet, ein oder mehrere der 3D-Objekte 202, 204 und 206 auf der Grundlage der räumlichen Eigenschaften, die mit diesen Objekten verknüpft sind, zu erkennen. Durch diese Technik ermöglicht es die Abfrageeinheit 136 dem Endanwender, eine Suche nach 3D-Objekten auszuführen, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft sind, um spezielle 3D-Objekte zu ermitteln, die Suchkriterien entsprechen. Beispielsweise könnte der Endanwender den Wunsch haben, nach 3D-Objekten zu suchen, die innerhalb einer gewissen Entfernung zu der Kamera 208 angeordnet sind. Wenn diese Entfernung kleiner ist als δ5 aber größer als δ3 und δ4, dann könnte die Abfrageeinheit 136 das 3D-Objekt 206 für den Endanwender ermitteln.
-
Die Abfrageeinheit 136 ist ferner ausgebildet, eine Suche an 3D-Objekten, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft sind, auf der Grundlage anderer nicht-räumlicher Eigenschaften dieser 3D-Objekte auszuführen. Beispielsweise kann die Abfrageeinheit 136 ein oder mehrere 3D-Objekte unter anderem auf der Grundlage von Beschreibungen dieser Objekte, ob diese Objekte durch die Visualisierungseinheit 134 gruppiert wurden, oder auf der Grundlage der Skala, mit welcher diese 3D-Objekte vorliegen, ermitteln. Die Abfrageeinheit 136 kann ferner ein oder mehrere 3D-Objekte auf der Grundlage einer beliebigen Kombination unterschiedlicher Eigenschaften, die mit diesen Objekten verknüpft sind, ermitteln. Sobald die Abfrageeinheit 136 ein oder mehrere 3D-Objekte erkannt hat, kann die Abfrageeinheit 136 veranlassen, dass eine Angabe dieser Objekte für den Endanwender angezeigt wird. Der Fachmann erkennt, dass die Abfrageeinheit 136 eine Suche an den mit dem mehrskaligen 3D-Datensatz 132 verknüpften 3D-Objekten auf der Grundlage einer breiten Fülle räumlicher und/oder nicht-räumlicher Eigenschaften ausführen kann, und dass die zuvor beschriebenen Beispiele lediglich anschaulichen Zwecken dienen.
-
Zusätzlich zur Bereitstellung von Techniken für die Visualisierung und die Durchsuchung des mehrskaligen 3D-Datensatzes 132 stellt die mehrskalige Dateneinheit 130 diverse Techniken zur Navigation durch die 3D-Umgebung, die durch den mehrskaligen 3D-Datensatz 132 repräsentiert ist, bereit. Insbesondere ist die Navigationseinheit 138 in der mehrskaligen Dateneinheit 130 ausgebildet, diverse Navigations-GUIs zu erzeugen, die es dem Endanwender ermöglichen, durch diese 3D-Umgebung zu navigieren, wie dies in Verbindung mit den 3A bis 9 und 12 nachfolgend detaillierter beschrieben ist.
-
3A zeigt eine Bildschirmaufnahme 300 einer 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Die Bildschirmaufnahme 300 repräsentiert ein Bild, das durch die Visualisierungseinheit 134 aus der Perspektive der Kamera 208 erzeugt werden kann, wie dies in Verbindung mit 2 beschrieben ist. Die Bildschirmaufnahme 300 repräsentiert die mit dem mehrskaligen 3D-Datensatz 132 verknüpfte 3D-Umgebung und kann dem Endanwender über die Anzeigeeinrichtungen 110 angezeigt werden. Wie gezeigt, enthält die Bildschirmaufnahme 300 einen Cursor 302, einen Richtungskegel 304 und ein 3D-Miniaturbild 306.
-
Die Navigationseinheit 138 ist ausgebildet, den Richtungskegel 304 zu erzeugen, um ein 3D-Objekt außerhalb des Bildschirms in der 3D-Umgebung anzugeben. In der in 3A beispielhaft gezeigten Ausführungsform zeigt das bildschirmexterne Objekt in die obere rechte Richtung hinter der Perspektive, aus der die Bildschirmaufnahme 300 aufgenommen wurde. Wenn der Endanwender jedoch den Cursor 302 über dem Richtungskegel 304 hält, erzeugt die Navigationseinheit 138 das 3D-Miniaturbild 306. Das 3D-Miniaturbild 306 repräsentiert das bildschirmexterne Objekt (in diesem Falle ist das bildschirmexterne Objekt ein Torus). Die Navigationseinheit 138 kann veranlassen, dass das 3D-Miniaturbild 306 sich dreht, um das bildschirmexterne Objekt aus diversen Perspektiven darzustellen, und kann das 3D-Miniaturbild 306 auf eine geeignete Größe skalieren. Wenn ferner ein Endanwender den Richtungskegel 304 unter Verwendung des Cursors 302 auswählt, kann die Navigationseinheit 138 den Endanwender zu dem 3D-Objekt führen, das durch den Richtungskegel 304 dargestellt ist, d. h., die Navigationseinheit 138 kann die Kameraposition, die mit dem Endanwender verknüpft ist, so ändern, dass das 3D-Objekt ein bildschirminternes Objekt wird. Die Navigationseinheit 138 ist ferner ausgebildet, Richtungskegel zu erzeugen, die Gruppen aus 3D-Objekten darstellen, wie dies in Verbindung mit 3B detaillierter nachfolgend beschrieben ist.
-
3B zeigt eine Bildschirmaufnahme 320 einer 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Wie die Bildschirmaufnahme 300 in 3A kann auch die Bildschirmaufnahme 320 durch die Visualisierungseinheit 134 erzeugt werden, um die mit dem mehrskaligen 3D-Datensatz 132 verknüpfte 3D-Umgebung darzustellen. Wie gezeigt, enthält die Bildschirmaufnahme 320 den Cursor 302, den Richtungskegel 324 und eine segmentierte Scheibe 326. Die segmentierte Scheibe enthält Scheibensegmente 326-1 bis 326-5.
-
Die Navigationseinheit 138 ist ausgebildet, den Richtungskegel 324 zu erzeugen, um eine bildschirmexterne Gruppe aus 3D-Objekten innerhalb der 3D-Umgebung anzugeben. Die bildschirmexterne Gruppe aus 3D-Objekten kann beispielsweise durch die Visualisierungseinheit 134 erzeugt werden. In der in 3B gezeigten anschaulichen Ausführungsform liegt die bildschirmexterne Gruppe aus 3D-Objekten in Richtung der oberen linken Hälfte hinter der Perspektive, aus der die Bildschirmaufnahme 320 aufgenommen wurde. Die Navigationseinheit 138 ist ferner ausgebildet, die segmentierte Scheibe 326 zu erzeugen, um die Anzahl an 3D-Objekten anzugeben, die in der bildschirmexternen Gruppe enthalten ist. Wie gezeigt, gibt die segmentierte Scheibe 326 an, dass fünf Objekte in der bildschirmexternen Gruppe enthalten sind. Die Navigationseinheit 138 kann ferner veranlassen, dass die Anzahl an bildschirmexternen Objekten explizit entlang des Richtungskegels 324 und/oder der segmentierten Scheibe 326 angezeigt wird.
-
In einer Ausführungsform kann die Navigationseinheit 138 veranlassen, dass der Richtungskegel 324 mit einer einzigartigen Farbe und/oder Oberflächenbeschaffenheit relativ zu anderen Richtungskegeln dargestellt wird, die nicht mit Gruppen von Objekten verknüpft sind (beispielsweise etwa der Richtungskegel 304 aus 3A). Durch diese Technik unterscheidet die Navigationseinheit 138 zwischen Richtungskegeln, die Gruppen aus 3D-Objekten angeben, und Richtungskegeln, die einzelne 3D-Objekte angeben.
-
Wenn ein Endanwender den Cursor 302 über dem Richtungskegel 324 hält, kann die Navigationseinheit 138 veranlassen, dass diverse 3D-Miniaturbilder dargestellt werden, die die 3D-Objekte innerhalb der bildschirmexternen Gruppe repräsentieren, und kann diese 3D-Miniaturbilder auf eine geeignete Größe skalieren. Wenn ferner ein Endanwender den Richtungskegel 324 durch Verwendung des Cursors 302 auswählt, kann die Navigationseinheit 138 den Endanwender zu der Gruppe aus 3D-Objekten navigieren, d. h., die Navigationseinheit 138 kann die mit dem Endanwender verknüpfte Kameraposition so ändern, dass die Gruppe aus 3D-Objekten auf dem Bildschirm liegt.
-
Die Navigationseinheit 138 ist ferner ausgebildet, einen oder mehrere Richtungskegel aufzunehmen, beispielsweise einen oder mehrere Richtungskegel 304 und/oder 324, wie sie zuvor beschrieben sind, in Verbindung mit diversen anderen grafischen Elementen, um unterschiedliche „Navigations-GUIs” zu erzeugen, wie dies nachfolgend in Verbindung mit den 4–9 detaillierter beschrieben ist.
-
4 zeigt eine Bildschirmaufnahme 400 der 3D-Umgebung, die mit dem mehrskalierten 3D-Datensatz 132 verknüpft ist, gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 400 einen Kegelring 402. Der Kegelring 402 ist eine „Navigations-GUI”, die von der Navigationseinheit 138 erzeugt ist, wie dies zuvor beschrieben ist. Der Kegelring 402 enthält Richtungskegel 404, 406, 408, 410 und 412, die entlang einer zweidimensionalen (2D) kreisförmigen Grenze 414 angeordnet sind. Die kreisförmige Grenze 414 ist in der Bildschirmaufnahme 400 lediglich so gezeigt, dass diese die bevorzugte Verteilung der Richtungskegel innerhalb des Kegelrings 402 darstellt und ist im allgemeinen für einen Endanwender nicht sichtbar.
-
Die Navigationseinheit 138 ist ausgebildet, den Kegelring 402 zu erzeugen, um damit 3D-Objekte und/oder Gruppen aus 3D-Objekten anzugeben, die aktuell außerhalb des Bildschirms sind, d. h. 3D-Objekte, die für einen Endanwender nicht sichtbar sind. Jeder Richtungskegel, der in dem Kegelring 402 enthalten ist, ist im wesentlichen ähnlich zu dem Richtungskegel 304 oder dem Richtungskegel 324, wie sie zuvor in Verbindung mit den 3A bzw. 3B beschrieben sind. Beispielsweise repräsentieren die Richtungskegel 406, 408 und 410 einzelne bildschirmexterne 3D-Objekte in ähnlicher Weise wie der Richtungskegel 304 aus 3A. Ferner repräsentieren die Richtungskegel 404 und 412 Gruppen aus bildschirmexternen 3D-Objekten in ähnlicher Weise wie der Richtungskegel 324 aus 3B. Ähnlich wie bei den Richtungskegeln 304 und 324 kann ein Endanwender den Cursor 302 über einem der Richtungskegel in dem Kegelring 402 halten, und in Reaktion darauf kann die Navigationseinheit 138 ein oder mehrere 3D-Miniaturbilder darstellen. Ferner kann ein Endanwender einen der Richtungskegel in dem Kegelring 402 auswählen, und in Reaktion darauf kann die Navigationseinheit 138 den Endanwender zu dem 3D-Objekt oder zu der Gruppe aus Objekten, die durch diesen Richtungskegel repräsentiert sind, navigieren.
-
Die Navigationseinheit 138 ist ausgebildet, den Kegelring 402 in der 3D-Umgebung unter einem gegebenen Abstand zu dem Endanwender zu positionieren, d. h. unter einem gegebenen Abstand zu der Kameraposition, die mit dem Endanwender verknüpft ist. Dieser Abstand kann gegebenenfalls konfigurierbar sein auf der Grundlage einer Eingabe, die von dem Endanwender erhalten wird. Die Navigationseinheit 138 ist ferner ausgebildet, den Kegelring 402 mit einer kreisförmigen Grenze 414 zu erzeugen, die einen konfigurierbaren Radius besitzt. In einer Ausführungsform ermittelt die Navigationseinheit 138 die Position und die Orientierung jedes Richtungskegels innerhalb des Kegelrings 402 auf der Grundlage der aktuellen Position des Endanwenders innerhalb der 3D-Umgebung. In einer weiteren Ausführungsform kann die Navigationseinheit 138 die Position und die Orientierung jedes Richtungskegels innerhalb des Kegelrings 402 auf der Grundlage der aktuellen Position des Kegelrings 402 in der 3D-Umgebung ermitteln.
-
In einer noch weiteren Ausführungsform kann die Navigationseinheit 138 die Position und die Orientierung jedes Richtungskegels innerhalb des Kegelrings 402 in Reaktion auf eine Änderung der Position des Endanwenders und/oder in Reaktion auf eine Änderung der Position des Kegeldings 402 dynamisch ändern. Wenn die Navigationseinheit 138 die Position eines gegebenen Richtungskegels innerhalb des Kegelrings 402 ändert, so ist der Richtungskegel im allgemeinen auf eine Bewegung entlang der kreisförmigen Grenze 414 beschränkt. Wenn ferner die Navigationseinheit 138 die Orientierung eines gegebenen Richtungskegels innerhalb des Kegelrings 402 ändert, ist dieser Richtungskegel im allgemeinen dahingehend beschränkt, dass er in Richtung auf die Mitte des Kegelrings 402 oder von diesem Zentrum weg weist.
-
Die Navigationseinheit 138 ist ferner ausgebildet, weitere Richtungskegel dem Kegelring 402 hinzuzufügen, wenn ein bildschirminternes Objekt sich nach außerhalb des Bildschirms bewegt. In dieser Situation fügt die Navigationseinheit 138 einen Richtungskegel hinzu, der das bildschirmexterne Objekt angibt. In einer Ausführungsform kann die Navigationseinheit 138 Richtungskegel innerhalb des Kegelrings 402 so aufweisen, dass sowohl bildschirmexterne als auch bildschirminterne Objekte angegeben werden. In dieser Ausführungsform kann die Navigationseinheit 138 einen Richtungskegel bereitstellen, der in Richtung auf die Mitte des Kegelrings 402 zeigt, wenn ein 3D-Objekt innerhalb der kreisförmigen Grenze 414 vorhanden ist.
-
In einer weiteren Ausführungsform kann die Navigationseinheit 138 ermitteln, ob ein 3D-Objekt (oder eine Gruppe aus 3D-Objekten) mit einem Richtungskegel auf der Grundlage der Position dieses 3D-Objekts (oder dieser Gruppe aus 3D-Objekten) anzugeben ist. Wenn beispielsweise ein gegebenes 3D-Objekt ausreichend weit von der aktuellen Position des Endanwenders entfernt ist, dann enthält die Navigationseinheit 138 gegebenenfalls keinen Richtungskegel, der dieses 3D-Objekt innerhalb des Kegelrings 402 angibt.
-
Wie nachfolgend in Verbindung mit 5 detaillierter beschrieben ist, ist die Navigationseinheit 138 ferner ausgebildet, eine „Kegelspären-” Navigations-GUI zu erzeugen, die ähnliche Eigenschaften wie der Kegelring 402, der zuvor beschrieben ist, aufweisen kann.
-
5 zeigt eine Bildschirmaufnahme 500 der 3D-Umgebung, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft ist, gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 500 eine Kegelsphäre 502. Die Kegelsphäre 502 ist eine Navigations-GUI, die von der Navigationseinheit 138 erzeugt ist und die Richtungskegel 504, 506, 508, 510, 512, 514 und 516 enthält. Die Richtungskegel, die in der Kegelsphäre 502 enthalten sind, sind entlang einer kugelförmigen 3D-Grenze 518 angeordnet. Die kugelförmige Grenze 518 ist in der Bildschirmaufnahme 500 lediglich so gezeigt, dass sie die bevorzugte Verteilung der Richtungskegel innerhalb der Kegelsphäre 502 angibt und ist im allgemeinen für einen Endanwender nicht sichtbar.
-
Wie bei dem zuvor beschriebenen Kegelring 402 ist die Navigationseinheit 138 ausgebildet, die Kegelsphäre 502 so zu erzeugen, dass 3D-Objekte und/oder Gruppen aus 3D-Objekten angegeben werden, die aktuell außerhalb des Bildschirms liegen, d. h. 3D-Objekte, die für einen Endanwender nicht sichtbar sind. Jeder Richtungskegel, der in der Kegelsphäre 502 enthalten ist, ist im wesentlichen ähnlich zu dem Richtungskegel 304 oder dem Richtungskegel 324, die zuvor entsprechend in Verbindung mit den 3A bzw. 3B beschrieben sind. Beispielsweise repräsentieren die Richtungskegel 504, 506, 512, 514 und 516 einzelne 3D-Objekte außerhalb des Bildschirms in ähnlicher Weise wie der Richtungskegel 304 aus 3A. Ferner repräsentieren die Richtungskegel 508 und 510 Gruppen aus bildschirmexternen 3D-Objekten in ähnlicher Weise wie der Richtungskegel 324 in 3B. Wie bei den Richtungskegeln 304 und 324 kann ein Endanwender den Cursor 302 über einem Richtungskegel innerhalb des Kegelrings 402 halten, und in Reaktion darauf kann die Navigationseinheit 138 ein oder mehrere 3D-Miniaturbilder anzeigen. Ferner kann ein Endanwender einen der Richtungskegel innerhalb des Kegelrings 402 auswählen, und in Reaktion darauf kann die Navigationseinheit 138 den Endanwender zu dem 3D-Objekt oder zu der Gruppe aus Objekten, die durch diesen Richtungskegel repräsentiert sind, navigieren.
-
Die Navigationseinheit 138 ist ausgebildet, die Kegelsphäre 502 innerhalb der 3D-Umgebung unter einem gegebenen Abstand zu dem Endanwender zu positionieren, d. h. unter einem gegebenen Abstand zu der Kameraposition, die mit dem Endanwender verknüpft ist. Dieser Abstand kann auf der Grundlage einer Eingabe, die von dem Endanwender eingegeben wird, konfigurierbar sein. Die Navigationseinheit 138 ist ferner ausgebildet, die Kegelsphäre 502 mit einer kugelförmigen Grenze 518 zu erzeugen, die einen konfigurierbaren Radius besitzt. In einer Ausführungsform ermittelt die Navigationseinheit 138 die Position und die Orientierung jedes Richtungskegels innerhalb der Kegelsphäre 502 auf der Grundlage der aktuellen Position des Endanwenders innerhalb der 3D-Umgebung. In einer weiteren Ausführungsform kann die Navigationseinheit 138 die Position und die Orientierung jedes Richtungskegels innerhalb der Kegelsphäre 502 auf der Grundlage der aktuellen Position der Kegelsphäre 502 innerhalb der 3D-Umgebung ermitteln.
-
In einer noch weiteren Ausführungsform kann die Navigationseinheit 138 die Position und die Orientierung jedes Richtungskegels innerhalb der Kegelsphäre 502 in Reaktion auf eine Änderung der Position des Endanwenders und/oder eine Änderung der Position der Kegelsphäre 502 dynamisch ändern. Wenn die Navigationseinheit 138 die Position eines gegebenen Richtungskegels innerhalb der Kegelsphäre 502 ändert, ist dieser Richtungskegel im allgemeinen auf eine Bewegung entlang der kugelförmigen Grenze 518 beschränkt. Wenn ferner die Navigationseinheit 138 die Orientierung eines gegebenen Richtungskegels innerhalb der Kegelsphäre 502 ändert, ist dieser Richtungskegel generell so beschränkt, dass er in Richtung zu oder von dem Mittelpunkt der Kegelsphäre 502 weg zeigt.
-
Die Navigationseinheit 138 ist ferner ausgebildet, weitere Richtungskegel der Kegelsphäre 502 hinzuzufügen, wenn sich ein Objekt von innerhalb des Schirms nach außerhalb des Schirms bewegt. In dieser Situation fügt die Navigationseinheit 138 einen Richtungskegel hinzu, der das bildschirmexterne Objekt kennzeichnet. In einer Ausführungsform kann die Navigationseinheit 138 Richtungskegel innerhalb der Kegelsphäre 502 enthalten, um sowohl bildschirmexterne als auch bildschirminterne Objekte anzugeben. In dieser Ausführungsform kann die Navigationseinheit 138 einen Richtungskegel bereitstellen, der in Richtung auf den Mittelpunkt der Kegelsphäre 502 zeigt, wenn ein 3D-Objekt innerhalb der kugelförmigen Grenze 518 liegt.
-
In einer weiteren Ausführungsform kann die Navigationseinheit 138 bestimmen, ob ein 3D-Objekt (oder eine Gruppe aus 3D-Objekten) mit einem Richtungskegel auf der Grundlage der Position dieses 3D-Objekts (oder dieser Gruppe aus 3D-Objekten) anzugeben ist. Wenn beispielsweise ein gegebenes 3D-Objekt ausreichend weit von der aktuellen Position des Endanwenders entfernt ist, dann enthält die Navigationseinheit 138 gegebenenfalls keinen Richtungskegel innerhalb der Kegelsphäre 502, der das 3D-Objekt bezeichnet.
-
Die Navigationseinheit 138 ist ausgebildet, eine 2D-Darstellung der Kegelsphäre 502 zu erzeugen, indem die Oberfläche der Kegelsphäre 502 in eine 2D-Ebene umgewandelt wird, wie dies in Verbindung mit 5 nachfolgend detaillierter beschrieben ist.
-
6 zeigt eine Bildschirmaufnahme 600 der mit dem mehrskaligen 3D-Datensatz 132 verknüpften 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 600 ein Gitter 602. Die Navigationseinheit 138 erzeugt das Gitter 602 durch Projektion der kugelförmigen Grenze 518 der Kegelsphäre 502 auf eine 2D-Ebene. Das Gitter 602 enthält Richtungskegel 604, 608, 610, 612 und 616. Die Richtungskegel innerhalb des Gitters 602 können direkt Richtungskegeln entsprechen, die auf der Oberfläche der Kegelsphäre 502 angeordnet sind.
-
Die Richtungskegel 608, 610 und 616 repräsentieren einzelne 3D-Objekte außerhalb des Bildschirms ähnlich zu dem Richtungskegel 304 der Figur Ziffer 3A. Des weiteren können die Richtungskegel 608, 614 und 620 ebenfalls erweiterte Basisobjekte 610, 616 und 618 enthalten. Die erweiterte Basis, die einen gegebenen Richtungskegel umgibt, ist auf der Grundlage des Abstandes zu der aktuellen Position des Endanwenders in Bezug auf das 3D-Objekt, das mit diesem Kegel verknüpft ist, schattiert dargestellt. Auf diese Weise geben die erweiterten Basiselemente 610, 616 und 618 den Abstand zu der aktuellen Position des Endanwenders in Bezug auf die 3D-Objekte an, die mit den Richtungskegeln verknüpft sind, die diesen erweiterten Basiselementen entsprechen.
-
Die Richtungskegel 604 und 612 repräsentieren Gruppen von bildschirmexternen 3D-Objekten ähnlich zu dem Richtungskegel 324 der 3B. Die Richtungskegel 604 und 612 enthalten ferner segmentierte Scheiben 606 bzw. 614. Die segmentierte Scheibe 606 enthält Scheibensegmente 606-1 bis 606-4, wohingegen die segmentierte Scheiben 614 Scheibensegmente 614-1 und 614-2 enthält. Ferner ist, wie die erweiterten Basiselemente 610, 616 und 618, die segmentierte Scheiben, die einen gegebenen Richtungskegel umgibt, auf der Grundlage des Abstandes zu dem 3D-Objekt, das mit diesem Kegel verknüpft ist, schattiert. Auf diese Weise geben die segmentierten Scheiben 606 und 614 den Abstand der mit den Richtungskegeln verknüpften 3D-Objekte entsprechend zu diesen segmentierten Scheiben an. In einer Ausführungsform kann der Endanwender in einen der Richtungskegel 604 oder 614 hineinzoomen, und in Reaktion darauf kann dann die Navigationseinheit 138 3D-Miniaturbilder anzeigen, die den 3D-Objekten innerhalb der Gruppe entsprechen, die durch diesen Richtungskegel repräsentiert ist.
-
Die in Verbindung mit den 4–6 beschriebenen Navigation-GUIs können zusätzlich erweitert werden, so dass sie Darstellungen von 3D-Objekten und Gruppen aus 3D-Objekten anzeigen, die außerhalb des Bildschirms positioniert sind, wie dies in Verbindung mit den 7–9 nachfolgend detaillierter beschrieben ist.
-
7A zeigt eine Bildschirmaufnahme 700 der mit dem mehrskaligen 3D-Datensatz 132 verknüpften 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 700 einen Spiegelball bzw. eine Spiegelkugel 702. Der Spiegelball 702 ist eine weitere Navigation-GUI, die von der Navigationseinheit 138 erzeugt wird. Der Spiegelball 702 besitzt eine reflektierende Oberfläche 704, auf der Bilder von bildschirmexternen Objekten auftreten können. Die reflektierende Oberfläche 704 des Spiegelballs 702 ist in Voronoi-Gebiete 710, 720, 730, 740, 750 und 760 unterteilt. Jedes Voronoi-Gebiet auf der reflektierenden Oberfläche 704 kann ein reflektiertes Bild eines anderen Bereichs der umgebenden 3D-Umgebung anzeigen. Jedes Voronoi-Gebiet kann ferner ein reflektiertes Bild eines 3D-Objekts oder einer Gruppe aus 3D-Objekten anzeigen, die innerhalb des Gebiets der 3D-Umgebung liegen, die diesem Voronoi-Gebiet entspricht. Beispielsweise reflektiert das Voronoi-Gebiet 760 ein Bild 764 eines Balls bzw. einer Kugel außerhalb des Bildschirms. In ähnlicher Weise reflektiert das Voronoi-Gebiet 750 ein Bild 752 eines außerhalb des Bildschirms liegenden Torus. Die Navigationseinheit 138 ist ausgebildet, Bilder, die von der reflektierenden Oberfläche 704 zurückgeworfen werden, so zu skalieren, dass jedes von der reflektierenden Oberfläche 704 reflektierte Bild eine ähnliche Größe besitzt.
-
Wenn ein gegebenes Voronoi-Gebiet ein Bild der 3D-Umgebung reflektiert, die ein 3D-Objekt oder eine Gruppe aus 3D-Objekten enthält, beinhaltet die Navigationseinheit 138 einen Richtungskegel innerhalb dieses Voronoi-Gebiets. Wie gezeigt, enthält das Voronoi-Gebiet 720 einen Richtungskegel 722, ein Voronoi-Gebiet 740 enthält eine Richtungskegel 742, ein Voronoi-Gebiet 750 enthält einen Richtungskegel 752 und ein Voronoi-Gebiet 760 enthält einen Richtungskegel 762. Der Richtungskegel in einem gegebenen Voronoi-Gebiet kann im wesentlichen ähnlich zu dem Richtungskegel 304 oder dem Richtungskegel 324 sein, die zuvor in Verbindung mit den 3A bzw. 3B beschrieben sind.
-
In einer Ausführungsform ermittelt die Navigationseinheit 138 die Höhe eines Richtungskegels in einem Voronoi-Gebiet auf der Grundlage des Abstands zwischen dem Spiegelball 702 und dem 3D-Objekt oder der Gruppe aus 3D-Objekten, die zu diesem Voronoi-Gebiet gehören, und/oder zwischen der Kameraposition eines Endanwenders innerhalb der 3D-Umgebung. In einer weiteren Ausführungsform ist die Navigationseinheit 138 ausgebildet, jedes Voronoi-Gebiet auf der Grundlage des Abstands zwischen dem Spiegelball 702 und dem 3D-Objekt oder der Gruppe aus 3D-Objekten, die zu diesem Voronoi-Gebiet gehören, und/oder auf der Grundlage der Kameraposition eines Endanwenders innerhalb der 3D-Umgebung zu schattieren. Wie beispielsweise gezeigt ist, erscheinen die Voronoi-Gebiete 740 und 760 schattiert, wodurch angezeigt wird, dass die entsprechenden 3D-Objekte oder die Gruppe aus 3D-Objekten relativ weit von dem Spiegelball 702 entfernt sind.
-
Die Navigationseinheit 138 ist ferner ausgebildet, mehrere Spiegelbälle innerhalb der 3D-Umgebung zu erzeugen, um es damit einem Endanwender zu ermöglichen, Gruppen aus 3D-Objekten zu navigieren, wie dies in Verbindung mit 7B nachfolgend detaillierter erläutert ist.
-
7B zeigt eine Bildschirmaufnahme 770 der mit dem mehrskaligen 3D-Datensatz 132 verknüpften 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 770 eine Spiegelballkonstellation 788. Die Spiegelballkonstellation 788 ist eine weitere Navigations-GUI, die von der Navigationseinheit 138 erzeugt ist und einen Stammspiegelball 774 und einen Ableger-Spiegelball 778 enthält, die relativ zu einem 3D-Objekt 772 angeordnet sind. Im allgemeinen erlaubt es die Spiegelballkonstellation 788 einem Endanwender, den Ableger-Spiegelball 778 mittels des Stammspiegelballs 774 zu betrachten. Die Spiegelballkonstellation 788 erlaubt es einem Endanwender ferner, das 3D-Objekt 772 über den Ableger-Spiegelball 778 zu betrachten.
-
Die Navigationseinheit 138 ist ausgebildet, den Stammspiegelball 774 und den Ableger-Spiegelball 778 relativ zu dem 3D-Objekt 772 zu erzeugen und zu positionieren, wobei dieses Objekt ein Teil einer größeren Gruppe aus 3D-Objekten sein kann, um eine bessere Betrachtung dieser Gruppe aus 3D-Objekten zu ermöglichen. Eine Grenzlinie 784 gibt die Stamm-Ableger-Abhängigkeit wischen dem Stammspiegelball 774 und dem Ableger-Spiegelball 778 an, während eine Hilfslinie 786 eine Abhängigkeit zwischen dem Ableger-Spiegelball 778 und dem 3D-Objekt 772 angibt. Der Stammspiegelball 774 und der Ableger-Spiegelball 778 sind jeweils im wesentlichen ähnlich zu dem Spiegelball 702, der zuvor in Verbindung mit 7A beschrieben ist. Der Stammspiegelball enthält das Voronoi-Gebiet 776, wohingegen der Ableger-Spiegelball das Voronoi-Gebiet 780 enthält. Wie gezeigt, reflektiert das Voronoi-Gebiet 780 ein Bild 782 des 3D-Objekts 772.
-
Bei Verwendung der Spiegelballkonstellation 788 zum Navigieren durch die 3D-Umgebung verwendet ein Endanwender typischerweise den Stammspiegelball 774, um 3D-Objekte und Gruppen aus 3D-Objekten zu erkennen. Die Navigationseinheit 138 ist ausgebildet, den Stammspiegelball 774 zu veranlassen, Gruppen aus 3D-Objekten zu repräsentieren, wobei dies unter Verwendung des Ableger-Spiegelballs 778 erfolgt. Daher kann das Voronoi-Gebiet 776 ein Bild des Ableger-Spiegelballs 778 reflektieren, der wiederum das 3D-Objekt 772 repräsentieren kann. Auf diese Weise ist die Navigationseinheit 138 ausgebildet, eine räumliche Hierarchie für Stamm-Ableger-Spiegelbälle zu erzeugen. Die Navigationseinheit 138 erlaubt es einem Endanwender ferner, in dieser räumlichen Hierarchie zu navigieren. Beispielsweise könnte ein Endanwender das reflektierte Bild des Ableger-Spiegelballs 778 innerhalb des Stammspiegelballs 774 auswählen, und in Reaktion darauf, würde die Navigationseinheit 138 die Kameraposition des Endanwenders so verschieben, dass diese in Richtung des Ableger-Spiegelballs 778 zeigt. Ferner könnte ein Endanwender dann das Bild 782 auswählen, und in Reaktion darauf würde die Navigationseinheit 138 die Kameraposition des Endanwenders so verschieben, dass diese in Richtung des 3D-Objekts 772 zeigt. In einer Ausführungsform entsprechen jeweils der Stammspiegelball 774 und der Ableger-Spiegelball 778 unterschiedlichen 3D-Datensätzen innerhalb des mehrskaligen 3D-Datensatzes 132.
-
Die Navigationseinheit 138 ist ferner ausgebildet, eine 2D-Darstellung eines Spiegelballs zu erzeugen, indem die Oberfläche dieses Spiegelballs in den 2D-Raum projiziert wird, wie dies nachfolgend detaillierter in Verbindung mit 8 beschrieben ist.
-
8 zeigt eine Bildschirmaufnahme 800 einer mit dem mehrskaligen 3D-Datensatz 132 verknüpften 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 800 eine entfaltete Oberfläche 802. Die Navigationseinheit 138 erzeugt die entfaltete Oberfläche 802 durch Entfaltung der reflektierenden Oberfläche eines Spiegelballs und durch Projektion dieser reflektierenden Oberfläche auf eine 2D-Ebene. Der Fachmann erkennt, dass die entfaltete Oberfläche 802 auf der Grundlage eines Spiegelballs unter Anwendung beliebiger technisch machbarer Algorithmen zur Entfaltung der Oberfläche einer Kugel erzeugt werden kann. Die entfaltete Oberfläche 802 enthält Voronoi-Gebiete 810, 820, 830, 840, 850, 860, 870, 880 und 890. Die Voronoi-Gebiete 810, 820 und 880 enthalten jeweils entsprechende Richtungskegel 812, 822 und 882.
-
Ein gegebener Richtungskegel, der in einem Voronoi-Gebiet der entfalteten Oberfläche 802 angeordnet ist, gibt ein Objekt oder eine Gruppe aus Objekten an, die mit diesem Voronoi-Gebiet verknüpft sind. Beispielsweise gibt der Richtungskegel 812 ein 3D-Objekt 814 an, der Richtungskegel 822 gibt eine Gruppe aus 3D-Objekten an, die 3D-Objekte 824 und 826 enthalten, und der Richtungskegel 882 bezeichnet ein 3D-Objekt 884. Die Navigationseinheit 138 ist ausgebildet, ein gegebenes 3D-Objekt oder eine Gruppe aus 3D-Objekten, die mit einem gegebenen Richtungskegel verknüpft sind, entsprechend einer speziellen Höhe über diesem Richtungskegel zu positionieren. Die Navigationseinheit 138 ermittelt diese Höhe auf der Grundlage des Abstands zwischen der Kameraposition des Endanwenders und dem 3D-Objekt oder der Gruppe aus 3D-Objekten. Wie bei dem Spiegelball 702, der zuvor in Verbindung mit 7A beschrieben ist, kann ein Endanwender zu speziellen 3D-Objekten oder Gruppen aus 3D-Objekten unter Verwendung der entfalteten Oberfläche 902 navigieren.
-
Die Navigationseinheit 138 ist ferner ausgebildet, eine Navigations-GUI mit „anamorphologischer Linse bzw. Zerrlinse” zu erzeugen, die es einem Endanwender ermöglicht, eine komprimierte Darstellung der 3D-Umgebung zu betrachten, wie dies nachfolgend detaillierter in 9 beschrieben ist.
-
9 zeigt eine Bildschirmaufnahmen 900 der mit dem mehrskaligen 3D-Datensatz 132 verknüpften 3D-Umgebung gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält die Bildschirmaufnahme 900 eine Zerrlinse 802 sowie 3D-Objekte 814, 824 und 864. Die Oberfläche der Zerrlinse 802 ist in Voronoi-Gebiete 810, 820, 830, 840, 850 und 860 unterteilt. Jedes Voronoi-Gebiet kann ein Bild anzeigen, das einem anderen Gebiet der 3D-Umgebung entspricht. Die Navigationseinheit 138 veranlasst, dass die Zerrlinse 802 Bilder aus Gebieten der 3D-Umgebung darstellt, die innerhalb eines 180-Grad-Sichtfeldes sowohl horizontal als auch vertikal liegen. Daher kann die Zerrlinse 802 Bilder sowohl von bildschirminternen als auch bildschirmexternen 3D-Objekten anzeigen.
-
Das Voronoi-Gebiet 810 zeigt ein Bild 812 des 3D-Objekts 814, das Voronoi-Gebiet 820 zeigt ein Bild 822 des 3D-Objekts 824, das Voronoi-Gebiet 850 zeigt ein Bild eines bildschirmexternen 3D-Objekts und das Voronoi-Gebiet 860 zeigt ein Bild 862 des 3D-Objekts 864. Die Navigationseinheit 138 ist ausgebildet zu veranlassen, dass jedes Voronoi-Gebiet auf der Grundlage des Abstandes von der Kameraposition des Endanwenders zu dem 3D-Objekt oder zu der Gruppe aus 3D-Objekten, die mit diesen Voronoi-Gebiet verknüpft sind, zu schattieren. Beispielsweise liegt das 3D-Objekt 824 relativ nahe an der Kameraposition des Endanwenders, und deswegen ist das Voronoi-Gebiet 820 leicht mit Farbe unterlegt. Andererseits ist das 3D-Objekt 864 relativ weit weg von der Kameraposition des Endanwenders, und daher ist das Voronoi-Gebiet 860 proportional schattiert.
-
Die Navigationseinheit 138 ist ferner ausgebildet, Bilder in jedem Voronoi-Gebiet so zu skalieren, dass jedes Bild eine ähnliche Größe besitzt. Obwohl beispielsweise das 3D-Objekt 824 relativ groß erscheint, während das 3D-Objekt 814 recht klein auftritt, erscheinen die Bilder, die diesen 3D-Objekten (die Bilder 822 bzw. 812) mit relativ gleicher Größe. In einer Ausführungsform richtet die Navigationseinheit 138 die Zerrlinse 802 in Verbindung mit dem Spiegelball 702 ein, um 3D-Objekte und Gruppen aus 3D-Objekten, die hinter der Kameraposition des Endanwenders liegen, anzuzeigen.
-
Der Fachmann erkennt, dass die Navigationseinheit 138 jede der Navigations-GUIs einrichten kann, die zuvor in Verbindung mit den 3A bis 9 beschrieben sind, und auch jede Kombination davon einrichten kann, wenn einem Endanwender es ermöglicht wird, in der 3D-Umgebung, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft ist, zu navigieren. Ferner kann die Navigationseinheit 138 eine spezielle Navigations-GUI unter anderem auf der Grundlage des mehrskaligen 3D-Datensatzes 132, eines speziellen 3D-Datensatzes innerhalb des mehrskaligen 3D-Datensatzes 132, einer Anwendereingabe und/oder von Anwenderpräferenzen oder einer aktuellen Skala der 3D-Umgebung auswählen. Des weiteren kann die Navigationseinheit 138 eine räumliche Hierarchie von Stamm-Ableger-Abhängigkeiten in der 3D-Umgebung erzeugen, indem eine Verknüpfung zwischen beliebigen der Navigation-GUIs erstellt wird.
-
10 ist ein Flussdiagramm von Verfahrensschritten zur Visualisierung eines mehrskaligen 3D-Datensatzes 132 gemäß einer Ausführungsform der Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den Systemen der 1A und 1B beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zum Ausführen der Verfahrensschritte in beliebiger Reihenfolge ausgebildet ist, innerhalb des Schutzbereichs der Erfindung liegt.
-
Wie gezeigt, beginnt das Verfahren 1000 beim Schritt 1002, in welchem die Visualisierungseinheit 134 in der mehrskaligen Dateneinheit 130 ein oder mehrere 3D-Objekte in einer 3D-Umgebung anzeigt. Die Visualisierungseinheit 134 erzeugt die 3D-Umgebung auf der Grundlage des mehrskaligen 3D-Datensatzes 132. Im Schritt 1004 ermittelt die Visualisierungseinheit 134 den linearen Abstand zwischen den jeweiligen 3D-Objekten. Im Schritt 1006 ermittelt die Visualisierungseinheit 134 den Winkelabstand zwischen jedem 3D-Objekte relativ zu einer zu einem Endanwender gehörenden Kameraposition. In der Praxis kann die Visualisierungseinheit 134 die 3D-Umgebung für die Anzeige aus der Perspektive dieser Kameraposition erzeugen. Im Schritt 1008 ermittelt die Visualisierungseinheit 134 den Abstand zwischen jedem 3D-Objekt und der zu dem Endanwender gehörenden Kameraposition.
-
Im Schritt 1010 ermittelt die Visualisierungseinheit 134 eine oder mehrere Objektgruppen auf der Grundlage der linearen Abstände zwischen den 3D-Objekten, den Winkelabständen zwischen den 3D-Objekten relativ zu der Kameraposition und/oder den Abständen zwischen den 3D-Objekten und der Kameraposition. Im Schritt 1012 veranlasst die Visualisierungseinheit 134, dass Objektgruppen in der 3D-Umgebung angezeigt werden. Durch die Implementierung des Verfahrens 1000 kann die Visualisierungseinheit 134 die 3D-Umgebung „aufräumen”, indem die Anzahl sichtbarer 3D-Objekte verringert wird.
-
11 ist ein Flussdiagramm von Verfahrensschritten zur Abfrage des mehrskaligen 3D-Datensatzes 132 gemäß einer Ausführungsform der Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den Systemen der 1A und 1B beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zum Ausführen der Verfahrensschritte in beliebiger Reihenfolge ausgebildet ist, innerhalb des Schutzbereichs der Erfindung liegt.
-
Wie gezeigt, beginnt das Verfahren 1100 im Schritt 1102, in welchem die Abfrageeinheit 136 in der mehrskaligen Dateneinheit 130 eine Abfrage von einem Endanwender erhält, die eine oder mehrere räumliche Eigenschaften spezifiziert, die mit einer gewünschten Gruppe aus 3D-Objekten verknüpft sind. Die räumlichen Eigenschaften können beispielsweise ein maximaler Abstand zu der Kameraposition sein. In einer Ausführungsform kann die Abfrage auch nicht-räumliche Eigenschaften, etwa eine Kategorie, die mit den gewünschten 3D-Objekten verknüpft ist, angeben. Im Schritt 1104 ermittelt die Abfrageeinheit 136 jegliche 3D-Objekte, die die räumlichen Eigenschaften, die in der Abfrage angegeben sind, aufweisen. Jene 3D-Objekte liegen in der 3D-Umgebung, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft ist. Im Schritt 1106 veranlasst die Abfrageeinheit 136, dass eine Angabe der ermittelten 3D-Objekte angezeigt wird. Die Angabe könnte beispielsweise ein Leuchten sein, das die ermittelten 3D-Objekte umgibt. Durch die Implementierung des Verfahrens 1100 ermöglicht es die Abfrageeinheit 136 einem Endanwender, 3D-Objekte zu ermitteln, die spezifizierte Eigenschaften aufweisen.
-
12 ist ein Flussdiagramm von Verfahrensschritten zur Erzeugung einer Navigations-GUI auf der Grundlage des mehrskaligen 3D-Datensatzes 132 gemäß einer Ausführungsform der Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den Systemen der 1A und 1B beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zum Ausführen der Verfahrensschritte in beliebiger Reihenfolge ausgebildet ist, innerhalb des Schutzbereichs der Erfindung liegt.
-
Wie gezeigt beginnt das Verfahren 1200 beim Schritt 1202, in welchem die Navigationseinheit 138 in der mehrskaligen Dateneinheit 130 eine aktuelle Kameraposition in einer 3D-Umgebung erhält, die mit dem mehrskaligen 3D-Datensatz 132 verknüpft ist. Die aktuelle Kameraposition kann verwendet werden, um ein Bild der 3D-Umgebung zur Anzeige für einen Endanwender zu erzeugen. Im Schritt 1204 ermittelt die Navigationseinheit 138 eine Gruppe aus 3D-Objekten innerhalb der 3D-Umgebung. Die 3D-Objekte können einzelne 3D-Objekte oder Gruppen aus 3D-Objekten sein. Im Schritt 1206 ermittelt die Navigationseinheit 138 eine oder mehrere räumliche Eigenschaften, die mit den 3D-Objekten verknüpft sind. Im Schritt 1208 veranlasst die Navigationseinheit 138, dass eine oder mehrere Navigations-GUIs auf der Grundlage der einen oder mehreren räumlichen Eigenschaften angezeigt werden.
-
Der Fachmann erkennt, dass das Verfahren 1200 wiederholt eingerichtet werden kann, wenn ein Endanwender durch die 3D-Umgebung unter Anwendung der Navigations-GUI navigiert. Beispielsweise kann ein Endanwender, nachdem die Navigationseinheit 138 veranlasst, dass eine Navigations-GUI durch Implementierung des Verfahrens 1200 angezeigt wird, die Navigations-GUI bearbeiten, um die Kamera zu einer anderen Position innerhalb der 3D-Umgebung zu verschieben. Die Navigationseinheit 138 kann dann veranlassen, dass eine weitere Navigations-GUI angezeigt wird, indem wiederum das Verfahren 1200 implementiert wird. Somit kann durch die Einrichtung des Verfahrens 1200 ein oder mehrere Male die Navigationseinheit 138 veranlassen, dass diverse unterschiedliche Navigations-GUIs angezeigt werden.
-
Zusammengefasst gilt: eine mehrskalige Dateneinheit ist ausgebildet, auf einen mehrskaligen 3D-Datensatz zuzugreifen und eine 3D-Umgebung auf der Grundlage dieses mehrskaligen 3D-Datensatzes zu erzeugen. Die mehrskalige Dateneinheit manipuliert die 3D-Umgebung, so dass diverse 3D-Objekte innerhalb dieser Umgebung gruppiert werden. Die mehrskalige Dateneinheit kann ferner eine Suche in der 3D-Umgebung durchführen, um 3D-Objekte zu ermitteln, die Suchkriterien, die von einem Endanwender erhalten werden, erfüllen. Ferner ist die mehrskalige Dateneinheit ausgebildet, diverse Navigations-GUIs zu erzeugen, die es dem Endanwender ermöglichen, durch die 3D-Umgebung zu navigieren. Vorteilhafterweise werden für einen Endanwender diverse Techniken zur Interaktion mit einer komplexen 3D-Umgebung bereitgestellt, die beobachtbare Eigenschaften entsprechend einer breiten Fülle unterschiedlicher Skalen bzw. Skalierung enthält. Derartige Vorgehensweisen sind wichtig, um Anwender mit den visuell auftretenden Details in Verbindung zu bringen, die mit jeder unterschiedlichen Skalierung derartiger 3D-Umgebungen verknüpft sind.
-
Eine Ausführungsform der Erfindung kann als ein Programmprodukt zur Verwendung in einem Computersystem eingerichtet werden. Das bzw. die Programme des Programmprodukts definieren Funktionen der Ausführungsformen (einschließlich der hierin beschriebenen Verfahren) und können in einer Vielzahl von computerlesbaren Speichermedien enthalten sein. Zu anschaulichen computerlesbaren Speichermedien gehören, ohne Einschränkung: (i) nicht-beschreibbare Speichermedien (zum Beispiel Nur-Lese-Speichereinrichtungen in einem Computer, etwa CD-ROM-Disketten, die von einem CD-ROM-Laufwerk gelesen werden können, ein Flash-Speicher, ROM-Chips oder eine beliebige Art eines nicht-flüchtigen Halbleiterspeichers), auf denen Information permanent gespeichert ist; und (ii) beschreibbare Speichermedien (beispielsweise Disketten in einem Diskettenlaufwerk oder ein Festplattenlaufwerk oder eine beliebige Art eines Halbleiterspeichers mit wahlfreiem Zugriff), auf denen veränderbare Information gespeichert ist.
-
Die Erfindung ist zuvor mit Bezug zu speziellen Ausführungsformen beschrieben. Der Fachmann erkennt jedoch, dass diverse Modifizierungen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Grundgedanken und dem Schutzbereich der Erfindung, wie sie in den angefügten Patentansprüchen dargelegt ist, abzuweichen. Die vorhergehende Beschreibung und die Zeichnungen sind daher in anschaulichem Sinne anstatt in einem beschränkenden Sinne zu betrachten. Die Erfindung ist in den folgenden Ansprüchen angegeben.