DE202014010937U1 - Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene - Google Patents
Überlagerung zweidimensionaler Kartendaten auf einer dreidimensionalen Szene Download PDFInfo
- 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
Links
- 239000013598 vector Substances 0.000 claims description 11
- 239000010410 layer Substances 0.000 description 68
- 238000000034 method Methods 0.000 description 65
- 239000011159 matrix material Substances 0.000 description 25
- 238000009877 rendering Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 14
- 230000009466 transformation Effects 0.000 description 11
- 238000012937 correction Methods 0.000 description 9
- 230000015654 memory Effects 0.000 description 9
- 230000001419 dependent effect Effects 0.000 description 7
- 239000012634 fragment Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000422846 Sequoiadendron giganteum Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 239000003643 water by type Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 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.
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 von1 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 von1 verwendet werden kann. -
6B ist ein Ablaufdiagramm eines Beispielverfahrens, das im System von1 für die selektive Korrektur der Kameraposition aufgrund der Krümmung der Erde verwendet werden kann. -
7A –7C sind Ablaufdiagramme beispielhafter Verfahren für die Erweiterung einer 3D-Szene durch eine 2D-Karte, das im System von1 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 von1 verwendet werden kann. -
8B ist ein Ablaufdiagramm eines Beispielverfahrens, das im System von1 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 bis8B näher erörtert. - Beispielsystemarchitektur
-
1 stellt eine beispielhafte Ausführungsform eines Bilddarstellungssystems100 dar, bei dem eine 3D-Szene durch 2D-Daten erweitert werden kann. Ein Clientgerät102 ist mit einer 2D-Kartendaten-Datenbank104 und einer 3D-Geometrie- und Texturdatenbank106 über einen Kartenserver108 gekoppelt. Auch wenn die Datenbanken104 und106 im System100 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 Datenbanken104 und106 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 Datenbanken104 ,106 und einem Netzwerk110 gekoppelt. Das Netzwerk110 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ät102 Karten- und Merkmalsdaten bereitzustellen, kann der Kartendatenserver108 elektronische Nachrichten einschließlich Kartendaten erzeugen und diese Nachrichten über das Netzwerk110 senden. In anderen Implementierungen sind die Datenbanken104 und106 mit verschiedenen jeweiligen Server gekoppelt (die durch unterschiedliche Anbieter der Kartendaten betrieben werden können). - Das Clientgerät
102 kann mit dem Netzwerk110 über ein kabelgebundenes oder kabelloses Kommunikationsprotokoll gekoppelt sein. Das Clientgerät102 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 Speicher116 , der volatile (z. B. RAM) und nicht volatile (z. B. Flash) Komponenten beinhalten kann, umfassen. Die CPU112 und/oder der GPU114 sind so konfiguriert, dass sie Anweisungen verschiedener Softwareanwendungen und Module ausführen, die im Speicher116 gespeichert sind. - Insbesondere speichert der Speicher
116 eine 2D-Textur-Rendering-Engine120 , eine 3D-Geometrie-Rendering-Engine122 , eine 2D-Texturanwendungs-Engine124 , die jeweils aus Anweisungen in einer oder mehreren Programmiersprachen bestehen können. Je nach Implementierung können die Anweisungen der Softwarekomponenten120 –124 für die Ausführung direkt auf der CPU112 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 Komponenten120 –124 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 GPU114 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-Engine120 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-Engine120 implementieren kann, sind unten zum Beispiel unter Bezugnahme auf3A ,3B ,6A und6B erörtert. De 3D-Geometrie-Rendering-Engine122 stellt 3D-Geometrie in eine oder mehrere Schichten organisiert dar, wie unter Bezugnahme auf2A und2B näher erörtert. Die 2D-Texturanwendungs-Engine124 wendet die Texturen, die von der Engine120 erzeugt wurden (sowie Bildtexturen, die als Teil der 3D-Kartendaten bereitgestellt werden), auf die Geometrie an, die von der Engine122 erzeugt wurde, wie unter Bezugnahme auf4A –C,7A –C und8A –B erörtert. - Bei Ausführung durch die CPU
112 und/oder den GPU114 geben Softwarekomponenten grafische Inhalte über eine Benutzeroberfläche aus, die eine oder mehrere Anzeigebildschirme und/oder Eingabegeräte118 enthält. Die Geräte118 können einen oder mehrere Bildschirme, einen Touchscreen, eine Tastatur, eine Maus usw. enthalten. - Unter fortgesetzter Bezugnahme auf
1 speichert Speicher116 außerdem einen Frame-Puffer126 für das Off-Screen-Rendering. Gemäß einigen Ausführungsformen stellen die Komponenten120 –124 zuerst 2D-Kartenelemente für den Frame-Puffer126 dar und kopieren dann die Pixel zu einer Textur. - Zur Vereinfachung werden nur eine Instanz des Kartendatenservers
108 , des Clientgeräts102 und der 2D- und 3D-Kartendatenbanken104 ,106 in1 veranschaulicht. Jedoch kann in anderen Ausführungsformen das System100 mehr als einen Kartenserver108 , mehr als ein Clientgerät102 , mehr als eine 2D-Kartendatenbank104 und/oder mehr als eine 3D-Kartendatenbank106 umfassen. Des Weiteren stellt der Kartendatenserver108 in einigen Ausführungsformen Kartendaten für eines oder mehrere verschiedene Clientgeräte102 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-Szene200 , die mithilfe von 3D-Kartendaten erzeugt wurde, die eine 3D-Geometrie und Bildtextur enthalten. Die 3D-Szene200 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-Szene200 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 von2A mithilfe jeder geeigneten Technik abgeleitet werden können, einschließlich solcher, die Fachleuten bekannt sind. Zusammen stellen eine Geländeschicht-3D-Geometrie202 und eine Gebäude und Vegetationsschicht-3D-Geometrie204 die Geometrie der 3D-Szene200 dar. Die Geländeschicht-3D-Geometrie202 beschreibt die Oberfläche einer geografischen Region. Die Gebäude- und Vegetationsschicht-3D-Geometrie204 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-Geometrien202 und204 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 in2B schematisch veranschaulicht zum Beispiel in der 3D-Geometrie-Rendering-Engine122 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-Szene200 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 in2C 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 in2D eine begrenzte Ansicht, die erzeugt wird, wenn die 2D-Textur-Rendering-Engine120 oder ein ähnliches Modul die Krümmung der Erde nicht berücksichtigt und das Bild rechts in2D veranschaulicht das Ergebnis, wenn die Engine120 die Krümmung der Erde berücksichtigt. - Unter jetziger Bezugnahme auf
3A kann die Engine120 von1 zum Beispiel als 2D-Textur-Rendering-Engine304 implementiert werden. Im Betrieb empfängt die Engine304 2D-Kartendaten300 und Geländeschicht-3D-Geometrie302 und erzeugt eine ansichtsabhängige 2D-Kartentextur306 , die der auf die 3D-Geometrie angewandten Bildtextur ähnlich ist. Die Engine304 kann mehrere Komponenten umfassen, z. B. ein Kameraansicht-Bestimmungsmodul308 , das die Position der virtuellen Kamera in Bezug auf eine 2D-Karte bestimmt, ein Krümmungsfaktor-Berechnungsmodul309 , das Korrekturen an der Kartentextur306 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-Kartendaten300 positioniert ist: (i) einen Zielpunkt, der im Koordinatensystem der 2D-Kartendaten300 bestimmt wird (z. B. Mercator), (ii) eine Zieldistanz zur 2D-Karte wie im Koordinatensystem der 2D-Kartendaten300 berechnet, (iii) Neigung und (iv) Rotation.3B veranschaulicht die Bestimmung dieser Parameter genauer. Zur Klarheit wird die Beispielimplementierung von3A und3B 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-Geometrie302 zum Beispiel mithilfe von Raycasting. Es ist zu beachten, dass das Kameraansicht-Bestimmungsmodul308 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-Bestimmungsmodul308 eine Position und Ausrichtung der virtuellen Kamera, die eine relativ glatte Kartentextur312 ermöglicht (da die Kartentextur312 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-Bestimmungsmodul308 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 (siehe2D , Bild links). Demgemäß erzeugt das Krümmungsfaktor-Berechnungsmodul309 einen geeigneten Krümmungsfaktor. In einigen Implementierungen erzeugt das Krümmungsfaktor-Berechnungsmodul309 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-Bestimmungsmodul308 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 und3A kann das Krümmungsfaktor-Berechnungsmodul309 einen Krümmungskorrekturfaktor bestimmen, den das Kameraansicht-Bestimmungsmodul308 mit dem Zieldistanzparameter bei der Bestimmung einer Ansicht der virtuellen Kamera für die Verwendung mit den 2D-Kartendaten300 multiplizieren kann. Die Module308 und309 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 Diagramm206 in2C stellt einige der Parameter dar, die das Krümmungsfaktor-Berechnungsmodul309 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: 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) -
-
- 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-Engine124 eine Kartentextur, z. B. Kartentextur306 oder312 von3B , auf eine 3D-Geometrie anwenden. Die 2D-Texturanwendungs-Engine124 kann einen Fragment-Shader enthalten, der Pixel aus der Kartentextur nachschlägt und diese Pixel über der Textur der 3D-Geometrie200 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-Engine124 blendet effektiv nur diese Kartenelemente über der Textur der 3D-Geometrie200 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-Engine124 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-Engine124 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-Engine124 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 Komponenten120 –124 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
120 –124 , 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
120 –124 eine ansichtsfensterspezifische Kartentextur zwischenspeichern kann, die wie oben erörtert erzeugt wurde. Wenn sich die Perspektive der virtuellen Kamera ändert, können die Komponenten120 –124 manchmal die Kartentextur erneut verwenden. Wenn zum Beispiel die Änderungen an der Perspektive der virtuellen Kamera relativ gering sind, können die Komponenten120 –124 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 Komponenten120 –124 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 in4A –C und7A –C veranschaulichten Techniken in der 2D-Texturanwendungs-Engine124 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
4A –4C 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 Frame400 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 (Frame402 ). Es ist zu beachten, dass in Frame402 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 Frame404 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 Frame408 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 von4A niedrig ist, überlagert die Straße in Frame408 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 (Frame410 ) im selben Durchgang angewandt. In der resultierenden 3D-Szene (Frame412 ) 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 (Frame420 ) 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 (Frame422 ). Die Bildtextur wird dann auf eine Gebäude- und Vegetationsschicht-3D-Geometrie angewandt, um eine texturierte Gebäude- und Vegetationsschicht zu erzeugen (Frame424 ). Die dargestellte Geländeschicht (Frame422 ) und die dargestellte Gebäude- und Vegetationsschicht (Frame424 ) können dann integriert werden, um die erweiterte 3D-Szene zu erhalten (Frame426 ). Gemäß dieser Technik verdeckt jedoch die texturierte Gebäude- und Vegetationsschicht die Straße, die in dunkler Schattierung dargestellt ist, wie in Frame426 zu sehen. - Anwendung eines Tiefenversatzes auf Kartentextur
- In einer Beispielausführungsform von Clientgerät
102 bestimmt die 2D-Texturanwendung124 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 Bilddarstellungssystems100 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. -
- Der gewünschte Versatz im Z-Pufferwert kann geschätzt werden als
-
- Somit ist
-
-
-
- Um die Überlagerungstechniken für die Kartentextur (oder in diesem Fall die Straßentextur) der vorliegenden Offenbarung zu implementieren, können Gleichungen
10 ,12 und15 direkt in einem Vertex-Shader implementiert werden, der als Komponente der 2D-Texturanwendung124 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 Beispielverfahrens500 für die Erweiterung einer 3D-Szene durch 2D-Kartendaten, das zum Beispiel in Komponenten120 –124 und von CPU112 und teilweise vom GPU114 ausgeführt werden kann. Allgemeiner kann das Verfahren500 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 auf8B 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 Block510 abgeschlossen. - Unter nächster Bezugnahme auf
6A kann ein Beispielverfahren600 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. Engine120 aus1 oder Engine304 aus3A , 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 Block602 empfangen. Als Nächstes wird bei Block604 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 Block606 umgewandelt und die Neigung und Rotation der 3D-Kamera in Bezug auf die 2D-Karte werden bei Block608 bestimmt. Falls gewünscht, kann ein Krümmungskorrekturfaktor bestimmt und auf den Zieldistanzparameter der 2D-Kameraansicht bei Block610 angewandt werden. -
6B veranschaulicht Beispielverfahren620 , 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 Block624 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 (Block628 ). Kein Krümmungsfaktor wird angewandt, wenn der Ablauf von Block626 den Zweig hinunter nimmt, der Block628 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 (Block630 ). Die Länge entlang einer hypothetischen ebenen Fläche, flatLen, wird ebenfalls (Block632 ) entlang einer hypothetischen geraden Fläche bestimmt. Die Werte arcLen und flatLen werden dann verwendet, um einen Korrekturfaktor zu bestimmen (Block634 ), der auf die Kartentextur während der Wiedergabe angewandt wird (Block636 ), was ebenfalls oben erörtert wird. Es ist außerdem zu beachten, dass, wenn der Ablauf von Block626 den Zweig hinunter nimmt, der Blöcke630 –636 umfasst, eine nicht lineare Umwandlung zwischen kartesianisch und Mercator verwendet wird. - Als Nächstes veranschaulichen
7A –7C mehrere beispielhafte Verfahren für die Erweiterung einer 3D-Szene durch eine 2D-Karte, die im System von1 verwendet werden kann. Diese Techniken können zum Beispiel in der 2D-Texturanwendungs-Engine124 implementiert werden. Das Verfahren von7A entspricht im Allgemeinen dem Diagramm von4A , das Verfahren von7B entspricht im Allgemeinen dem Diagramm von4B und das Verfahren von7C entspricht im Allgemeinen dem Diagramm von4C . - Unter erster Bezugnahme auf
7A kann eine 2D-Kartentextur in Übereinstimmung mit einer 2D-Kameraansicht bei Block702 erzeugt werden. 3D-Geometriedaten und Bildtextur werden verwendet, um eine Geländeschicht sowie eine Gebäude- und Vegetationsschicht bei Block704 darzustellen. Die Geländeschicht wird dann mit der Kartentextur erneut dargestellt (Block706 ). - Alternativ wird gemäß dem Verfahren
710 von7B eine 2D-Kartentextur in Übereinstimmung mit einer 2D-Kameraansicht bei Block712 erzeugt. 3D-Geometriedaten, Bildtextur und Kartentextur werden dann verwendet, um eine Geländeschicht und eine Gebäude- und Vegetationsschicht bei Block714 darzustellen. - Als weitere Alternative kann die 3D-Szene durch 2D-Karten gemäß dem Verfahren
720 von7C erweitert werden. Bei Block722 wird eine Kartentextur in Übereinstimmung mit einer 2D-Kameraansicht erzeugt. 3D-Geländegeometriedaten, Bildtextur und Kartentextur werden verwendet, um eine Geländeschicht bei Block724 darzustellen. 3D-Gebäude- und Vegetationsgeometriedaten und Bildtextur werden dann verwendet, um eine Gebäude- und Vegetationsschicht bei Block726 darzustellen. -
8A ist ein Ablaufdiagramm eines Beispielverfahrens800 für die Anwendung von 2D-Kartentextur auf die Geländeschicht mithilfe der Höhe, die im System von1 verwendet werden kann. Das Verfahren800 kann zum Beispiel in der 2D-Texturanwendungs-Engine124 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 Block804 bestimmt. Bei Block806 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 Beispielverfahrens810 , das zum Beispiel in der 3D-Textur-Rendering-Engine120 oder304 implementiert werden kann. - Das Verfahren
810 beinhaltet den Empfang von 2D-Kartendaten (Block812 ) und den Empfang einer Auswahl von einem oder mehreren gewünschten Typen von Kartenelementen für die Anwendung auf eine 3D-Szene (Block814 ). Die ausgewählten Kartenelemente können in der 2D-Kartentextur, die mithilfe der 2D-Kartendaten erzeugt wird, nicht transparent gemacht werden (Block816 ). Dagegen werden Kartenelemente, die bei Block814 nicht ausgewählt wurden, in der 2D-Kartentextur transparent gemacht (Block818 ). - 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Computergerät nach Anspruch 1, worin das Koordinatensystem, in dem die 2D-Kartendaten parametrisiert werden ein (i) Mercator oder (ii) Plate Carrée ist.
- 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.
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)
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)
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 |
-
2013
- 2013-03-15 US US13/834,474 patent/US9183666B2/en active Active
-
2014
- 2014-03-14 WO PCT/US2014/027713 patent/WO2014152770A1/en active Application Filing
- 2014-03-14 DE DE202014010937.0U patent/DE202014010937U1/de not_active Expired - Lifetime
- 2014-03-14 CN CN201480027301.1A patent/CN105247575B/zh active Active
- 2014-03-14 EP EP14769472.3A patent/EP2973422B1/de active Active
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 |