DE202014010937U1 - Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene - Google Patents

Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene Download PDF

Info

Publication number
DE202014010937U1
DE202014010937U1 DE202014010937.0U DE202014010937U DE202014010937U1 DE 202014010937 U1 DE202014010937 U1 DE 202014010937U1 DE 202014010937 U DE202014010937 U DE 202014010937U DE 202014010937 U1 DE202014010937 U1 DE 202014010937U1
Authority
DE
Germany
Prior art keywords
map
texture
geometry
scene
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE202014010937.0U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202014010937U1 publication Critical patent/DE202014010937U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Remote Sensing (AREA)
  • Instructional Devices (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

Computergerät, umfassend:
eine Benutzeroberfläche, die ein
Anzeigegerät umfasst; einen oder
mehrere Prozessoren;
ein greifbares, computerlesbares Medium, auf dem Anweisungen gespeichert sind, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das Computergerät veranlassen:
2D-Kartendaten zu empfangen, die Elemente einer digitalen 2D-Karte angeben, worin die 2D-Kartendaten in einem Koordinatensystem parametrisiert werden, das mit der Projektion einer kugelförmigen Fläche auf eine ebene Fläche verbunden ist;
einen Hinweis einer Perspektive einer virtuellen Kamera in Bezug auf eine 3D-Szene in einem 3D-Koordinatensystem zu empfangen;
mithilfe der 3D-Kartendaten eine Kartentextur für die Anwendung auf die 3D-Szene in Übereinstimmung mit der Perspektive der virtuellen Kamera zu erzeugen; und
die Kartentextur auf die 3D-Szene anzuwenden.

Description

  • Gebiet der Offenbarung
  • Die vorliegende Offenbarung bezieht sich auf Kartendarstellungssysteme einschließlich elektronischer Kartenanzeigesysteme und insbesondere auf ein Kartendarstellungssystem, bei dem Kartenbilder mithilfe zweidimensionaler (2D) Kartendaten mit einer dreidimensionalen (3D) Szene dargestellt werden. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • Hintergrund
  • Die hierin angegebene Hintergrundbeschreibung soll den Kontext der Offenbarung allgemein darstellen. Die Arbeit der vorliegend genannten Erfinder, in dem Umfang, wie sie in diesem Hintergrundabschnitt beschrieben ist, sowie Aspekte der Beschreibung, die zum Zeitpunkt der Anmeldung sonst möglicherweise nicht als Stand der Technik qualifiziert sind, werden weder ausdrücklich noch stillschweigend als Stand der Technik gegenüber der vorliegenden Offenbarung anerkannt.
  • Heutzutage unterstützen eine Vielzahl von Computergeräten, z. B. viele tragbaren Geräte, Softwareanwendungen, die digitale Karten („Kartenanwendungen”) anzeigen. Einige dieser Kartenanwendungen sind interaktiv und bieten Benutzern die Möglichkeit, nützliche Informationen wie zum Beispiel eine Route zu einem bestimmten Ziel zu erfassen. Die Route kann eines oder mehrere Kartenelemente enthalten, z. B. Straßen oder Wege, die aus zweidimensionalen (2D) Kartendaten dargestellt und dem Betrachter angezeigt werden. Die 2D-Kartendaten enthalten keine Höheninformationen und die Kartenelemente werden in einem flachen Format dargestellt. Das flache Format bietet dem Betrachter jedoch keine Informationen, die mit der vertikalen Beziehung der Kartenelemente mit Strukturen, Vegetation oder hügeligem Gelände in der Nähe verbunden sind.
  • Andere computerbasierte Kartenanwendungen bieten Benutzern eine lebensechte interaktive Landschaft mithilfe dreidimensionaler (3D) Kartendaten, die 3D-Geometrie der Landschaft und Fotos der Strukturen, Straßen, Vegetation und des Geländes in der Landschaft enthalten können. Die Daten, die die 3D-Geometrie definieren, können ein Satz an Vertizes sein, die durch Ränder wie zum Beispiel ein 3D-Netz miteinander verbunden sind. Fotos oder andere Bilder werden verwendet, um die 3D-Geometrie zu „texturieren”. Die 3D-Kartendaten werden normalerweise in einem 3D-Koordinatensystem statt in einem 2D-Koordinatensystem einer 2D-Karte definiert.
  • Zusammenfassung
  • Eine Softwareanwendung wie ein Webbrowser oder eine Kartenanwendung erweitert eine 3D-Szene eines geografischen Gebiets genau und effizient durch 2D-Kartendaten, die demselben geografischen Gebiet entsprechen. Die 3D-Szene wird mithilfe von 3D-Kartendaten erzeugt, die die 3D-Geometrie (z. B. ein Netz) und Bildtexturen beschreiben. 2D-Kartendaten werden normalerweise verwendet, um eine flache 2D-Darstellung eines geografischen Gebiets zu erzeugen. Um die 2D-Kartendaten auf die 3D-Szene anzuwenden, stellt die Softwareanwendung die 2D-Kartendaten oder einige der ausgewählten Elemente der 2D-Kartendaten in einer „Kartentextur” dar, die auf die 3D-Geometrie angewandt werden kann. Dazu bestimmt die Software eine Perspektive der virtuellen Kamera in Bezug auf die 2D-Karte auf Basis der Position der virtuellen Kamera im 3D-Koordinatensystem der 3D-Szene. Weiter kann, wenn die 3D-Geometrie in Geländeschichtgeometrie und Gebäude- und Vegetationsschichtgeometrie getrennt ist oder getrennt werden kann, die Softwareanwendung die Kartentextur auf die Geländeschichtgeometrie anwenden. Noch weiter kann die Softwareanwendung bestimmte Kartenelemente über die Geländeschichtgeometrie anheben, indem sie Z-Versatzwerte der Pixel in der Kartentextur anpasst.
  • Insbesondere wird in einer beispielhaften Implementierung ein Verfahren für die Erweiterung einer 3D-Szene durch 2D-Kartendaten in einem Computergerät implementiert. Das Verfahren beinhaltet den Empfang von 3D-Kartendaten, die 3D-Geometriedaten und Bildtexturdaten enthalten. Für eine angegebene Perspektive einer virtuellen Kamera in einem 3D-Koordinatensystem beinhaltet das Verfahren die Darstellung der Geometrie der 3D-Szene mithilfe der 3D-Geometriedaten, wobei die angegebene Perspektive eine Position und Ausrichtung in Bezug auf die 3D-Szene beinhaltet. Das Verfahren umfasst des Weiteren die Erzeugung einer Kartentextur mithilfe der 2D-Kartendaten in Übereinstimmung mit der Perspektive der virtuellen Kamera im 3D-Koordinatensystem und die Anwendung (i) der Bildtextur und (ii) der Kartentextur auf die dargestellte Geometrie.
  • In Übereinstimmung mit noch einer weiteren Beispielimplementierung beinhaltet ein Computergerät eine Benutzeroberfläche mit einem Anzeigegerät, einen oder mehrere Prozessoren und ein greifbares, computerlesbares Medium, auf dem Anweisungen gespeichert sind. Wenn die Anweisungen von dem einen oder den mehreren Prozessoren ausgeführt werden, veranlassen sie das Computergerät, (i) 2D-Kartendaten zu empfangen, die Elemente einer digitalen 2D-Karte angeben, wobei die 2D-Kartendaten in einem Koordinatensystem parametrisiert sind, das mit der Projektion einer kugelförmigen Fläche auf eine ebene Fläche verbunden ist, (ii) einen Hinweis auf eine Perspektive einer virtuellen Kamera in Verbindung mit einer 3D-Szene in einem 3D-Koordinatensystem zu empfangen, (iii) mithilfe der 3D-Kartendaten eine Kartentextur für die Anwendung auf die 3D-Szene in Übereinstimmung mit der Perspektive der virtuellen Kamera zu erzeugen, und (iv) die Kartentextur auf die 3D-Szene anzuwenden.
  • In Übereinstimmung mit noch einer anderen Beispielimplementierung speichert das greifbare, nicht flüchtige, computerlesbare Medium Anweisungen. Wenn diese Anweisungen von einem oder mehreren Prozessoren ausgeführt werden, veranlassen sie den einen oder die mehreren Prozessoren, 3D-Kartendaten zu empfangen, die 3D-Geometriedaten und Bildtexturdaten enthalten und, für eine angegebene Perspektive einer virtuellen Kamera in einem 3D-Koordinatensystem, die Geometrie der 3D-Szene mithilfe der 3D-Geometriedaten darzustellen, wobei die angegebene Perspektive eine Position und eine Ausrichtung in Bezug auf die 3D-Szene umfasst. Die ausgeführten Anweisungen veranlassen außerdem die Erzeugung der Kartentextur mithilfe der 2D-Kartendaten in Übereinstimmung mit der Perspektive der virtuellen Kamera im 3D-Koordinatensystem und die Anwendung (i) der Bildtextur und (ii) der Kartentextur auf die dargestellte Geometrie.
  • Gemäß noch einer anderen Implementierung enthält ein Computergerät (i) ein Mittel für den Empfang von 3D-Kartendaten, die 3D-Geometriedaten und Bildtexturdaten enthalten, (ii) ein Mittel für die Darstellung, für eine angegebene Perspektive einer virtuellen Kamera in einem 3D-Koordinatensystem, der Geometrie der 3D-Szene mithilfe der 3D-Geometriedaten, wobei die angegebene Perspektive eine Position und Ausrichtung in Bezug auf die 3D-Szene enthält, (iii) ein Mittel für die Erzeugung einer Kartentextur mithilfe der 2D-Kartendaten in Übereinstimmung mit der Perspektive der virtuellen Kamera im 3D-Koordinatensystem und (iv) ein Mittel für die Anwendung der Bildtextur und der Kartentextur auf die dargestellte Geometrie
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines Bilddarstellungssystems, in dem Techniken der vorliegenden Offenbarung eingesetzt werden, um eine 3D-Szene durch 2D-Kartendaten zu erweitern.
  • 2A veranschaulicht ein Beispiel einer texturierten 3D-Szene.
  • 2B veranschaulicht ein Beispiel einer 3D-Geometrie, die in zwei texturierten Schichten organisiert ist.
  • 2C veranschaulicht einen Krümmungsfaktor, der berücksichtigt werden kann, wenn Bilder aus einer Kameraposition in einer größeren Höhe dargestellt werden.
  • 2D veranschaulicht eine Beispieldarstellung eines großen geografischen Gebiets vor Berücksichtigung der Krümmung der Erde (links) und nach Berücksichtigung der Krümmung der Erde (rechts).
  • 3A veranschaulicht schematisch die Darstellung von 2D-Kartendaten gemäß einer bestimmten Perspektive einer virtuellen Kamera in einem 3D-Raum.
  • 3B veranschaulicht schematisch die Verwendung von Geländeinformationen zur Darstellung von 2D-Kartendaten gemäß einer bestimmten Perspektive einer virtuellen Kamera in einem 3D-Raum.
  • 4A veranschaulicht schematisch eine Technik für die Erweiterung einer 3D-Szene durch 2D-Karteninformationen, gemäß der Geländeschicht-3D-Geometrie und Gebäude- und Vegetationsschicht-3D-Geometrie mit ihren jeweiligen Bildtexturen dargestellt werden und Geländeschicht-3D-Geometrie erneut mit ansichtsabhängiger 2D-Kartentextur dargestellt wird.
  • 4B veranschaulicht schematisch eine weitere Technik für die Erweiterung einer 3D-Szene durch 2D-Karteninformationen, gemäß der Bildtextur und ansichtsabhängige 2D-Kartentextur auf ein 3D-Netz einschließlich einer Geländeschicht-3D-Geometrie und einer Gebäude- und Vegetationsschicht-3D-Geometrie angewandt werden.
  • 4C veranschaulicht schematisch eine weitere Technik für die Erweiterung einer 3D-Szene durch 2D-Karteninformationen, gemäß der Geländebildtextur und ansichtsabhängige 2D-Kartentextur auf eine Geländeschicht-3D-Geometrie angewandt werden und eine Gebäude- und Vegetationsschichtbildtextur auf eine Gebäude- und Vegetationsschicht-3D-Geometrie angewandt wird.
  • 5 ist ein Ablaufdiagramm eines Beispielverfahrens für die Erweiterung einer 3D-Szene durch 2D-Kartendaten, das im System von 1 verwendet werden kann.
  • 6A ist ein Ablaufdiagramm eines Beispielverfahrens für die Erzeugung von 2D-Kartentextur in Übereinstimmung mit einer Perspektive einer Kamera in Bezug auf eine 3D-Szene, das im System von 1 verwendet werden kann.
  • 6B ist ein Ablaufdiagramm eines Beispielverfahrens, das im System von 1 für die selektive Korrektur der Kameraposition aufgrund der Krümmung der Erde verwendet werden kann.
  • 7A7C sind Ablaufdiagramme beispielhafter Verfahren für die Erweiterung einer 3D-Szene durch eine 2D-Karte, das im System von 1 verwendet werden kann.
  • 8A ist ein Ablaufdiagramm eines Beispielverfahrens für die Anwendung von 2D-Kartentextur auf die Geländeschicht mithilfe der Höhe, das im System von 1 verwendet werden kann.
  • 8B ist ein Ablaufdiagramm eines Beispielverfahrens, das im System von 1 für die Erzeugung einer 2D-Kartentextur verwendet werden kann, in der nicht ausgewählte Elemente transparent sind.
  • Detaillierte Beschreibung
  • Übersicht
  • Mithilfe der Techniken der vorliegenden Offenbarung erweitert eine Softwareanwendung wie eine Kartenanwendung oder ein Webbrowser eine dreidimensionale (3D) Szene effizient und genau mit Daten, die verwendet werden, um eine zweidimensionale digitale (2D) Karte derselben geografischen Region zu erzeugen. Als Folge kann die Softwareanwendung das umfassende Erlebnis digitaler 3D-Karten mit der Reichhaltigkeit der Informationen digitaler 2D-Karten verbinden. Zum Beispiel kann die Softwareanwendung Straßeninformationen überlagern, die von einer 2D-Karte in einer 3D-Szene bereitgestellt werden, um die Straße mithilfe verschiedener Farben je nach Live-Verkehrsbedingungen anzeigen. Als weiteres Beispiel kann die Softwareanwendung es dem Benutzer ermöglichen, die Straße auf einer 3D-Karte über die Benutzerschnittstelle auszuwählen und hervorzuheben.
  • Digitale 2D- und 3D-Karten unterscheiden sich in mehreren Beziehungen. Im Allgemeinen bietet eine digitale 2D-Karte, die auf einem Bildschirm eines Computergeräts angezeigt wird, eine Übersicht über eine geografische Region in einem planaren Format ähnlich einer herkömmlichen Papierkarte. Die digitale 2D-Karte wird mithilfe von Daten („2D-Kartendaten) erzeugt, die verschiedene Kartenelemente beschreiben, z. B. Straßen, Fahrradwege, Fußgängerwege, Gebäude, Parks, Gewässer usw. Auch wenn einige 2D-Karten Text oder topographische Linien enthalten können, die eine Höhe angeben, sind mit den meisten Kartenelementen wie Straßen, Routen und Wegen keine Höhenparameter verbunden. Digitale 2D-Karten können in einem 2D-Koordinatensystem parametrisiert werden, das mit der Projektion einer kugelförmigen Fläche auf eine ebene Fläche verbunden ist, z. B. einem Mercator oder einem Plate Carrée.
  • Andererseits ist eine digitale 3D-Karte eine 3D-Darstellung einer geografischen Region. Digitale 3D-Karten werden mithilfe von 3D-Kartendaten erzeugt, die 3D-Geometriedaten (z. B. 3D-Netz) und Bildtexturen enthalten. Die 3D-Geometrie wird in ein 3D-Koordinatensystem parametrisiert, das zum Beispiel ein kartesianisches System sein kann. Als spezifischeres Beispiel können digitale 3D-Karten in das erdzentrierte, erdfixierte (earth-centered, earth-fixed, ECED) Koordinatensystem parametrisiert werden. Aus Gründen der Klarheit beziehen sich die folgenden Beispiele auf kartesianische Systeme. Die Bildtextur kann mithilfe von Fotos der echten Umgebung erstellt werden und demgemäß eine 3D-Karte mit einem realistischeren Erscheinungsbild als eine 2D-Karte derselben Region bereitstellen. Jedoch ist die 3D-Geometrie individueller Kartenmerkmale wie Gebäude, Straßen, Bäume usw. normalerweise nicht leicht vom 3D-Netz trennbar. Zum Beispiel kann ein 3D-Netz die Geometrie eines Geländes und einer Straße definieren, die über das Gelände verläuft, aber nicht die Grenzen, die die Straße vom Gelände trennt. Es ist daher schwierig, einzelne Kartenmerkmale oder Gruppen von Kartenmerkmale getrennt auszuwählen und zu bearbeiten.
  • Die Erzeugung einer bestimmten Ansicht einer 3D-Szene kann als Betrachten der 3D-Szene durch das Ansichtsfenster einer virtuellen (d. h. imaginären) Kameraposition an einem bestimmten Punkt im Koordinatensystem der 3D-Szene und mit einer bestimmten Ausrichtung in Bezug auf die 3D-Szene betrachtet werden. Neben Zoomen und Schwenken kann der Benutzer Roll-, Nick- und Gierparameter der Kamera steuern. Position und Ausrichtung einer virtuellen Kamera sind zusammen als „Kamerapose” bekannt und werden auch als „Kameraansicht” oder „Perspektive der Kamera” bezeichnet. In einigen Szenarios ändern sich die Kameraposen als Reaktion auf Benutzereingaben häufig (z. B. mehrmals pro Sekunde).
  • Um 2D-Kartendaten auf eine 3D-Szene anzuwenden, stellt die Software in einer Implementierung 2D-Kartendaten in Übereinstimmung mit der aktuellen Perspektive der virtuellen Kamera im Koordinatensystem der 3D-Szene dar. Dazu legt die Softwareanwendung eine 2D-Karte auf eine imaginäre 2D-Ebene in einer 3D-Umgebung, damit die 2D-Karte durch eine virtuelle Kamera in einer geneigten und gedrehten Perspektivenansicht beobachtet werden kann. Die Softwareanwendung kann Koordinaten der virtuellen Kamera aus dem Koordinatensystem der 3D-Szene in das Koordinatensystem der 2D-Karte verschieben. Wie unten näher erörtert, berücksichtigt diese Verschiebung zumindest in einigen der Fälle die Krümmung der Erde. Mithilfe der bestimmten Position der virtuellen Kamera stellt die Softwareanwendung die 2D-Karte so dar, dass sie eine Textur („Kartentextur”) erzeugt, die dann auf die 3D-Geometrie angewandt werden kann.
  • Beim Erzeugen von Kartentexturen kann die Softwareanwendung einige der Elemente, die in den 2D-Kartendaten enthalten sind, auf transparente Weise darstellen, während sie andere Elemente auf nicht transparente Weise darstellt. Die Softwareanwendung kann dadurch die gewünschten Kartenelemente für die Anwendung auf eine 3D-Szene auswählen. Die Softwareanwendung kann zum Beispiel eine Straße auf einer Kartentextur darstellen, während sie die Elemente rund um die Straße transparent macht. Die Kartentextur in diesem Szenario kann demgemäß als „Straßentextur” bezeichnet werden. Andere Beispiele für Kartenelemente, die für die Anwendung auf eine 3D-Szene in Form einer Textur ausgewählt werden, sind z. B. Beschriftungen, POI(Point of Interest)-Indikatoren usw.
  • Um sowohl Bildtextur als auch Kartentextur auf die 3D-Geometrie einer Szene ordnungsgemäß anzuwenden, kann die Software getrennte Beschreibungen von zwei oder mehreren vertikalen Schichten der 3D-Geometrie erhalten. Insbesondere kann die 3D-Geometrie in eine Geländeschicht und in eine Gebäude- und Vegetationsschicht getrennt werden, die jeweils getrennt und unabhängig von der anderen Schicht dargestellt und texturiert werden können. Die Geländeschicht definiert die untere Schicht und die Gebäude- und Vegetationsschicht definiert die obere Schicht der 3D-Geometrie. Wenn getrennte Definitionen oder die Geometrie der zwei Schichten verfügbar sind, kann die Softwareanwendung die Geometrie der Geländeschichten sowie die Geometrie der Gebäude- und Vegetationsschicht darstellen und Bildtextur auf beide Schichten anwenden. Dann kann die Softwareanwendung die Geometrie der Geländeschicht erneut darstellen und die Kartentextur auf die neu dargestellte Geometrie anwenden.
  • Des Weiteren kann die Softwareanwendung in einigen Fällen die Kartentexturen und Bildtexturen auf 3D-Geometrie anwenden, um ein Kartenelement wie eine Straße, eine Bahnlinie, einen Fahrrad- oder Fußweg usw. über der Geländeschicht sowie der unteren Vegetation (wo nötig), aber nicht über Gebäuden oder großen Bäumen, zu drapieren. Dazu kann die Softwareanwendung einen kleinen Höhen-(oder Tiefen-)Versatz entsprechend bestimmter Kartenelemente auf die Kartentextur anwenden. Der Tiefenversatz kann mithilfe von Z-Versatzwerten implementiert werden. Gemäß einer solchen Implementierung wird ein Versatz von ca. 30 Meter im Weltraum automatisch in den Z-Versatz für die bestimmte 3D-Szene übersetzt.
  • Ein beispielhaftes System und mehrere beispielhafte Techniken für die Integration von 2D-Kartendaten mit einer 3D-Szene werden unten unter Bezugnahme auf 1 bis 8B näher erörtert.
  • Beispielsystemarchitektur
  • 1 stellt eine beispielhafte Ausführungsform eines Bilddarstellungssystems 100 dar, bei dem eine 3D-Szene durch 2D-Daten erweitert werden kann. Ein Clientgerät 102 ist mit einer 2D-Kartendaten-Datenbank 104 und einer 3D-Geometrie- und Texturdatenbank 106 über einen Kartenserver 108 gekoppelt. Auch wenn die Datenbanken 104 und 106 im System 100 getrennt sind, können 2D-Kartendaten und 3D-Kartendaten (aus 3D-Geometrie und Texturen bestehend) im Allgemeinen in einer oder mehreren getrennten Datenbanken gespeichert werden. Die 2D-Kartendaten und die 3D-Kartendaten können den Datenbanken 104 und 106 durch dieselben oder andere Quellen, Anbieter, individuelle Benutzer usw. bereitgestellt werden.
  • Gemäß einigen Implementierungen beschreiben 2D-Kartendaten in der Datenbank 104 Formen, Linienstärken, Füllfarben, Textbeschriftungen und andere Attribute von Kartenelementen. Zum Beispiel können die Kartenelemente in einem Vektorgrafikformat erzeugt werden, das verschiedene geometrische Formen (z. B. mithilfe mathematischer Beschreibungen von Punkten und Pfaden, die die Punkte verbinden) angibt sowie, wie die geometrischen Formen für die Darstellung der verschiedenen Kartenelemente positioniert werden sollen. Somit kann, statt jedes Pixel anzugeben, aus dem ein Rasterbild eines Liniensegments besteht, eine vektorbasierte Beschreibung des Liniensegments die zwei Endpunkte des Liniensegments angeben sowie, dass diese zwei Endpunkte durch eine gerade Linie verbunden sind. Vektorbasierte Beschreibungen von Kartenelementen können in diesem Dokument als Vektordeskriptoren oder einfach Vektoren bezeichnet werden und ein Satz aus einem oder mehreren Vektordeskriptoren kann als Vektordaten oder 2D-Kartendaten bezeichnet werden.
  • In einigen Fällen können 3D-Kartendaten in der Datenbank 106 mithilfe automatischer Techniken, z. B. Scannen oder Synthese (z. B. mithilfe von structure from motion (SFM) oder einer anderen geeigneten 3D-Geometrierekonstruktionstechnik) und/oder manueller Modellierung erzeugt werden. Wie oben erörtert, beinhalten 3D-Kartendaten 3D-Geometrie und Texturen, die auf die 3D-Geometrie angewandt werden können.
  • Ein Kartendatenserver 108 ist mit den Datenbanken 104, 106 und einem Netzwerk 110 gekoppelt. Das Netzwerk 110 kann ein Wide Area Network (WAN), z. B. das Internet, ein Local Area Network (LAN) oder jede geeignete Art von Netzwerk sein. Um dem Clientgerät 102 Karten- und Merkmalsdaten bereitzustellen, kann der Kartendatenserver 108 elektronische Nachrichten einschließlich Kartendaten erzeugen und diese Nachrichten über das Netzwerk 110 senden. In anderen Implementierungen sind die Datenbanken 104 und 106 mit verschiedenen jeweiligen Server gekoppelt (die durch unterschiedliche Anbieter der Kartendaten betrieben werden können).
  • Das Clientgerät 102 kann mit dem Netzwerk 110 über ein kabelgebundenes oder kabelloses Kommunikationsprotokoll gekoppelt sein. Das Clientgerät 102 kann eine oder mehrere Zentraleinheiten (CPUs) 112, eine(n) oder mehrere Grafikkarten oder Grafikprozessoren (GPUs) 114, die sich der effizienten Darstellung von Bildern widmen, und einen Speicher 116, der volatile (z. B. RAM) und nicht volatile (z. B. Flash) Komponenten beinhalten kann, umfassen. Die CPU 112 und/oder der GPU 114 sind so konfiguriert, dass sie Anweisungen verschiedener Softwareanwendungen und Module ausführen, die im Speicher 116 gespeichert sind.
  • Insbesondere speichert der Speicher 116 eine 2D-Textur-Rendering-Engine 120, eine 3D-Geometrie-Rendering-Engine 122, eine 2D-Texturanwendungs-Engine 124, die jeweils aus Anweisungen in einer oder mehreren Programmiersprachen bestehen können. Je nach Implementierung können die Anweisungen der Softwarekomponenten 120124 für die Ausführung direkt auf der CPU 112 oder bei Laufzeit durch eine andere Softwareanwendung, z. B. einen Webbrowser oder eine spezielle Kartenanwendung (beides nicht dargestellt), kompiliert werden. Des Weiteren können einige oder alle Komponenten 120124 Grafikprogramme genannt „Shader” enthalten. Shader können zum Beispiel in einer Open Graphics Library(OpenGL)-Pipeline verwendet werden und sie können direkt auf den GPU 114 zugreifen, um ihre große Rechenleistung zu nutzen, um visuell reichhaltige Darstellung mit interaktiver Leistung zu erreichen. Insbesondere werden „Vertex-Shader” im Allgemeinen bei Vertizes im zwei- oder dreidimensionalen Raum verwendet, während „Fragment-Shader” bei einzelnen Pixeln verwendet werden. Ein Vertex-Shader kann angeben, wie Vertizes in einem Dreieck, das in einem Puffer gespeichert ist, umgewandelt werden sollen, um das Dreieck je nach Perspektive, Drehung usw. auf eine bestimmte Weise darzustellen. Ein Fragment-Shader kann dann Pixel in entsprechender Farbe im Dreieck erzeugen. Neben OpenGL können Shader in anderen Grafik-Frameworks wie zum Beispiel Direct3D verwendet werden. Darüber hinaus können Shader in einigen Systemen komplett auf der CPU ausgeführt werden.
  • Im Betrieb erzeugt die 2D-Textur-Rendering-Engine Texturen 120 für die Anwendung auf 3D-Geometrie mithilfe von 2D-Kartendaten und in Übereinstimmung mit der Perspektive einer virtuellen Kamera im Koordinatensystem der 3D-Geometrie. In anderen Worten, die 2D-Textur-Rendering-Engine 120 stellt eine 2D-Karte auf einer flachen Ebene wie durch eine virtuelle 3D-Kamera beobachtet dar, d. h. eine virtuelle Kamera, deren Position und Ausrichtung in einem 3D-Koordinatensystem definiert ist. Beispieltechniken, die die 2D-Textur-Rendering-Engine 120 implementieren kann, sind unten zum Beispiel unter Bezugnahme auf 3A, 3B, 6A und 6B erörtert. De 3D-Geometrie-Rendering-Engine 122 stellt 3D-Geometrie in eine oder mehrere Schichten organisiert dar, wie unter Bezugnahme auf 2A und 2B näher erörtert. Die 2D-Texturanwendungs-Engine 124 wendet die Texturen, die von der Engine 120 erzeugt wurden (sowie Bildtexturen, die als Teil der 3D-Kartendaten bereitgestellt werden), auf die Geometrie an, die von der Engine 122 erzeugt wurde, wie unter Bezugnahme auf 4A–C, 7A–C und 8A–B erörtert.
  • Bei Ausführung durch die CPU 112 und/oder den GPU 114 geben Softwarekomponenten grafische Inhalte über eine Benutzeroberfläche aus, die eine oder mehrere Anzeigebildschirme und/oder Eingabegeräte 118 enthält. Die Geräte 118 können einen oder mehrere Bildschirme, einen Touchscreen, eine Tastatur, eine Maus usw. enthalten.
  • Unter fortgesetzter Bezugnahme auf 1 speichert Speicher 116 außerdem einen Frame-Puffer 126 für das Off-Screen-Rendering. Gemäß einigen Ausführungsformen stellen die Komponenten 120124 zuerst 2D-Kartenelemente für den Frame-Puffer 126 dar und kopieren dann die Pixel zu einer Textur.
  • Zur Vereinfachung werden nur eine Instanz des Kartendatenservers 108, des Clientgeräts 102 und der 2D- und 3D-Kartendatenbanken 104, 106 in 1 veranschaulicht. Jedoch kann in anderen Ausführungsformen das System 100 mehr als einen Kartenserver 108, mehr als ein Clientgerät 102, mehr als eine 2D-Kartendatenbank 104 und/oder mehr als eine 3D-Kartendatenbank 106 umfassen. Des Weiteren stellt der Kartendatenserver 108 in einigen Ausführungsformen Kartendaten für eines oder mehrere verschiedene Clientgeräte 102 bereit, z. B. tragbare Computergeräte, Tablet-Computergeräte, Smartphones, Desktop-Computergeräte usw.
  • Zweischichtige Darstellung der Geometrie einer 3D-Szene
  • 2A veranschaulicht eine 3D-Szene 200, die mithilfe von 3D-Kartendaten erzeugt wurde, die eine 3D-Geometrie und Bildtextur enthalten. Die 3D-Szene 200 stellt verschiedene Objekte der realen Welt wie Straßen, Gebäude, Bäume usw. und Geländemerkmale wie Hügel dar. Die 3D-Kartendaten sind in einer umfangreichen Geometrie vorhanden und einzelne Objekte sind aus der einzelnen Geometrie nicht problemlos identifizierbar, auswählbar oder trennbar.
  • Auch wenn es möglich ist, eine Kartentextur (erzeugt mithilfe von 2D-Kartendaten) auf eine einzelne Geometrie der 3D-Szene 200 anzuwenden, spiegelt die resultierende Szene die physische Realität nicht immer ordnungsgemäß wider. Zum Beispiel kann es so aussehen, als ob eine Straße über ein sehr großes Gebäude drapiert ist. Um solche Ergebnisse zu vermeiden, kann die Geometrie der 3D-Szene 200 in zwei Schichten, Geländeschichtgeometrie und Gebäude- und Vegetationsschichtgeometrie, getrennt werden, und die Kartentextur kann nur auf die Geländeschicht angewandt werden.
  • 2B veranschaulicht Beispielfragmente von zwei Schichten der 3D-Geometrie, die aus der 3D-Geometrie einer einzelnen Schicht von 2A mithilfe jeder geeigneten Technik abgeleitet werden können, einschließlich solcher, die Fachleuten bekannt sind. Zusammen stellen eine Geländeschicht-3D-Geometrie 202 und eine Gebäude und Vegetationsschicht-3D-Geometrie 204 die Geometrie der 3D-Szene 200 dar. Die Geländeschicht-3D-Geometrie 202 beschreibt die Oberfläche einer geografischen Region. Die Gebäude- und Vegetationsschicht-3D-Geometrie 204 gibt die Formen von Gebäuden, Brücken, Überführungen und anderen Strukturen sowie Bäumen, Büschen und anderer Vegetation an. Jede der Schicht-3D-Geometrien 202 und 204 kann mit der Bildtextur texturiert werden. Die Bildtextur kann zum Beispiel fotografisch sein.
  • Unter erneuter Bezugnahme auf 1 kann die Darstellung der 3D-Geometrie der Komponentenschichten wie in 2B schematisch veranschaulicht zum Beispiel in der 3D-Geometrie-Rendering-Engine 122 implementiert werden.
  • Bestimmung der Position der virtuellen Kamera in Bezug auf 2D-Kartendaten beim Erzeugen von Kartentexturen
  • Allgemein gesagt, müssen zur Erweiterung der 3D-Szene von 2A mit 2D-Kartendaten, insbesondere 2D-Kartenelementen wie Straßen und/oder Routen, die 2D-Kartendaten der 3D-Geometrie der 3D-Szene 200 entsprechen. Jedoch haben, wie oben erörtert, 2D-Kartendaten und 3D-Kartendaten eine unterschiedliche Parametrisierung, sie befinden sich in unterschiedlichen Koordinatensystemen usw. Des Weiteren liefert die einfache Einstellung einer virtuellen Kamera über einer flachen 2D-Karte auf derselben Höhe wie die virtuelle Kamera im Koordinatensystem der 3D-Szene nicht dasselbe gewünschte Ergebnis. Wie in 2C veranschaulicht, macht die Krümmung der Erde die sichtbare Oberfläche (siehe arcLen) größer, als wenn die Erde flach wäre (siehe flatLen), insbesondere auf größeren Höhen der virtuellen Kamera (an dem mit dem Auge markierten Ort). Zur weiteren Klarheit veranschaulicht das Bild links in 2D eine begrenzte Ansicht, die erzeugt wird, wenn die 2D-Textur-Rendering-Engine 120 oder ein ähnliches Modul die Krümmung der Erde nicht berücksichtigt und das Bild rechts in 2D veranschaulicht das Ergebnis, wenn die Engine 120 die Krümmung der Erde berücksichtigt.
  • Unter jetziger Bezugnahme auf 3A kann die Engine 120 von 1 zum Beispiel als 2D-Textur-Rendering-Engine 304 implementiert werden. Im Betrieb empfängt die Engine 304 2D-Kartendaten 300 und Geländeschicht-3D-Geometrie 302 und erzeugt eine ansichtsabhängige 2D-Kartentextur 306, die der auf die 3D-Geometrie angewandten Bildtextur ähnlich ist. Die Engine 304 kann mehrere Komponenten umfassen, z. B. ein Kameraansicht-Bestimmungsmodul 308, das die Position der virtuellen Kamera in Bezug auf eine 2D-Karte bestimmt, ein Krümmungsfaktor-Berechnungsmodul 309, das Korrekturen an der Kartentextur 306 erzeugt, usw.
  • Gemäß einer Beispielimplementierung bestimmt das Kameraansicht-Bestimmungsmodul 308 die folgenden Parameter der virtuellen Kamera, die in Bezug auf eine 2D-Karten entsprechend den 2D-Kartendaten 300 positioniert ist: (i) einen Zielpunkt, der im Koordinatensystem der 2D-Kartendaten 300 bestimmt wird (z. B. Mercator), (ii) eine Zieldistanz zur 2D-Karte wie im Koordinatensystem der 2D-Kartendaten 300 berechnet, (iii) Neigung und (iv) Rotation. 3B veranschaulicht die Bestimmung dieser Parameter genauer. Zur Klarheit wird die Beispielimplementierung von 3A und 3B in Bezug auf Mercator- und kartesianische Koordinatensysteme erörtert.
  • Das Kameraansicht-Bestimmungsmodul 308 bestimmt den Zielpunkt als Schnittpunkt des Flugrichtungsvektors (DOF) und der Geländeoberflächenschicht-3D-Geometrie 302 zum Beispiel mithilfe von Raycasting. Es ist zu beachten, dass das Kameraansicht-Bestimmungsmodul 308 nur die Geländeschicht-3D-Geometrie (oder das Netz) 310 berücksichtigt, während sie Gebäude und Vegetationen ignoriert, die die entsprechende 3D-Szene ebenfalls enthalten kann. Auf diese Weise bestimmt das Kameraansicht-Bestimmungsmodul 308 eine Position und Ausrichtung der virtuellen Kamera, die eine relativ glatte Kartentextur 312 ermöglicht (da die Kartentextur 312 dann über das Gelände, aber nicht über die Gebäude, wie oben erörtert drapiert wird).
  • Um die Zieldistanz zu bestimmen, wandelt das Kameraansicht-Bestimmungsmodul 308 die kartesianischen Koordinaten der virtuellen Kamera im Raum der 3D-Szene in Mercator-Koordinaten um. Das Kameraansicht-Bestimmungsmodul 308 berechnet dann die Distanz zwischen der umgewandelten Kameraposition und dem Zielpunkt der 2D-Karte. Die Berechnung liefert im Allgemeinen eine akzeptable Übereinstimmung zwischen dem kartesianischen und dem Mercator-Raum. Wenn sich die virtuelle Kamera jedoch in großer Höhe befindet, ergibt eine Technik, die die Krümmung der Erde nicht berücksichtigt, Ränder ohne Kartentexturen (siehe 2D, Bild links). Demgemäß erzeugt das Krümmungsfaktor-Berechnungsmodul 309 einen geeigneten Krümmungsfaktor. In einigen Implementierungen erzeugt das Krümmungsfaktor-Berechnungsmodul 309 einen Krümmungsfaktor nur in bestimmten Höhen der virtuellen Kamera, wie unten näher erörtert.
  • Des Weiteren kann, um die Neigungsparameter T zu erzeugen, das Kameraansicht-Bestimmungsmodul 308 die Kameramatrix verwenden, die im kartesianischen Raum der virtuellen Kamera definiert wurde. Wenn die Matrix dem kanonischen Kameramodell entspricht, kann das Ansicht-Bestimmungsmodul 308 die Neigungswerte direkt vom kanonischen Modell übernehmen.
  • Ähnlich kann das Ansicht-Bestimmungsmodul 308 Rotationsparameter R aus dem kanonischen Kameramodell übernehmen.
  • Anwendung eines Krümmungskorrekturfaktors auf Kartentexturen
  • Unter Bezugnahme auf 2C und 3A kann das Krümmungsfaktor-Berechnungsmodul309 einen Krümmungskorrekturfaktor bestimmen, den das Kameraansicht-Bestimmungsmodul 308 mit dem Zieldistanzparameter bei der Bestimmung einer Ansicht der virtuellen Kamera für die Verwendung mit den 2D-Kartendaten 300 multiplizieren kann. Die Module 308 und 309 können somit einen größeren Bereich exponieren, wenn die Krümmung der Erde ein Faktor bei größeren Höhen wird.
  • Das Krümmungsfaktor-Berechnungsmodul 309 kann den Krümmungskorrekturfaktor ableiten, indem es eine ideale Einstellung annimmt, bei der der Ansichtskegel direkt in Richtung Erdmittelpunkt gerichtet ist. Das Diagramm 206 in 2C stellt einige der Parameter dar, die das Krümmungsfaktor-Berechnungsmodul 309 bei Darstellung eines Bildes in größeren Höhen bestimmt. Der Ursprung ist auf das Auge (0) festgelegt und der Erdmittelpunkt ist x0. Der Winkel Alpha (α) ist gegeben durch:
    Figure DE202014010937U1_0002
    wobei fovy ein Sichtfeld entlang der Halbdiagonalen des Ansichtskegels bei Annahme eines quadratischen Ansichtskegels ist. Der Radius der Erde ist r.
  • Der Krümmungskorrekturfaktor CCF ist gegeben durch: CCF = arcLen / flatLen (Gl. 2)
  • Des Weiteren kann flatLen mithilfe von Trigonometrie berechnet werden: flatLen = (x0 – r)tan(α) (Gl. 3)
  • Das Krümmungsfaktor-Berechnungsmodul 309 bestimmt arcLen mithilfe des idealen Ansichtskegels. Zuerst kann das Krümmungsfaktor-Berechnungsmodul 309 Punkt x bestimmen, der der Schnittpunkt zwischen der Kugel und der Linie ist:
    Figure DE202014010937U1_0003
  • Dann kann das Krümmungsfaktor-Berechnungsmodul 309 arcLen wie folgt mithilfe des näheren der beiden Schnittpunkte bestimmen:
    Figure DE202014010937U1_0004
  • Somit kann das Krümmungsfaktor-Berechnungsmodul 309 flatLen berechnen mithilfe von Gleichung 3, arcLen mithilfe von Gleichung 5 und CCF mithilfe von Gleichung 1.
  • Darstellung der 3D-Geometrie mit Kartentexturen
  • Unter erneuter Bezugnahme auf 1 kann die 2D-Texturanwendungs-Engine 124 eine Kartentextur, z. B. Kartentextur 306 oder 312 von 3B, auf eine 3D-Geometrie anwenden. Die 2D-Texturanwendungs-Engine 124 kann einen Fragment-Shader enthalten, der Pixel aus der Kartentextur nachschlägt und diese Pixel über der Textur der 3D-Geometrie 200 einblendet. In einem typischen Szenario beinhaltet die Kartentextur Pixel des gewünschten Kartenelements, z. B. Straßen, in einem nicht transparenten Format, und andere Kartenelemente oder Hintergrundfarben in einem transparenten Format. In anderen Worten, die 2D-Texturanwendungs-Engine 124 blendet effektiv nur diese Kartenelemente über der Textur der 3D-Geometrie 200 ein. Effiziente Techniken für die Anwendung sowohl von Kartentexturen als auch von Bildtexturen auf 3D-Geometrie werden unten näher erörtert.
  • Um eine 3D-Geometrie mit Kartentexturen zu texturieren, die mithilfe von 2D-Kartendaten erzeugt wurden, wandelt die 2D-Texturanwendungs-Engine 124 2D-Kartendaten aus einem 3D-Koordinatensystem in ein 2D-Koordinatensystem um, z. B: aus Mercator in kartesianisch. Alternativ kann die 3D-Geometrie von kartesianisch zu Mercator umgewandelt werden. Die Umwandlung zwischen den Koordinatensystemen ist nicht linear und umfasst mehr als eine einzelne Matrixmultiplikation. Darüber hinaus haben die Quell- und Zielräume äußerst dynamische Bereiche (da sie sich über den gesamten Globus erstrecken) und erfordern demgemäß doppelte Genauigkeitsberechnungen. Jedoch unterstützen nur einige der zurzeit verfügbaren GPUs diese Funktionalität.
  • Gemäß einer Implementierung implementiert die 2D-Texturanwendungs-Engine 124 zwei weniger komplexe Umwandlungen, eine für Kameraansichten in größeren Höhen und eine andere für Kameraansichten in niedrigeren Höhen.
  • Für nahe Kameraansichten in niedrigeren Höhen, wo Genauigkeit ein wichtiger Aspekt ist, ist der beobachtbare Oberflächenbereich der Erde angemessen klein. Daher kann bei näheren Ansichten die 2D-Texturanwendungs-Engine 124 die Umwandlung von kartesianisch zu Mercator (oder in die entgegengesetzte Richtung, falls gewünscht) mit einer linearen Umwandlung approximieren. 3D-Kartendaten sind in einigen Implementierungen in einem Oktonärbaum organisiert, d. h. eine Datenstruktur, in der ein Knoten, der eine Raumeinheit darstellt, acht untergeordnete Elemente hat, die jeweils ein Achtel der Raumeinheit darstellen. Diese Approximation ermöglicht die Verkettung der Matrizen vom lokalen Modellraum aus jedem Oktonärbaumknoten zum Raum der Kartentextur. Die Verkettung der Matrizen kann in der CPU in doppelter Genauigkeit erfolgen und die resultierende Matrix kann im Speicher gespeichert werden. Da die Umwandlung zwischen zwei niedrigen dynamischen Bereichsräumen erfolgt, kann die 2D-Texturanwendungs-Engine 124 die resultierende Matrix in einfacher Genauigkeit speichern und diese Matrix in Shadern im GPU verwenden.
  • Für weit entfernte Kameraansichten in großen Höhen verwendet die 2D-Texturanwendungs-Engine 124 keine lineare Approximation, da die Krümmung der Erde eine erhebliche Auswirkung auf die Umwandlung hat. Da jedoch diese Ansicht weiter weg ist, ist die Genauigkeit nicht so wichtig und daher kann die 2D-Texturanwendungs-Engine 124 eine vollständige nicht lineare Umwandlung von kartesianisch zu Mercator (und nachfolgender Kartentextur) in einem Vertex- oder Fragment-Shader durchführen.
  • In einer Beispielimplementierung schaltet die 2D-Texturanwendungs-Engine 124 zwischen dem nahen Kameraansichtsmodus und dem weit entfernten Kameraansichtsmodus ca. 15 km über Meereshöhe um.
  • Als Teil der Konstruktion der linearen Umwandlung von einem Oktonärbaumknoten zu Texturraum kann die 2D-Texturanwendungs-Engine 124 eine lokale Approximation (erste Ordnung) der Matrix matrixMercatorVonKartesianisch konstruieren. Diese Matrix kann eine Funktion des Orts, pivotkartesianisch, sein, die dem Punkt (z. B. der Höhe) entspricht, an dem die lineare Umwandlung genau ist. Der Fehler erhöht sich wahrscheinlich, wenn sich die Ansicht weiter vom Punkt pivotkartesianisch entfernt. Die Matrix matrixMercatorVonKartesianisch kann verwendet werden, um Koordinaten umzuwandeln, die angemessen nah bei dem Punkt liegen, der durch pivotkartesianisch dargestellt wird. Um diese Approximation zu erstellen, wird pivotMercator (pivotKartesianisch entsprechend) zuerst berechnet. Dies ist eine nicht lineare Umwandlung, die doppelte Genauigkeit erfordert, was zum Beispiel problemlos in JavaScript bestimmt werden kann.
  • Die 2D-Texturanwendungs-Engine 124 kann Matrix T erzeugen, um pivot von den kartesianischen Koordinaten zu subtrahieren. Eine zweite Matrix, R, kann erstellt werden, um die Rotation zu berücksichtigen. Der obere linke 3 × 3-Teil der Matrix R ist die Jacobimatrix: JKartesianisch->Mercator (x, y, z). Dies erfordert die Berechnung der partiellen Ableitungen der Mercator-Komponenten in Bezug auf jede kartesianische Dimension, entweder analytisch oder durch finite Differenzierung. Es wird dann eine weitere Matrix, M zur Verschiebung mit dem pivot-Versatz im Mercator-Raum erzeugt. Die vollständige matrixMercatorVonkartesianisch ist dann gegeben durch: matrixMercatorVonKartesianisch = M·R·T (Gl. 6)
  • Die 2D-Texturanwendungs-Engine 124 kann außerdem Matrix matrixBildschirmVonMercator konstruieren, um die vollständige kartesianische Ansichtspipeline einschließlich Verschiebung, Rotation, Neigung und Projektion zu codieren. In der Implementierung, in der eine Kartentextur erzeugt wird, um Straßen auf einer 3D-Szene zu überlagern, kann diese Matrix matrixStraßeTexturVonMercator genannt werden. Angenommen, diese 3D-Geometrie wird in einer räumlichen Datenstruktur gespeichert, die als Oktonärbaum organisiert ist (mit den oben erörterten Eigenschaften), und weiter angenommen, Matrix matrixkartesianischVonKartesianischOktonärbaumKnoten ist bekannt, kann die 2D-Texturanwendungs-Engine 124 die vollständige Matrix matrixStraßeTexturVonKartesianischOktonärbaumKnoten, für die Verwendung beim effizienten Nachschlagen von Kartentexturen aus 2D-Kartendaten wie folgt berechnen: matrixStraßeTexturVonkartesianischOktonärbaumknoten = matrixStraßeTexturVonMercator· matrixMercatorVonkartesianisch· matrixKartesianischVonKartesianischOktonärbaumKnoten (Gl. 7)
  • Diese Matrix wandelt direkt vom niedrigen dynamischen Bereichsraum zu einem anderen Raum um. Somit kann diese Matrix in eine einfache Genauigkeitsmatrix konvertiert und im GPU 114 gespeichert werden. Während des Betriebs können die Komponenten 120124 diese Matrix verwenden, um Vertexdaten schnell und effizient mit einer einfachen Genauigkeitsmatrix-Multiplikation umzuwandeln.
  • Darüber hinaus ermöglicht es die Verwendung von matrixStraßeTexturVonKartesianischOktonärbaumKnoten Komponenten 120124, Kartentexturen auf die 3D-Geometrie für beliebige Ansichten der virtuellen Kamera im Koordinatensystem einer 2D-Karte anzuwenden, auch wenn die 2D-Kartenansicht nicht genau der 3D-Kartenansicht entspricht.
  • Es ist des Weiteren zu beachten, dass in einigen Implementierungen die Komponenten 120124 eine ansichtsfensterspezifische Kartentextur zwischenspeichern kann, die wie oben erörtert erzeugt wurde. Wenn sich die Perspektive der virtuellen Kamera ändert, können die Komponenten 120124 manchmal die Kartentextur erneut verwenden. Wenn zum Beispiel die Änderungen an der Perspektive der virtuellen Kamera relativ gering sind, können die Komponenten 120124 die 3D-Geometrie jedes Mal erneut darstellen, die Kartentextur aber nur für jede Nte Änderung erneut erzeugen, während sie die zwischengespeicherte Kartentextur für die anderen N – 1 Instanzen verwenden. In diesem Fall können die Komponenten 120124 die Geschwindigkeit der Erzeugung einer 3D-Szene, die mit Bildtexturen und Kartentexturen texturiert ist, auf Kosten einer gewissen Genauigkeit erhöhen
  • Techniken für die Anwendung von 2D-Kartentexturen sowie Bildtexturen auf 3D-Geometrie
  • Als Nächstes werden mehrere Beispieltechniken für die Anwendung von Bildtextur zusammen mit Kartentextur auf 3D-Geometrie erörtert. Diese Techniken können zum Beispiel in Computergeräten wie dem Clientgerät 102 implementiert werden. Als spezifischeres Beispiel können die in 4A–C und 7AC veranschaulichten Techniken in der 2D-Texturanwendungs-Engine 124 implementiert werden. Diese Techniken können teilweise in JavaScript und teilweise in Shader-Programmen implementiert werden, die zum Beispiel dem OpenGL-Standard entsprechen. Allgemeiner können diese Techniken mithilfe von Anweisungen in einer oder mehreren geeigneten Programmiersprachen implementiert und auf einem greifbaren, nicht flüchtigen computerlesbaren Medium (z. B. Flash-Speicher) gespeichert und auf einem oder mehreren Prozessoren und/oder einer oder mehreren Grafikkarten ausgeführt werden. Falls gewünscht, ist es auch möglich, mindestens einige dieser Verfahren auf verteilte Weise mithilfe mehrerer Computer zu implementieren, z. B. in einer Cloud-Computerumgebung.
  • Unter jetziger Bezugnahme auf 4A4C werden mehrere verschiedene Ansätze für die Erweiterung einer 3D-Szene durch 2D-Kartendaten als Sequenz von Frames visuell darstellt. 4A veranschaulicht eine beispielhafte Techik, gemäß der sowohl Geländeschicht-3D-Geometrie als auch Gebäude- und Vegetationsschicht-3D-Geometrie der 3D-Szene zuerst dargestellt werden, wie schematisch in Frame 400 veranschaulicht. Als Nächstes wird Bildtextur auf die 3D-Geometrien der Geländeschicht und der Gebäude- und Vegetationsschicht angewandt, um eine texturierte 3D-Szene zu erhalten (Frame 402). Es ist zu beachten, dass in Frame 402 die Straße, die durch den bewaldeten Bereich verläuft, teilweise durch Bäume verdeckt ist, wie wahrscheinlich in der physischen Welt der Fall, die die 3D-Szene darstellt.
  • Eine ansichtsabhängige 2D-Kartentextur wird mithilfe der oben erörterten Techniken erzeugt (Frame 404). Es ist zu beachten, dass, auch wenn die Kartentextur in Frame 404 Elemente neben der in dunkler Schattierung dargestellten Straßen enthält, einige Kartenelemente mithilfe von Alpha-Blending oder einer anderen geeigneten Technik transparent gemacht werden können. Zum Beispiel können alle Teile der Kartentextur mit Ausnahme der Straße transparent sein.
  • Als Nächstes wird die Geländeschicht-3D-Geometrie (Frame 406) mit der ansichtsabhängigen 2D-Kartentextur erneut dargestellt, um eine erweiterte 3D-Szene, die in Frame 408 veranschaulicht wird, zu erzeugen. Wie unten näher erörtert, wird, wenn die 2D-Kartentextur eine nicht transparente Straße enthält, ein bestimmter Z-Versatzwert verwendet, um die Straße über einen Teil der niedrigeren Vegetation zu bringen, die Straße aber unter großen Gebäuden, Bäumen usw. zu halten. Da die Vegetation in der 3D-Szene von 4A niedrig ist, überlagert die Straße in Frame 408 die Vegetation.
  • Eine weitere beispielhafte Technik für die Erweiterung einer 3D-Szene mit 2D-Kartendaten ist als Sequenz von Frames in 4B dargestellt. Hier werden die Bildtextur und die ansichtsabhängige 2D-Kartentextur auf die Geländeschicht-3D-Geometrie und die Gebäude- und Vegetationsschicht-3D-Geometrie (Frame 410) im selben Durchgang angewandt. In der resultierenden 3D-Szene (Frame 412) verdeckt die in dunkler Schattierung dargestellte Straße die Gebäude- und Vegetationsschicht unabhängig von der Höhe der Gebäude oder Bäume.
  • Eine noch weitere Technik für die Erweiterung einer 3D-Szene mit 2D-Kartendaten ist als Sequenz von Frames in 4C dargestellt. Die Geländeschicht-3D-Geometrie wird dargestellt (Frame 420) und die Bildtextur wird zusammen mit der Kartentextur auf die Geländeschicht-3D-Geometrie angewandt. Das resultierende Bild enthält 2D-Kartenelemente über einer texturierten Geländeschicht (Frame 422). Die Bildtextur wird dann auf eine Gebäude- und Vegetationsschicht-3D-Geometrie angewandt, um eine texturierte Gebäude- und Vegetationsschicht zu erzeugen (Frame 424). Die dargestellte Geländeschicht (Frame 422) und die dargestellte Gebäude- und Vegetationsschicht (Frame 424) können dann integriert werden, um die erweiterte 3D-Szene zu erhalten (Frame 426). Gemäß dieser Technik verdeckt jedoch die texturierte Gebäude- und Vegetationsschicht die Straße, die in dunkler Schattierung dargestellt ist, wie in Frame 426 zu sehen.
  • Anwendung eines Tiefenversatzes auf Kartentextur
  • In einer Beispielausführungsform von Clientgerät 102 bestimmt die 2D-Texturanwendung 124 einen Z-Versatzwert und wendet ihn an, sodass Kartenelemente wie Straßen über Überführungen dargestellt werden und Bäume trotzdem von den meisten größeren Strukturen verdeckt werden. Der Z-Versatzwert kann empirisch bestimmt werden und/oder von der geografischen Region abhängen, z. B. Stadt, ländliche Gegend usw. Der Wert des Z-Versatzes kann zum Beispiel angesichts der durchschnittlichen Höhe von in der Nähe gelegenen Strukturen gewählt werden, z. B. 50 m. Alternativ können Daten von einem Erdbeobachtungssystem (earth observing system, EOS) verwendet werden, um die Höhe oder Tiefe des Z-Versatzes für die Implementierung mit einem Vertex-Shader des Bilddarstellungssystems 100 auszuwählen. Um den Versatz zu implementieren, können die vom Vertex-Shader erzeugten Z-Werte in einem geeigneten Umfang verschoben werden.
  • Gemäß einigen Implementierungen wendet die 2D-Texturanwendung 124 den Z-Versatzwert im Clipraum an, um den Bildschirmraumort der Vertizes nicht zu verschieben. Wie bekannt, haben Vertizes in Clip-Koordinaten einen vierten Parameter, w. Um den Z-Versatzwert im Clip-Raum angesichts eines gewünschten Augenraumversatzes zu bestimmen, kann die unten beschriebene Ableitungstechnik verwendet werden.
  • Die Ableitung des Augenraums Z in Bezug auf den Z-Pufferwert kann angenommen werden als gegeben durch:
    Figure DE202014010937U1_0005
  • Der gewünschte Versatz im Z-Pufferwert kann geschätzt werden als
  • Figure DE202014010937U1_0006
  • Als Nächstes kann zClip_Versatz, Versatz, das dieses Ergebnis erreicht, aufgelöst werden durch:
    Figure DE202014010937U1_0007
  • Somit ist
  • Figure DE202014010937U1_0008
  • Als nächstes Wird die Ableitung ∂zeb berechnet. Die Projektionsmatrix clipVonAuge hat nur drei Elemente, die für diese Berechnung relevant sind:
    Figure DE202014010937U1_0009
  • Gegeben sei
    Figure DE202014010937U1_0010
    wClip = 1,
    Figure DE202014010937U1_0011
  • Auflösung für zAuge ergibt
    Figure DE202014010937U1_0012
    und
  • Figure DE202014010937U1_0013
  • Um die Überlagerungstechniken für die Kartentextur (oder in diesem Fall die Straßentextur) der vorliegenden Offenbarung zu implementieren, können Gleichungen 10, 12 und 15 direkt in einem Vertex-Shader implementiert werden, der als Komponente der 2D-Texturanwendung 124 betrieben wird.
  • Weitere Veranschaulichungen
  • Zur weiteren Klarheit werden Ablaufdiagramme mehrerer Beispielverfahren, die in System 100 implementiert werden können, als Nächstes erörtert.
  • 5 ist ein Ablaufdiagramm eines Beispielverfahrens 500 für die Erweiterung einer 3D-Szene durch 2D-Kartendaten, das zum Beispiel in Komponenten 120124 und von CPU 112 und teilweise vom GPU 114 ausgeführt werden kann. Allgemeiner kann das Verfahren 500 als Satz von Anweisungen implementiert werden, die in einem computerlesbaren Speicher gespeichert sind und auf einem oder mehreren Prozessoren ausgeführt werden können, und es kann in jedem geeigneten Clientgerät (Verbraucher) oder, falls gewünscht, einem Netzwerkserver betrieben werden.
  • Bei Block 502 werden digitale 3D-Kartendaten für die Erzeugung einer 3D-Szene am System empfangen. Die empfangenen Daten können 3D-Geometriedaten und Bildtexturdaten umfassen. Die 3D-Geometriedaten können Netzdaten umfassen, die eine Vielzahl miteinander verbundener Vertizes angeben. In manchen Fällen können die 3D-Geometriedaten getrennte, unabhängig interpretierbare Geländeschicht-Geometriedaten und Gebäude- und Vegetationsschicht-Geometriedaten umfassen.
  • Ein Hinweis auf eine Ansicht der virtuellen Kamera in einem 3D-Koordinatensystem (3D-Kameraansicht) wird am System empfangen (Block 504). Wie oben erörtert, entspricht die 3D-Kameraansicht einer bestimmten Perspektive einschließlich einer Position und Ausrichtung im 3D-Koordinatensystem.
  • Als Nächstes werden bei Block 506 2D-Kartendaten empfangen. Die 2D-Kartendaten können in einem Koordinatensystem parametrisiert werden, das mit der Projektion einer kugelförmigen Fläche auf eine ebene Fläche verbunden ist, z. B. einem Mercator oder einem Plate Carrée. Die 2D-Kartendaten können vektorbasierte 2D-Geometriedaten umfassen.
  • Die 2D-Kartendaten werden verwendet, um eine 2D-Kartentextur in Übereinstimmung mit der 3D-Kartenansicht zu erzeugen (Block 508). Die Erzeugung der Kartentextur kann die Darstellung von Kartenelementen, die in den 2D-Kartendaten enthalten sind, in einer Textur und die Darstellung von Bereichen frei von Kartenelementen in transparenten Fragmenten der Textur umfassen. In einigen Implementierungen beinhaltet die Erzeugung der Kartentextur auch die Darstellung der 2D-Kartendaten in einem Frame-Puffer einer Grafikpipeline und das nachfolgende Kopieren des Frame-Puffers in eine Textur. Die Erzeugung der Kartentextur kann auch die Darstellung von Kartenelementen eines bestimmten Typs, der in den 2D-Kartendaten enthalten ist, in der Textur und die Darstellung von Kartenelementen eines anderen Typs (oder aller anderen Typen) in transparenten Bereichen der Textur umfassen, wie unter Bezugnahme auf 8B erörtert. Der Typ der Kartenelemente, die nicht transparent dargestellt werden, kann je nach Szenario Straßen, Beschriftungen und Points of Interest(POI)-Indikatoren umfassen.
  • Bei Block 510 ist eine 3D-Szene in Übereinstimmung mit der 3D-Kamera, die sowohl die Kartentextur als auch die Bildtexturen verwendet. Das Verfahren wird nach Block 510 abgeschlossen.
  • Unter nächster Bezugnahme auf 6A kann ein Beispielverfahren 600 für die Erzeugung einer 2D-Kartentextur in Übereinstimmung mit einer Perspektive einer Kamera in Bezug auf eine 3D-Szene in einer 2D-Textur-Rendering-Engine, z. B. Engine 120 aus 1 oder Engine 304 aus 3A, implementiert werden. Gemäß diesem Verfahren wird eine 3D-Kameraansicht, die eine Angabe einer Kameraansicht in einem kartesianischen Koordinatensystem oder einem anderen geeigneten 3D-Koordinatensystem ist, bei Block 602 empfangen. Als Nächstes wird bei Block 604 ein Zielpunkt auf einer Oberfläche einer 2D-Karte mithilfe von Geländeschichtgeometrie und eines Flugrichtungsvektors (DOF) bestimmt. Die Koordinaten der Kamera werden dann aus dem kartesianischen Koordinatensystem zum Mercator-Koordinatensystem der 2D-Karte bei Block 606 umgewandelt und die Neigung und Rotation der 3D-Kamera in Bezug auf die 2D-Karte werden bei Block 608 bestimmt. Falls gewünscht, kann ein Krümmungskorrekturfaktor bestimmt und auf den Zieldistanzparameter der 2D-Kameraansicht bei Block 610 angewandt werden.
  • 6B veranschaulicht Beispielverfahren 620, das auch in einer 2D-Textur-Rendering-Engine für die selektive Korrektur der Kameraposition aufgrund der Krümmung der Erde implementiert werden kann.
  • Ein Hinweis einer 3D-Kameraansicht in einem kartesianischen Koordinatensystem wird bei Block 622 empfangen. Als Nächstes wird ein Höhenschwellenwert bei Block 624 empfangen. Der Höhenschwellenwert kann in Form von Meter in der physischen Welt ausgedrückt werden, die durch die 3D-Szene dargestellt wird. Der Höhenschwellenwert kann zum Beispiel 30 Meter sein und eine Konvertierung in Z-Versatzwerte kann wie oben erörtert implementiert werden.
  • Bei Block 626 wird die vertikale Komponente der Position der 3D-Kamera mit dem Höhenschwellenwert verglichen. Wenn die 3D-Kamera zurzeit niedriger als der Höhenschwellenwert positioniert ist, wird eine lineare Umwandlung zwischen dem kartesianischen und dem Mercator-Koordinatensystem angewandt (Block 628). Kein Krümmungsfaktor wird angewandt, wenn der Ablauf von Block 626 den Zweig hinunter nimmt, der Block 628 umfasst. Wenn die 3D-Kamera jedoch zurzeit über dem Höhenschwellenwert positioniert ist, wird die Länge des Bogens entlang der Oberfläche der Erde, arcLen, bestimmt (Block 630). Die Länge entlang einer hypothetischen ebenen Fläche, flatLen, wird ebenfalls (Block 632) entlang einer hypothetischen geraden Fläche bestimmt. Die Werte arcLen und flatLen werden dann verwendet, um einen Korrekturfaktor zu bestimmen (Block 634), der auf die Kartentextur während der Wiedergabe angewandt wird (Block 636), was ebenfalls oben erörtert wird. Es ist außerdem zu beachten, dass, wenn der Ablauf von Block 626 den Zweig hinunter nimmt, der Blöcke 630636 umfasst, eine nicht lineare Umwandlung zwischen kartesianisch und Mercator verwendet wird.
  • Als Nächstes veranschaulichen 7A7C mehrere beispielhafte Verfahren für die Erweiterung einer 3D-Szene durch eine 2D-Karte, die im System von 1 verwendet werden kann. Diese Techniken können zum Beispiel in der 2D-Texturanwendungs-Engine 124 implementiert werden. Das Verfahren von 7A entspricht im Allgemeinen dem Diagramm von 4A, das Verfahren von 7B entspricht im Allgemeinen dem Diagramm von 4B und das Verfahren von 7C entspricht im Allgemeinen dem Diagramm von 4C.
  • Unter erster Bezugnahme auf 7A kann eine 2D-Kartentextur in Übereinstimmung mit einer 2D-Kameraansicht bei Block 702 erzeugt werden. 3D-Geometriedaten und Bildtextur werden verwendet, um eine Geländeschicht sowie eine Gebäude- und Vegetationsschicht bei Block 704 darzustellen. Die Geländeschicht wird dann mit der Kartentextur erneut dargestellt (Block 706).
  • Alternativ wird gemäß dem Verfahren 710 von 7B eine 2D-Kartentextur in Übereinstimmung mit einer 2D-Kameraansicht bei Block 712 erzeugt. 3D-Geometriedaten, Bildtextur und Kartentextur werden dann verwendet, um eine Geländeschicht und eine Gebäude- und Vegetationsschicht bei Block 714 darzustellen.
  • Als weitere Alternative kann die 3D-Szene durch 2D-Karten gemäß dem Verfahren 720 von 7C erweitert werden. Bei Block 722 wird eine Kartentextur in Übereinstimmung mit einer 2D-Kameraansicht erzeugt. 3D-Geländegeometriedaten, Bildtextur und Kartentextur werden verwendet, um eine Geländeschicht bei Block 724 darzustellen. 3D-Gebäude- und Vegetationsgeometriedaten und Bildtextur werden dann verwendet, um eine Gebäude- und Vegetationsschicht bei Block 726 darzustellen.
  • 8A ist ein Ablaufdiagramm eines Beispielverfahrens 800 für die Anwendung von 2D-Kartentextur auf die Geländeschicht mithilfe der Höhe, die im System von 1 verwendet werden kann. Das Verfahren 800 kann zum Beispiel in der 2D-Texturanwendungs-Engine 124 implementiert werden.
  • Eine 2D-Kartentextur wird in Übereinstimmung mit einer 2D-Kartenansicht bei Block 802 bereitgestellt oder erzeugt. Ein Z-Versatzwert wird auf Basis des Augenraumhöhenwerts bei Block 804 bestimmt. Bei Block 806 wird die 2D-Kartentextur auf 3D-Geländegeometrie in Übereinstimmung mit dem Z-Versatz angewandt. Wie vorher beschrieben, bringt der Z-Versatz die Kartenelementinformationen, z. B. Weg, Route, Straße, durch Anheben seiner Erscheinung über einige der Gebäude und Vegetation hervor.
  • 8B ist ein Ablaufdiagramm eines Beispielverfahrens 810, das zum Beispiel in der 3D-Textur-Rendering-Engine 120 oder 304 implementiert werden kann.
  • Das Verfahren 810 beinhaltet den Empfang von 2D-Kartendaten (Block 812) und den Empfang einer Auswahl von einem oder mehreren gewünschten Typen von Kartenelementen für die Anwendung auf eine 3D-Szene (Block 814). Die ausgewählten Kartenelemente können in der 2D-Kartentextur, die mithilfe der 2D-Kartendaten erzeugt wird, nicht transparent gemacht werden (Block 816). Dagegen werden Kartenelemente, die bei Block 814 nicht ausgewählt wurden, in der 2D-Kartentextur transparent gemacht (Block 818).
  • Zusätzliche Überlegungen
  • Die folgenden zusätzlichen Überlegungen gelten für die vorstehende Erörterung. In dieser gesamten Spezifikation können mehrere Beispiele Komponenten, Operationen oder Strukturen implementieren, die als einzelnes Beispiels beschreiben sind. Auch wenn einzelne Operationen von einem oder mehreren Verfahren als getrennte Operationen veranschaulicht und beschrieben sind, können eine oder mehrere der einzelnen Operationen gleichzeitig durchgeführt werden, und nichts erfordert, dass die Operationen in der veranschaulichten Reihenfolge durchgeführt werden. Strukturen und Funktionen, die in beispielhaften Konfigurationen als getrennte Komponenten dargestellt werden, können als kombinierte Struktur oder Komponente implementiert werden. In ähnlicher Weise können Strukturen und Funktionen, die als einzelne Komponenten dargestellt werden, als getrennte Komponenten implementiert werden. Diese und andere Variationen, Modifikationen, Ergänzungen und Verbesserungen fallen in den Anwendungsbereich des hierin beschriebenen Gegenstands.
  • Bestimmte Ausführungsformen sind hierin als Logik enthaltend oder als eine Reihe von Komponenten, Modulen oder Mechanismen beschrieben. Module können entweder Softwaremodule (z. B. Code, der auf einem maschinenlesbaren Medium oder in einem Sendesignal verkörpert ist) oder Hardwaremodule darstellen. Ein Hardwaremodul ist ein greifbares Gerät, das bestimmte Operationen durchführen kann, und es kann in einer bestimmten Weise konfiguriert oder angeordnet sein. In exemplarischen Ausführungsformen können eines oder mehrere Computersysteme (z. B. ein eigenständiges, Client- oder Server-Computersystem) oder eines oder mehrere Hardwaremodule eines Computersystems (z. B. ein Prozessor oder eine Gruppe von Prozessoren) von der Software (z. B. einer Anwendung oder einem Anwendungsteil) als Hardwaremodul konfiguriert sein, um bestimmte, hierin beschriebene Operationen durchzuführen.
  • Sofern nicht speziell anders angegeben, können sich Erörterungen hierin, die Wörter wie „Verarbeitung”, „Berechnung”, „Bestimmung”, „Darstellung”, „Anzeige” oder ähnliches verwenden, auf Aktionen oder Prozesse einer Maschine (z. B. eines Computers) beziehen, die Daten manipulieren oder transformieren, die als physische (z. B: elektronische, magnetische oder optische) Mengen in einem oder mehreren Speichern (z. B. flüchtiger Speicher, nicht flüchtiger Speicher oder eine Kombination davon), Register oder andere Maschinenkomponenten dargestellt sind, die Informationen empfangen, speichern, übertragen oder anzeigen.
  • Wie hierin verwendet, bedeuten Verweise auf „eine Ausführungsform” oder „Ausführungsformen”, dass ein bestimmtes Element, Merkmal, eine Struktur oder eine Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, zumindest in einer Ausführungsform enthalten ist. Das Erscheinen der Formulierung „in einer Ausführungsform” an verschiedenen Orten in der Spezifikation bezieht sich nicht notwendigerweise immer auf dieselbe Ausführungsform.
  • Einige Ausführungsformen können mithilfe des Ausdrucks „gekoppelt” und „verbunden” zusammen mit deren Ableitungen beschrieben werden. Zum Beispiel können einige Ausführungsformen mithilfe des Begriffs „gekoppelt” beschrieben werden, um anzugeben, dass eines oder mehrere Elemente im direkten physischen oder elektrischen Kontakt sind. Der Begriff „gekoppelt” kann jedoch auch bedeuten, dass eines oder mehrere Elemente nicht im direkten Kontakt miteinander sind, aber trotzdem noch miteinander zusammenarbeiten oder interagieren. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
  • Wie hierin verwendet, sollen die Begriffe „umfasst”, „umfassend”, „beinhaltet”, „enthält”, „hat”, „haben” und andere Varianten davon eine nicht ausschließliche Einbeziehung abdecken. Zum Beispiel ist ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/die eine Liste von Elementen umfasst, nicht notwendigerweise nur auf diese Elemente beschränkt, sondern kann andere Elemente beinhalten, die nicht ausdrücklich aufgelistet oder bei einem solchen Prozess, einem solchen Verfahren, einem solchen Artikel oder einer solchen Vorrichtung inhärent sind. Des Weiteren bezieht sich, sofern nichts Gegenteiliges angegeben ist, „oder” auf ein einschließendes und nicht auf ein ausschließendes Oder. Zum Beispiel ist eine Bedingung A oder B durch eines der folgenden erfüllt: A ist wahr (oder vorhanden) und B ist falsch (oder nicht vorhanden), A ist falsch (oder nicht vorhanden) und B ist wahr (oder vorhanden) und sowohl A als auch B sind wahr (oder vorhanden).
  • Außerdem wird „eine”, „einer” oder „eines” verwendet, um Elemente und Komponenten der Ausführungsformen hierin zu beschreiben. Das erfolgt lediglich aus praktischen Gründen und um eine allgemeine Vorstellung der Beschreibung zu vermitteln. Die Beschreibung sollte so gelesen werden, dass sie eines oder mindestens eines enthält, und der Singular umfasst auch den Plural, außer es ist offensichtlich anders gedacht.
  • Nach dem Lesen dieser Offenbarung, werden Fachleute noch zusätzliche alternative strukturelle und funktionelle Designs für ein System und einen Prozess für die Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene durch die hierin offenbarten Prinzipien erkennen. Somit sollte, während bestimmte Ausführungsformen und Anwendungen veranschaulicht und beschrieben wurden, es selbstverständlich sein, dass die offenbarten Ausführungsformen nicht auf die genaue Konstruktion und Komponenten beschränkt sind, die hierin offenbart wurden. Verschiedene Modifikationen, Änderungen und Variationen, die für Fachleute auf dem Gebiet ersichtlich werden, können in der Anordnung, dem Betrieb und in den Einzelheiten der Verfahren und der Vorrichtung, die hierin offenbart werden, ohne Abweichung von der Idee und dem Umfang der angehängten Ansprüche erfolgen.

Claims (9)

  1. Computergerät, umfassend: eine Benutzeroberfläche, die ein Anzeigegerät umfasst; einen oder mehrere Prozessoren; ein greifbares, computerlesbares Medium, auf dem Anweisungen gespeichert sind, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das Computergerät veranlassen: 2D-Kartendaten zu empfangen, die Elemente einer digitalen 2D-Karte angeben, worin die 2D-Kartendaten in einem Koordinatensystem parametrisiert werden, das mit der Projektion einer kugelförmigen Fläche auf eine ebene Fläche verbunden ist; einen Hinweis einer Perspektive einer virtuellen Kamera in Bezug auf eine 3D-Szene in einem 3D-Koordinatensystem zu empfangen; mithilfe der 3D-Kartendaten eine Kartentextur für die Anwendung auf die 3D-Szene in Übereinstimmung mit der Perspektive der virtuellen Kamera zu erzeugen; und die Kartentextur auf die 3D-Szene anzuwenden.
  2. Computergerät nach Anspruch 1, worin zur Erzeugung der Kartenstruktur die Anweisungen das Computergerät zu folgenden Berechnungen veranlassen: (i) eines Zielpunkts in den 2D-Kartendaten, (ii) einer Zieldistanz zwischen der virtuellen Kamera und dem Zielpunkt, (iii) Neigung der virtuellen Kamera und (iv) Rotation der virtuellen Kamera.
  3. Computergerät nach Anspruch 2, worin: die 3D-Geometriedaten (i) Geländeschicht-Geometriedaten (ii) Gebäude- und Vegetationsschicht-Geometriedaten umfassen, und zur Berechnung des Zielpunkts die Anweisungen das Computergerät veranlassen, den Schnittpunkt zwischen einem Flugrichtungsvektor und der Geländeschicht zu bestimmen.
  4. Computergerät nach Anspruch 2, worin: zur Erzeugung der Kartentextur die Anweisungen das Computergerät veranlassen, einen Krümmungsfaktor auf die Zieldistanz anzuwenden, um die Krümmung der Erde zu berücksichtigen.
  5. Computergerät nach Anspruch 1, worin die Anweisungen das Computergerät des Weiteren veranlassen: 3D-Kartendaten zu empfangen, die 3D-Geometriedaten und Bildtexturdaten enthalten; und die 3D-Szene mithilfe der 3D-Geometriedaten und der Bildtexturdaten darzustellen.
  6. Computergerät nach Anspruch 5, des Weiteren umfassend: einen Grafikprozessor; worin die Anweisungen ein Shader-Programm umfassen, das auf dem Grafikprozessor ausgeführt werden kann, um die Kartentextur über der 3D-Szene einzublenden.
  7. Computergerät nach Anspruch 1, worin zur Erzeugung der Kartenstruktur die Anweisungen das Computergerät veranlassen: Kartenelemente eines ersten Typs, die in den 2D-Karten enthalten sind, in der Textur darzustellen, und Kartenelemente eines zweiten Typs, die in den 2D-Karten enthalten sind, in transparenten Teilen der Textur darzustellen.
  8. Computergerät nach Anspruch 1, worin das Koordinatensystem, in dem die 2D-Kartendaten parametrisiert werden ein (i) Mercator oder (ii) Plate Carrée ist.
  9. Ein greifbares, nicht flüchtiges computerlesbares Medium, auf dem Anweisungen gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen: 3D-Kartendaten zu empfangen, die 3D-Geometriedaten und Bildtexturdaten enthalten; für eine angegebene Perspektive einer virtuellen Kamera in einem 3D-Koordinatensystem die Geometrie der 3D-Szene mithilfe der 3D-Geometriedaten darzustellen, worin die angegebene Perspektive eine Position und Ausrichtung in Bezug auf die 3D-Szene beinhaltet; die Erzeugung einer Kartentextur mithilfe der 2D-Kartendaten in Übereinstimmung mit der Perspektive der virtuellen Kamera im 3D-Koordinatensystem zu veranlassen; und die Anwendung (i) der Bildtextur und (ii) der Kartentextur auf die dargestellte Geometrie veranlassen.
DE202014010937.0U 2013-03-15 2014-03-14 Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene Expired - Lifetime DE202014010937U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/834,474 US9183666B2 (en) 2013-03-15 2013-03-15 System and method for overlaying two-dimensional map data on a three-dimensional scene
US13/834,474 2013-03-15

Publications (1)

Publication Number Publication Date
DE202014010937U1 true DE202014010937U1 (de) 2017-01-24

Family

ID=51525397

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202014010937.0U Expired - Lifetime DE202014010937U1 (de) 2013-03-15 2014-03-14 Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene

Country Status (5)

Country Link
US (1) US9183666B2 (de)
EP (1) EP2973422B1 (de)
CN (1) CN105247575B (de)
DE (1) DE202014010937U1 (de)
WO (1) WO2014152770A1 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2725323B1 (de) * 2012-10-29 2023-11-29 Harman Becker Automotive Systems GmbH Kartendarsteller und verfahren
US9418485B2 (en) 2013-05-31 2016-08-16 Apple Inc. Adjusting heights for road path indicators
EP2811463B1 (de) 2013-06-04 2018-11-21 Dassault Systèmes Entwurf eines 3D-modellierten Objekts mit 2D-Ansichten
EP2874118B1 (de) * 2013-11-18 2017-08-02 Dassault Systèmes Berechnung von Kameraparametern
JP6087301B2 (ja) * 2014-02-13 2017-03-01 株式会社ジオ技術研究所 3次元地図表示システム
EP3032495B1 (de) 2014-12-10 2019-11-13 Dassault Systèmes Texturierung eines 3D-modellierten Objekts
US10482848B2 (en) 2015-08-07 2019-11-19 International Business Machines Corporation Facile and precise georeferencing and overlaying of map tiles
US20170091993A1 (en) * 2015-09-25 2017-03-30 Microsoft Technology Licensing, Llc 3D Model Generation From Map Data and User Interface
EP3188033B1 (de) 2015-12-31 2024-02-14 Dassault Systèmes Rekonstruktion eines 3d-modellierten objekts
US10650039B2 (en) * 2016-02-25 2020-05-12 Lionheart Legacy Uco Customizable world map
US10147215B2 (en) 2016-04-17 2018-12-04 Streetography, Inc. Digitally generated set of regional shapes for presenting information on a display screen
WO2017184196A1 (en) * 2016-04-17 2017-10-26 Streetography, Inc. A digitally generated set of regional shapes for presenting information on a display screen
US10145704B2 (en) 2016-04-17 2018-12-04 Streetography, Inc. Digitally-generated map containing defined regions for rendering with photo overlays
US10580191B2 (en) 2016-06-12 2020-03-03 Apple Inc. Procedural terrain generation systems and related methods
EP3293705B1 (de) 2016-09-12 2022-11-16 Dassault Systèmes 3d-rekonstruktion eines realen objekts aus einer tiefenkarte
US10489979B2 (en) * 2016-12-30 2019-11-26 Facebook, Inc. Systems and methods for providing nested content items associated with virtual content items
CN108334523B (zh) * 2017-01-20 2022-04-12 腾讯科技(深圳)有限公司 道路场景地图的构建方法和装置
EP3616035B1 (de) * 2017-06-19 2024-04-24 Apple Inc. Schnittstelle für erweiterte realität zur interaktion mit angezeigten karten
CN107464283B (zh) * 2017-07-13 2020-11-10 广西我的科技有限公司 一种三维空间信息采集分析处理的方法及装置
US10777007B2 (en) 2017-09-29 2020-09-15 Apple Inc. Cooperative augmented reality map interface
CN108053495B (zh) * 2018-01-19 2019-05-28 姚惜珺 2d数字资源转化为可动态变化的3d数字资源的方法及***
US11373356B2 (en) * 2018-03-28 2022-06-28 Robert Bosch Gmbh Method and system for efficient rendering of 3D particle systems for weather effects
CN111383334B (zh) * 2018-12-28 2022-08-19 北京嘀嘀无限科技发展有限公司 用于渲染对象的***和方法
CN109741414B (zh) * 2018-12-29 2023-06-20 超级魔方(北京)科技有限公司 一种场景中半透明物体的渲染方法、装置及电子设备
CN110072087B (zh) * 2019-05-07 2020-11-17 高新兴科技集团股份有限公司 基于3d地图的摄像机联动方法、装置、设备及存储介质
US11048376B2 (en) * 2019-05-15 2021-06-29 Microsoft Technology Licensing, Llc Text editing system for 3D environment
US11164395B2 (en) 2019-05-15 2021-11-02 Microsoft Technology Licensing, Llc Structure switching in a three-dimensional environment
US11287947B2 (en) 2019-05-15 2022-03-29 Microsoft Technology Licensing, Llc Contextual input in a three-dimensional environment
CN110363837B (zh) * 2019-07-23 2023-05-23 网易(杭州)网络有限公司 游戏中纹理图像的处理方法及装置、电子设备、存储介质
CN110458930B (zh) * 2019-08-13 2023-08-08 网易(杭州)网络有限公司 三维地图的渲染方法、装置及存储介质
CN110706319B (zh) * 2019-10-15 2024-02-13 北京思维造物信息科技股份有限公司 动画监控播放方法、装置、设备和存储介质
CN110908510B (zh) * 2019-11-08 2022-09-02 四川大学 一种倾斜摄影建模数据在沉浸式显示设备中的应用方法
CN116758233A (zh) * 2019-11-25 2023-09-15 科沃斯家用机器人有限公司 机器人控制方法、机器人、客户端设备及存储介质
CN110838178B (zh) * 2019-11-26 2024-01-26 北京世纪高通科技有限公司 道路场景模型的确定方法及装置
CN111192299A (zh) * 2019-12-20 2020-05-22 中冶天工集团有限公司 一种基于综合管廊视频监控***的人员轨迹定位方法
CN111462204B (zh) * 2020-02-13 2023-03-03 腾讯科技(深圳)有限公司 虚拟模型的生成方法、装置、存储介质以及电子装置
JP7288411B2 (ja) * 2020-02-26 2023-06-07 株式会社日立製作所 2次元マップデータ生成装置、2次元マップデータ生成方法、及び2次元マップデータ生成システム
CN111318022B (zh) * 2020-03-19 2023-04-14 网易(杭州)网络有限公司 游戏中的游戏场景生成方法及装置、电子设备、存储介质
US11232630B2 (en) * 2020-04-15 2022-01-25 Cesium GS, Inc. Systems and methods for terrain modification at runtime using displacement mapping
CN111815775A (zh) * 2020-06-12 2020-10-23 中国船舶重工集团公司第七二四研究所 一种基于OpenGL的三维背景地图快速填充方法
CN111915711A (zh) * 2020-08-04 2020-11-10 北京吉威空间信息股份有限公司 支持虚拟vr的三调地类图斑立体图像获取方法及装置
CN112084287B (zh) * 2020-09-14 2024-01-05 广东弓叶科技有限公司 一种电子地图生成方法、装置及电子地图
CN112365591B (zh) * 2020-09-29 2024-07-09 西安应用光学研究所 一种基于合成视觉的空地协同综合态势生成方法
CN112364693B (zh) * 2020-10-12 2024-04-16 星火科技技术(深圳)有限责任公司 基于双目视觉的障碍识别方法、装置、设备及存储介质
WO2022164452A1 (en) * 2021-01-29 2022-08-04 Hewlett-Packard Development Company, L.P. Lattice structures with generated surface patterns
CN112870698A (zh) * 2021-02-26 2021-06-01 网易(杭州)网络有限公司 目标游戏场景的生成方法及装置、存储介质、电子设备
CN113034685B (zh) * 2021-03-18 2022-12-06 北京百度网讯科技有限公司 激光点云与高精地图的叠加方法、装置及电子设备
CN113449021B (zh) * 2021-06-28 2023-05-19 华科融资租赁有限公司 空间坐标转换方法、装置、计算机设备和可读存储介质
CN113436253B (zh) * 2021-06-28 2023-05-16 华科融资租赁有限公司 地图的定位显示方法、装置、计算机设备和存储介质
CN113763561B (zh) * 2021-08-19 2022-08-02 北京三快在线科技有限公司 Poi数据生成方法、装置、存储介质及电子设备
CN114998503B (zh) * 2022-06-21 2024-06-28 重庆市勘测院((重庆市地图编制中心)) 一种基于实景三维的白模自动纹理构建方法
CN115830246B (zh) * 2023-01-09 2023-04-28 中国地质大学(武汉) 一种基于增量式sfm的球面全景影像三维重建方法
CN117495694B (zh) * 2023-11-09 2024-05-31 大庆安瑞达科技开发有限公司 一种视频和地图三维场景融合的方法、电子设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7038681B2 (en) 2000-03-29 2006-05-02 Sourceprose Corporation System and method for georeferencing maps
JP2003006680A (ja) 2001-06-20 2003-01-10 Zenrin Co Ltd 3次元電子地図データの生成方法
US7236178B2 (en) 2001-07-19 2007-06-26 Autodesk, Inc. Dynamically adjusted brush for direct paint systems on parameterized multi-dimensional surfaces
US6952207B1 (en) 2002-03-11 2005-10-04 Microsoft Corporation Efficient scenery object rendering
US7324116B2 (en) 2002-06-20 2008-01-29 Microsoft Corporation Systems and methods for providing controllable texture sampling
US7095423B2 (en) 2002-07-19 2006-08-22 Evans & Sutherland Computer Corporation System and method for combining independent scene layers to form computer generated environments
US7130740B2 (en) 2003-11-07 2006-10-31 Motorola, Inc. Method and apparatus for generation of real-time graphical descriptions in navigational systems
JP2005339313A (ja) 2004-05-28 2005-12-08 Toshiba Corp 画像提示方法及び装置
US7425952B2 (en) 2004-11-23 2008-09-16 Metavr, Inc. Three-dimensional visualization architecture
US7420557B1 (en) 2005-08-25 2008-09-02 Nvidia Corporation Vertex processing when w=0
US8818076B2 (en) 2005-09-01 2014-08-26 Victor Shenkar System and method for cost-effective, high-fidelity 3D-modeling of large-scale urban environments
US20100010782A1 (en) 2008-07-09 2010-01-14 Livermore Software Technology Corporation Systems and Methods of Selecting a CAE Analysis Solver with Appropriate Numerical Precision in Each of a Series of Hierarchically Related Engineering Simulations
US8798965B2 (en) 2009-02-06 2014-08-05 The Hong Kong University Of Science And Technology Generating three-dimensional models from images
IL202460A (en) * 2009-12-01 2013-08-29 Rafael Advanced Defense Sys Method and system for creating a 3D view of real arena for military planning and operations
US9763587B2 (en) * 2010-06-10 2017-09-19 Biosense Webster (Israel), Ltd. Operator-controlled map point density
US8319772B2 (en) 2010-07-23 2012-11-27 Microsoft Corporation 3D layering of map metadata
US8902288B1 (en) * 2011-06-16 2014-12-02 Google Inc. Photo-image-based 3D modeling system on a mobile device
US9592833B2 (en) 2012-12-18 2017-03-14 Rieker Inc. Method and apparatus for capturing road curve properties and calculating maximum safe advisory speed

Also Published As

Publication number Publication date
CN105247575A (zh) 2016-01-13
US9183666B2 (en) 2015-11-10
CN105247575B (zh) 2018-08-31
EP2973422A4 (de) 2016-11-30
EP2973422A1 (de) 2016-01-20
WO2014152770A1 (en) 2014-09-25
EP2973422B1 (de) 2024-02-28
US20140267279A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
DE202014010937U1 (de) Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene
US20140267273A1 (en) System and method for overlaying two-dimensional map elements over terrain geometry
US9286712B2 (en) System and method for approximating cartographic projections by linear transformation
DE202012013426U1 (de) Integrieren von Karten und Straßenansichten
US9275493B2 (en) Rendering vector maps in a geographic information system
DE202012013450U1 (de) Beschriftungspositionierbildwiedergabesystem zur Reduzierung des Kriechens bei Zoom-Aktivitäten
WO2019239211A2 (en) System and method for generating simulated scenes from open map data for machine learning
DE202008018626U1 (de) System zum Betrachten von Panoramabildern
DE202014010911U1 (de) Effiziente Zusammensetzung und Darstellung grafischer Elemente
DE202015009138U1 (de) Indexierte Einheitsgrößenparameter für Strichwiedergabe
DE202011110887U1 (de) Wiedergeben und navigieren fotografischer Panoramen mit Tiefeninformationen in einem geographischen Informationssystem
DE202014010917U1 (de) Glatte Zeichenebene für das Rendern von Vektordaten komplexer dreidimensionaler Objekte
DE202014010955U1 (de) Verwendung von Kartendaten-Differenzkacheln zur iterativen Bereitstellung von Kartendaten für ein Client-Gerät
DE112015005191T5 (de) Ausrichten von Panoramaaufnahmen und Luftaufnahmen
DE202015009181U1 (de) Überblendung zwischen Straßenansicht und Erdansicht
DE202010018459U1 (de) System zur Darstellung von Übergängen zwischen Strassenansichten
DE202012013456U1 (de) Neuordnung überlagerter digitaler Bilddaten und zugehörige Rendering-Engine für digitale Bilder
DE202014010903U1 (de) System für die Angabe des Benutzerstandortes und der Blickrichtung einer digitalen Karte
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE202014010881U1 (de) Bereitstellen von Indooreinrichtungs-Informationen auf einer digitalen Karte
DE202017106482U1 (de) Navigationsanwendungsprogrammierschnittstelle
DE102013000879A1 (de) Navigationsvorrichtung für ein bewegliches Objekt und Verfahren zur Erzeugung eines Anzeigesignals für eine Navigationsvorrichtung für ein bewegliches Objekt
DE202013012446U1 (de) Strukturüberblendung für weichen Übergang zwischen unterschiedlichen Detaillierungsgraden in Grafikanwendungen
KR20150124112A (ko) 3차원 지형 영상 가시화에서의 적응형 렌더링 방법
DE202014010846U1 (de) Farbverlauf von Wasser auf einer digitalen Karte

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right