-
Technisches Gebiet
-
Die vorliegende Offenbarung betrifft allgemein das Rendern dreidimensionaler Objekte. Die Offenbarung betrifft insbesondere ein Verfahren zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Objektpartikeln umfasst. Die Offenbarung betrifft außerdem ein Computerprogrammprodukt und eine Computervorrichtung.
-
Hintergrund
-
Die grafische Wiedergabe dreidimensionaler Objekte in Bezug auf eine veränderliche Betrachterperspektive erfordert oft erhebliche Rechenkapazitäten. Dies gilt besonders für Objekte, die nicht durch eine geschlossene opake Oberfläche begrenzt sind, sondern beispielsweise Transparenz aufweisen oder aus mehreren Körpern, etwa einem Partikelschwarm, bestehen. Derartige Objekte umfassen beispielsweise eine darzustellende Wolke oder Regen.
-
Eine exakte Wiedergabe eines Partikelschwarms bei einer sich ändernden Betrachterperspektive macht eine Berechnung für jedes einzelne Partikel erforderlich. Dabei würde neben der eigentlichen Berechnung der grafischen Ausgabe bereits ein durch die Vielzahl von Zeichenbefehlen anfallender Overhead eine signifikante Belastung der verfügbaren Rechenkapazität bedeuten. Zugleich ist für einen zufriedenstellenden Betrachtereindruck eine exakte Berechnung oft nicht erforderlich.
-
Es sind daher Techniken vorgeschlagen worden, um das Rendern dreidimensionaler Objekte, die aus einer Vielzahl von Objektpartikeln bestehen, zu vereinfachen. Insbesondere auf dem Gebiet der Wolkendarstellung, beispielsweise im Zusammenhang mit Flugsimulatoren, sind Techniken bekannt, die anstelle einer Berücksichtigung einzelner Wolkenpartikel, wie etwa einzelner Wassertropfen, statistische und/oder makroskopische Näherungen anwenden. Auch diese Techniken müssen jedoch oft hohen Anforderungen genügen, die sich aus dem Erfordernis einer realitätsnahen Wiedergabe bei gleichzeitig hoher Dynamik bezüglich der Veränderung etwa einer Betrachterperspektive oder der vorliegenden Lichtverhältnisse ergeben.
-
Die bekannten Techniken zum Rendern dreidimensionaler Objekte aus einer Mehrzahl von Partikeln stellen somit noch immer verhältnismäßig hohe Anforderungen an verfügbare Rechenkapazitäten. Eine Technik zum effizienten Rendern dreidimensionaler Objekte ist daher wünschenswert.
-
Kurzer Abriss
-
Die vorliegende Erfindung hat zum Ziel, die vorgenannten Nachteile bekannter Techniken zum Rendern dreidimensionaler Objekte, die aus einer Mehrzahl von Objektpartikeln bestehen, zu mildern oder zu vermeiden.
-
Gemäß einem ersten Aspekt wird ein Verfahren zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Objektpartikeln umfasst, beschrieben. Das Verfahren umfasst Bestimmen, mittels einer Computervorrichtung, von Objektdaten, die dem Objekt zugeordnet sind, wobei die Objektdaten erste Objektpartikeldaten umfassen, die auf Objektpartikel in einem ersten Bereich des Objekts bezogen sind, und wobei die Objektdaten außerdem zweite Objektpartikeldaten umfassen können, die auf Objektpartikel in einem zweiten Bereich des Objekts bezogen sind. Das Verfahren umfasst ferner Schreiben, wenigstens teilweise auf der Grundlage eines Betrachterstandpunkts, der ersten Objektpartikeldaten in einen ersten Farbkanal der Computervorrichtung, und, wenn die Objektdaten außerdem zweite Objektpartikeldaten umfassen, Schreiben der zweiten Objektpartikeldaten in einen zweiten Farbkanal der Computervorrichtung. Das Verfahren umfasst zudem Speichern von Farbkanaldaten, die auf die in einen jeweiligen Farbkanal geschriebenen Objektpartikeldaten bezogen sind, Rendern eines Hintergrundbilds des Objekts, Ersetzen der gespeicherten Farbkanaldaten bezüglich der in den ersten Farbkanal geschriebenen ersten Objektpartikeldaten durch Farbdaten, die den ersten Objektpartikeldaten zugeordnet sind, und, wenn die Objektdaten außerdem zweite Objektpartikeldaten umfassen, Ersetzen der gespeicherten Farbkanaldaten bezüglich der in den zweiten Farbkanal geschriebenen zweiten Objektpartikeldaten durch Farbdaten, die den zweiten Objektpartikeldaten zugeordnet sind.
-
Das Bestimmen der Objektdaten kann mittels einer Hauptprozessoreinheit der Computervorrichtung erfolgen. Das Schreiben, das Speichern, das Rendern und das Ersetzen der Farbkanaldaten können mittels einer Grafikprozessoreinheit der Computervorrichtung erfolgen. Beispielsweise können das Schreiben, das Speichern, das Rendern und das Ersetzen der Farbkanaldaten ohne ein Einbeziehen der Hauptprozessoreinheit erfolgen.
-
Das Speichern kann in einem Grafikspeicher der Computervorrichtung erfolgen. Beispielsweise kann das Speichern ohne ein Einbeziehen eines Arbeitsspeichers der Hauptprozessoreinheit erfolgen.
-
Das Verfahren kann ferner ein Bestimmen des wenigstens einen dreidimensionalen Objekts als ein sichtbares Objekt auf der Grundlage wenigstens des Betrachterstandpunkts und einer Betrachterperspektive umfassen. Das Verfahren kann beispielsweise nur für ein solches Objekt durchgeführt werden, das als ein sichtbares Objekt bestimmbar ist.
-
Das Verfahren kann ferner ein Empfangen eines Hinweises auf eine Änderung des Betrachterstandpunkts, eine Änderung einer Betrachterperspektive und/oder eine Änderung des wenigstens einen Objekts umfassen. Dabei können wenigstens Teile des Verfahrens auf Empfangen des Hinweises durchgeführt werden. Der Hinweis kann beispielsweise mittels einer Empfangseinheit und/oder einer Eingabeeinheit der Computervorrichtung empfangen werden. Die Empfangseinheit kann beispielsweise eine GPS-Empfangseinheit und/oder eine Empfangseinheit für ein Kommunikationsnetzwerk umfassen. Die Eingabeeinheit kann zum Empfangen einer Benutzereingabe ausgebildet sein.
-
Das Verfahren kann ferner vor dem Rendern des Hintergrundbilds ein Bestimmen, mittels einer Hauptprozessoreinheit der Computervorrichtung, einer Darstellungsfläche für das Objekt umfassen. Dabei kann das Verfahren nach dem Ersetzen der Farbkanaldaten ein Ausgeben, mittels einer Grafikprozessoreinheit der Computervorrichtung und an eine Anzeigeeinheit der Computervorrichtung, der Darstellungsfläche zusammen mit Farbdaten, die bei dem Rendern des Hintergrundbilds bestimmt worden sind, und mit Farbdaten, durch die die gespeicherten Farbkanaldaten ersetzt worden sind, umfassen. Beispielsweise können die Farbdaten in einem Bereich der Darstellungsfläche ausgegeben werden.
-
Die Farbdaten können Farbdaten bezüglich jeweils einzelner Pixel und/oder Farbdaten bezüglich einer Textur aus mehreren Pixeln umfassen. Die Textur kann außerdem eine wenigstens teilweise animierte Textur sein. Dabei können die Farbkanaldaten zudem auf die Animation der Textur bezogene Daten umfassen.
-
Die Farbdaten können Transparenzdaten umfassen. Beispielsweise können bei einem Vorliegen unterschiedlicher Farbdaten für einen Pixel die unterschiedlichen Farbdaten auf der Grundlage der Transparenzdaten gemischt ausgegeben werden.
-
Der zweite Bereich kann von dem ersten Bereich wenigstens teilweise verschieden sein. Beispielsweise können der erste Bereich und/oder der zweite Bereich jeweils wenigstens einen Pixel und/oder eine Textur umfassen, die sich nicht mit einem Pixel und/oder einer Textur des jeweils anderen Bereichs überschneiden.
-
Das wenigstens eine Objekt kann ein kartografisches Objekt sein. Beispielsweise kann ein Anzeigeort des Objekts wenigstens teilweise auf der Grundlage von kartografischen Daten, die dem Objekt zugeordnet sind, bestimmt sein. Das Objekt kann zur Ausgabe im Zusammenhang mit einer kartografischen Anzeige vorgesehen sein.
-
Das wenigstens eine Objekt kann ein dreidimensionales Icon sein. Beispielsweise kann das Objekt ein Icon sein, das einem kartografischen Gebiet im Zusammenhang mit einer kartografischen Anzeige zugeordnet ist. Beispielsweise kann das Objekt ein dreidimensionales Wetter-Icon sein. Dabei kann das Icon wenigstens teilweise auf der Grundlage von kartografischen Wetterdaten bestimmt sein, die einem kartografischen Gebiet im Zusammenhang mit der kartografischen Anzeige zugeordnet sind.
-
Das Verfahren kann ferner ein Empfangen, mittels der Computervorrichtung, von Informationen, die auf das Objekt bezogen sind, umfassen. Dabei kann das Bestimmen der Objektdaten ein Erzeugen der Objektdaten wenigstens teilweise auf der Grundlage der empfangenen Informationen umfassen. Das Erzeugen der Objektdaten kann ein Erzeugen der zweiten Objektpartikeldaten in Abhängigkeit von den empfangenen Informationen umfassen. So kann das Erzeugen der Objektdaten in Abhängigkeit von den empfangenen Informationen ohne ein Erzeugen der zweiten Objektpartikeldaten erfolgen. Beispielsweise können die empfangenen Informationen kartografische Wetterdaten umfassen. Dabei können die ersten Objektpartikeldaten auf Wolkenpartikel bezogen sein und auf der Grundlage von kartografischen Bewölkungsdaten erzeugt werden. Die zweiten Objektpartikeldaten können auf Niederschlagspartikel bezogen sein und auf der Grundlage von kartografischen Niederschlagsdaten erzeugt werden.
-
Gemäß einer Ausführung können die Objektdaten außerdem dritte Objektpartikeldaten umfassen, die auf einen dritten Bereich des Objekts bezogen sind. Dabei kann der dritte Bereich von dem ersten Bereich und dem zweiten Bereich wenigstens teilweise verschieden sein. Dabei kann das Verfahren ferner umfassen, wenn die Objektdaten dritte Objektpartikeldaten umfassen, Schreiben der dritten Objektpartikeldaten in einen dritten Farbkanal der Computervorrichtung, Speichern von Farbkanaldaten, die auf die in den dritten Farbkanal geschriebenen dritten Objektpartikeldaten bezogen sind, und, nach dem Rendern des Hintergrundbilds, Ersetzen der gespeicherten Farbkanaldaten bezüglich der in den dritten Farbkanal geschriebenen dritten Objektpartikeldaten durch Farbdaten, die den dritten Objektpartikeldaten zugeordnet sind.
-
Das Verfahren kann zum Rendern mehrerer dreidimensionaler Objekte vorgesehen sein. Beispielsweise können die dreidimensionalen Objekte mehrere Wetter-Icons sein, die jeweils einem unterschiedlichen kartografischen Gebiet im Zusammenhang mit einer kartografischen Anzeige zugeordnet sind.
-
Das Verfahren kann für mehrere der Objekte wenigstens teilweise nacheinander durchgeführt werden. Beispielsweise kann das Verfahren ferner ein Bestimmen, dass wenigstens zwei der Objekte voneinander verschiedene Abstände von dem Betrachterstandpunkt aufweisen, umfassen. Dabei kann das Verfahren für die Objekte wenigstens teilweise nacheinander in einer Reihenfolge gemäß einem abnehmenden Abstand der Objekte von dem Betrachterstandpunkt durchgeführt werden.
-
Zusätzlich oder alternativ dazu kann das Verfahren für die Objekte wenigstens teilweise nacheinander in einer Reihenfolge gemäß einem jeweils längsten Zeitraum seit einer vorherigen Durchführung des Verfahrens für jedes der Objekte durchgeführt werden.
-
Das Verfahren kann für eine Untergruppe von Objekten aus den sichtbaren Objekten durchgeführt werden. Zusätzlich oder alternativ dazu kann das Verfahren für wenigstens zwei Untergruppen von Objekten nacheinander durchgeführt werden. Die Untergruppen können wenigstens teilweise auf der Grundlage eines Abstands jedes der Objekte von dem Betrachterstandpunkt bestimmt sein.
-
Gemäß einem zweiten Aspekt wird ein Computerprogrammprodukt beschrieben. Das Computerprogrammprodukt umfasst Teile von Programmcode, die, wenn sie auf einer Computervorrichtung ausgeführt werden, die Computervorrichtung zur Durchführung des Verfahrens der hier vorgestellten Art veranlassen.
-
Gemäß einem dritten Aspekt wird eine Computervorrichtung zum Rendern wenigstens eines dreidimensionalen Objekts, das eine Mehrzahl von Objektpartikeln umfasst, beschrieben. Die Computervorrichtung umfasst wenigstens eine Prozessoreinheit und eine Speichervorrichtung. Die Prozessoreinheit ist dazu ausgebildet, Objektdaten, die dem Objekt zugeordnet sind, zu bestimmen, wobei die Objektdaten erste Objektpartikeldaten umfassen, die auf Objektpartikel in einem ersten Bereich des Objekts bezogen sind, und wobei die Objektdaten außerdem zweite Objektpartikeldaten umfassen können, die auf Objektpartikel in einem zweiten Bereich des Objekts bezogen sind. Die Prozessoreinheit ist ferner dazu ausgebildet, wenigstens teilweise auf der Grundlage eines Betrachterstandpunkts die ersten Objektpartikeldaten in einen ersten Farbkanal der Computervorrichtung zu schreiben, und, wenn die Objektdaten außerdem zweite Objektpartikeldaten umfassen, die zweiten Objektpartikeldaten in einen zweiten Farbkanal der Computervorrichtung zu schreiben. Die Prozessoreinheit ist zudem dazu ausgebildet, Farbkanaldaten, die auf die in einen jeweiligen Farbkanal geschriebenen Objektpartikeldaten bezogen sind, zu speichern, ein Hintergrundbild des Objekts zu rendern, und die gespeicherten Farbkanaldaten bezüglich der in den ersten Farbkanal geschriebenen ersten Objektpartikeldaten durch Farbdaten zu ersetzen, die den ersten Objektpartikeldaten zugeordnet sind, und, wenn die Objektdaten außerdem zweite Objektpartikeldaten umfassen, die gespeicherten Farbkanaldaten bezüglich der in den zweiten Farbkanal geschriebenen zweiten Objektpartikeldaten durch Farbdaten zu ersetzen, die den zweiten Objektpartikeldaten zugeordnet sind.
-
Die wenigstens eine Prozessoreinheit kann eine Hauptprozessoreinheit und eine Grafikprozessoreinheit umfassen. Dabei kann die Hauptprozessoreinheit dazu ausgebildet sein, die Objektpartikeldaten zu bestimmen. Die Grafikprozessoreinheit kann dazu ausgebildet sein, die Objektpartikeldaten in die Farbkanäle zu schreiben, die Farbkanaldaten zu speichern, das Hintergrundbild des Objekts zu rendern und die gespeicherten Farbkanaldaten durch die Farbdaten zu ersetzen.
-
Die Speichervorrichtung kann einen Grafikspeicher umfassen. Dabei kann die wenigstens eine Prozessoreinheit dazu ausgebildet sein, die ersten und die zweiten Farbkanaldaten in dem Grafikspeicher zu speichern.
-
Die Computervorrichtung kann ferner eine Anzeigeeinheit zur Anzeige des dreidimensionalen Objekts umfassen. Zusätzlich oder alternativ dazu kann die Computervorrichtung eine Empfangseinheit und/oder eine Eingabeeinheit zum Empfangen eines Hinweises auf eine Änderung des Betrachterstandpunkts, einer Betrachterperspektive und/oder des wenigstens einen Objekts umfassen. Die Empfangseinheit kann beispielsweise eine GPS-Empfangseinheit und/oder eine Empfangseinheit für ein Kommunikationsnetzwerk umfassen. Die Eingabeeinheit kann zum Empfangen einer Benutzereingabe ausgebildet sein.
-
Die Computervorrichtung kann als Teil einer Kraftfahrzeug-Navigationseinrichtung ausgebildet sein.
-
Kurze Beschreibung der Zeichnungen
-
Weitere Einzelheiten, Vorteile und Ziele der Erfindung werden aus den Zeichnungen sowie der ausführlichen Beschreibung deutlich. Es zeigen:
-
1: eine schematische Darstellung einer grafischen Anzeige dreidimensionaler Objekte, die eine Mehrzahl von Objektpartikeln umfassen, gemäß einem Beispiel;
-
2: ein Flussdiagramm eines Verfahrens zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Partikeldaten umfasst, gemäß einem Ausführungsbeispiel;
-
3: eine schematische Darstellung einer Computervorrichtung zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Partikeldaten umfasst, gemäß einem Ausführungsbeispiel;
-
4a–4c: schematische Darstellungen unterschiedlicher Stadien beim Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Partikeldaten umfasst;
-
5a–5c: schematische Darstellungen unterschiedlicher Stadien beim Rendern mehrerer dreidimensionaler Objekte, die jeweils eine Mehrzahl von Partikeldaten umfassen;
-
6a–6d: Flussdiagramme eines Verfahrens zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Partikeldaten umfasst, gemäß einem weiteren Ausführungsbeispiel, und
-
7: eine schematische Darstellung einer Computervorrichtung zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Partikeldaten umfasst, gemäß einem weiteren Ausführungsbeispiel.
-
Ausführliche Beschreibung
-
1 zeigt eine schematische Darstellung eines Beispiels für eine grafische Anzeige 100 von dreidimensionalen Objekten 120, 122, die jeweils eine Mehrzahl von Objektpartikeln umfassen. Die grafische Anzeige 100 enthält eine von einem Computergerät gerenderte und beispielsweise zur Anzeige an einem Anzeigegerät ausgegebene Ansicht der dreidimensionalen Objekte 120, 122. Die Anzeige der Objekte 120, 122 erfolgt zudem in Bezug auf eine räumliche Umgebung 110 sowie in Bezug auf einen angenommenen Betrachterstandpunkt und eine angenommene Betrachterperspektive. In dem Beispiel von 1 enthält die Anzeige 100 eine Wetterdarstellung über einem räumlich dargestellten kartografischen Hintergrund 110. Dabei umfassen die Objekte 120, 122 Wolkenobjekte in jeweils einem ersten Bereich 120a, 122a jedes der Objekte 120, 122. Eines der Objekte 120 umfasst außerdem in einem zweiten Bereich 120b des Objekts 120 eine Darstellung von Niederschlag, beispielsweise von Regen oder Schnee, als weiteres, von dem Wolkenobjekt im ersten Bereich 120a verschiedenes Mehrpartikelobjekt.
-
Eine exakte Berechnung der dreidimensionalen Objekte 120, 122, etwa bei einer Änderung der Betrachterperspektive, des Betrachterstandpunkts, der beim Rendern der Anzeige 100 zugrunde gelegten Lichtverhältnisse, einer Position oder Beschaffenheit eines der Objekte 120, 122 oder eines sonstigen für das Rendern der Anzeige 100 relevanten Darstellungsparameters, eine Berücksichtigung jedes Objektpartikels, beispielsweise jedes Wolken- und Regenpartikels, jedes der Objekte 120, 122 erforderlich machen. Neben einem verhältnismäßig hohen Rechenaufwand für die eigentliche Darstellung würde eine individuelle Berechnung jedes Partikels der Objekte 120, 122 allein durch die Vielzahl von Zeichenbefehlen einen entsprechend großen Overhead erzeugen. Bereits dadurch würden vorhandene Rechenkapazitäten erheblich belastet. Zudem können auch bekannte Techniken zum vereinfachten Rendern dreidimensionaler Objekte aus einer Mehrzahl von Objektpartikeln insbesondere bei Vorliegen von nur geringen Rechenkapazitäten oder verhältnismäßig vielen Objektpartikeln schnell zu einer Auslastung der vorhandenen Rechenkapazitäten und so zu einer merklichen Verzögerung beim Rendern etwa der Anzeige 100 führen. Nachfolgend wird daher eine Technik zum schnellen Rendern derartiger Objekte beschrieben.
-
2 zeigt ein Flussdiagramm eines Verfahrens 200 zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Objektpartikeln umfasst. In einem ersten Schritt 210 werden Objektdaten bestimmt, die einem Objekt zugeordnet sind und die erste Objektpartikeldaten umfassen. Die Objektpartikeldaten sind dabei auf Objektpartikel in einem ersten Bereich des Objekts bezogen. Die Objektdaten können außerdem zweite Objektpartikeldaten umfassen, die auf Objektpartikel in einem zweiten Bereich des Objekts bezogen sind.
-
Angewendet auf das Beispiel aus 1 handelt es sich bei dem Objekt beispielsweise um eines der Wetterobjekte 120, 122. Die Objektdaten umfassen dabei beispielsweise Wolkenpartikeldaten, die auf Wolkenpartikel in dem ersten Bereich 120a, 122a des jeweiligen Objekts 120, 122 bezogen sind. Zusätzlich zu Wolkenpartikeldaten können die Objektdaten jedes der Objekte 120, 122 zudem Regenpartikeldaten umfassen, die auf Regenpartikel in einem zweiten Bereich 120b bezogen sind, wie an dem Beispiel des Objekts 120 gezeigt. Alternativ dazu kann es sich bei den Objektpartikeldaten in dem zweiten Bereich 120b auch um Schneepartikel oder sonstige Niederschlagspartikel handeln. In dem Beispiel ist somit das Vorliegen von Wolkenpartikeldaten als Teil der Objektdaten Voraussetzung für das Vorliegen auch von Niederschlagspartikeldaten. Umgekehrt umfassen die Objektdaten nicht notwendigerweise zweite Objektpartikeldaten, wie an dem Beispiel von Objekt 122 gezeigt.
-
Bei einer Anwendung des Verfahrens 200 auf das Beispiel von 1 umfasst das Bestimmen der Objektdaten beispielsweise eine Eingabe oder ein Empfangen kartografischer Wetterinformationen durch ein Computergerät, mittels dessen das Verfahren 200 durchgeführt wird. Auf der Grundlage derartiger Informationen werden beispielsweise die Position jedes der Objekte 120, 122 bestimmt, und ob dem jeweiligen Objekt 120, 122 Objektdaten zugeordnet oder zuzuordnen sind, welche außerdem zweite Objektpartikeldaten, etwa in Form von Niederschlagspartikeldaten, umfassen.
-
Das Verfahren 200 umfasst ferner ein Schreiben der ersten Objektpartikeldaten in einen ersten Farbkanal, Schritt 220. Der erste Farbkanal ist beispielsweise ein Farbkanal des Computergeräts, mittels dessen das Verfahren 200 durchgeführt wird. Das Schreiben der ersten Objektpartikeldaten erfolgt dabei wenigstens teilweise auf der Grundlage eines Betrachterstandpunkts. Zudem werden die zweiten Objektpartikeldaten in einen zweiten Farbkanal des Computergeräts geschrieben, sofern die Objektdaten auch zweite Objektpartikeldaten umfassen.
-
Bei den Farbkanälen handelt es sich beispielsweise um jeweils einen aus einem roten, einem grünen oder einem blauen Farbkanal des Computergeräts, wenn eine RGB-Anzeige zur Ausgabe vorgesehen ist. In anderen Beispielen, bei denen eine andere Anzeigetechnik vorgesehen ist, sind entsprechend andere Farbkanäle anwendbar.
-
Die in jeweils einen Farbkanal geschriebenen Objektpartikeldaten werden in Form von Farbkanaldaten gespeichert, Schritt 230. Das Speichern der Farbkanaldaten erfolgt beispielsweise mit dem Schreiben der Objektpartikeldaten in die Farbkanäle.
-
Das Verfahren 200 umfasst zudem ein Rendern eines Hintergrundbilds des Objekts, Schritt 240. Bezogen auf das Beispiel aus 1 entspricht das Hintergrundbild beispielsweise einem Anzeigebereich eines der Objekte 120, 122. Dabei können mit dem Hintergrundbild zugleich bestimmte Inhalte, die keine Objektpartikel umfassen müssen, angezeigt werden und so den Objektpartikeln unterlegt sein (in 1 nicht dargestellt).
-
Anschließend erfolgt ein Ersetzen der gespeicherten Farbkanaldaten durch Farbdaten, die den jeweiligen Objektpartikeldaten zugeordnet sind, Schritt 250. In dem Beispiel aus 1 sind beispielsweise im Zusammenhang mit jedem der Objekte 120, 122 in dem roten Farbkanal als erstem Farbkanal Farbkanaldaten gespeichert, die auf das Vorliegen erster Objektpartikeldaten hinweisen. Diese Farbkanaldaten werden daher zur Anzeige von Wolkenpartikeln beispielsweise durch weiße und graue Farbdaten ersetzt. Zudem werden bei Vorliegen gespeicherter Farbkanaldaten in einem grünen Farbkanal als zweitem Farbkanal die gespeicherten Farbkanaldaten beispielsweise durch Farbdaten ersetzt, die zur Darstellung von Niederschlag geeignet sind. Die Zuordnung von Farbdaten zu den jeweiligen Farbkanaldaten erfolgt dabei beispielsweise auf der Grundlage einer Zuordnungstabelle, die in einer Speichereinrichtung des Computergeräts abgelegt ist.
-
Bezogen auf das Beispiel von 1 können die zweiten Objektpartikeldaten sowie entsprechend auch die Farbkanaldaten bezüglich der in den zweiten Farbkanal geschriebenen Objektpartikeldaten einer animierten Textur entsprechen. Beispielsweise umfassen die Farbkanaldaten oder die den Farbkanaldaten zugeordneten Farbdaten Daten bezüglich einer animierten Niederschlagsdarstellung. Diese Daten umfassen beispielsweise neben einer Position einzelner Niederschlagspartikel Parameter, die auf eine zeitliche Veränderung der vertikalen Partikelposition bezogen sind, um eine fallende Bewegung der Partikel darzustellen. Zudem sind die zweiten Objektpartikeldaten auch mit gegebenenfalls animierten Einblendungen, beispielsweise von Blitzen, die nicht notwendigerweise Partikeldaten umfassen, kombinierbar.
-
3 zeigt eine schematische Darstellung einer Computervorrichtung 300, wie sie insbesondere zur Durchführung des Verfahrens 200 aus 2 geeignet ist. Die Computervorrichtung 300 umfasst eine Prozessoreinheit 310 und eine Speichervorrichtung 320, die miteinander kommunikativ verbunden sind. Die Speichervorrichtung 320 ist mit Programmcode beschrieben, der, wenn er von der Prozessoreinheit 310 ausgeführt wird, Funktionalitäten zur Durchführung des Verfahrens 200 bereitstellt. Die Funktionalitäten der Computervorrichtung 300 umfassen entsprechend ein Objektdatenbestimmungsmodul 330, ein Objektpartikeldatenschreibmodul 340, ein Farbkanaldatenspeichermodul 350, ein Hintergrundbild-Rendermodul 360 sowie ein Farbkanaldatenersetzungsmodul 370.
-
Bezogen auf das Beispiel von 1 ist die Computervorrichtung 300 beispielsweise Teil eines Kraftfahrzeugnavigationsgeräts. Dabei umfasst die Computervorrichtung 300 in einigen Beispielen zudem eine Anzeigevorrichtung zur Anzeige dreidimensionaler Objekte in Verbindung mit einem räumlich dargestellten Kartenhintergrund. In einigen Beispielen umfasst die Computervorrichtung 300 zudem eine Eingangsschnittstelle zum Empfangen kartografischer Wetterinformationen und/oder Standortinformationen bezüglich eines gegenwärtigen Betrachterstandpunkts sowie einer gegenwärtigen Betrachterperspektive.
-
4a bis 4c zeigen schematische Darstellungen unterschiedlicher Stadien beim Rendern eines dreidimensionalen Objekts gemäß der vorangehend beschriebenen Technik. Bei dem Beispiel aus 4a bis 4c handelt es sich bei dem Objekt 400 um ein dreidimensionales Wettericon. Die beschriebenen Techniken sind jedoch entsprechend auch auf andere Objektarten anwendbar.
-
4a zeigt das Objekt 400 nach dem Rendern des Hintergrundbilds 410. Das Hintergrundbild 410 definiert einen Anzeigebereich des Objekts 400. In dem Beispiel von 4a enthält das Hintergrundbild 410 zudem die Darstellung eines Hintergrundobjekts 420 in Form einer Mondsichel. In dem Zusammenhang mit Wettericons kann eine solche Darstellung als Teil des Hintergrundbilds beispielsweise zur Veranschaulichung einer Bewölkungsdichte und/oder einer Tageszeit verwendet werden. In anderen Beispielen wird das Hintergrundbild 410 dagegen mit anderen Hintergrundobjekten 420 oder ohne jegliche Hintergrundobjekte 420 dargestellt.
-
4b zeigt das Objekt 400 nach einem Ersetzen der in den ersten Farbkanal geschriebenen ersten Objektpartikeldaten durch die zugeordneten Farbdaten. Die ersten Objektpartikeldaten wurden beispielsweise zuvor auf der Grundlage von dem Objekt 400 zugeordneten Objektdaten in den ersten Farbkanal geschrieben. Das Ersetzen der ersten Farbkanaldaten bewirkt die Darstellung einer Wolke 430 in einem ersten Bereich des Objekts 400 innerhalb des durch das Hintergrundbild 410 definierten Anzeigebereichs sowie überlagert über den grafischen Inhalt 420 des Hintergrundbilds.
-
4c zeigt analog zu 4b das Ersetzen zweiter Farbkanaldaten in einem zweiten Bereich des Objekts 400 durch entsprechende Farbdaten 440. Wie in dem Beispiel von 4b sind dabei auch die zweiten Objektpartikeldaten beispielsweise zuvor auf der Grundlage von dem Objekt 400 zugeordneten Objektdaten in den zweiten Farbkanal geschrieben worden. In dem gezeigten Beispiel entsprechen die Farbdaten in dem zweiten Bereich 440 einer Niederschlagsdarstellung auf der Grundlage zweiter Objektpartikeldaten.
-
Durch das beschriebene Verfahren wird eine Darstellung der Objektpartikel in Bezug auf einen Anzeigebereich des Objekts 400 erst im Zusammenhang mit dem Ersetzen der Farbkanaldaten durch Farbdaten spezifiziert. Dagegen liegt durch das vorangehende Schreiben und Speichern der Farbkanaldaten bereits ein Texturpuffer für die Objektpartikel in den unterschiedlichen Bereichen 430, 440 des zu rendernden Objekts 400 vor. Die Darstellung des Objekts kann zudem mittels eines einzigen Zeichenbefehls, der auf das Objekt bezogen ist, erfolgen. Zudem können die Farbdaten in dem ersten und/oder dem zweiten Bereich 430, 440 wiederum wenigstens teilweise animierte Darstellungen umfassen. Zudem können die Farbdaten auf einzelne Pixel oder auf eine Textur aus mehreren Pixeln bezogen sein.
-
Gemäß der vorliegend beschriebenen Technik werden zudem zum Erzeugen des Texturpuffers unterschiedliche Objektpartikeldaten in jeweils unterschiedliche Farbkanäle der Computervorrichtung geschrieben. Abweichend von den vorangehenden Beispielen kann die beschriebene Technik daher auch auf weitere, insbesondere auch auf dritte, Objektpartikeldaten ausgeweitet werden. In dem Fall, dass eine RGB-Anzeige verwendet wird, können die dritten Objektpartikeldaten beispielsweise in einen blauen Farbkanal der Computervorrichtung geschrieben werden. Zudem umfassen in weiteren Beispielen die Farbkanal- bzw. Texturdaten zusätzliche Informationen, beispielsweise bezüglich einer Transparenz. Derartige Informationen sind dabei in einen entsprechenden weiteren Kanal geschrieben.
-
5a bis 5c zeigen schematische Darstellungen unterschiedlicher Verfahrensstadien bei einer Änderung der Betrachtereinstellungen. 5a zeigt in Draufsicht eine Anordnung 500 mehrerer dreidimensionaler Objekte 510, 510a, 510b, 510c in Bezug auf einen Betrachterstandpunkt 520a. Die Perspektive des Betrachters ist dabei zentral auf die Objekte 510 gerichtet. Angewendet auf das Beispiel aus 1 entspricht beispielsweise jedes der Objekte 510 einem Wetterobjekt, dem eine bestimmte kartografische Position sowie entsprechende Wetterinformationen zugeordnet sind.
-
Die Objekte 510 entsprechen Objekten, die von dem Beobachterstandpunkt 520a bei der gegenwärtigen Betrachterperspektive sichtbar sind. Dagegen liegen bei einigen Beispielen des Verfahrens Objektdaten auch zu Objekten vor, die bei den gegenwärtigen Betrachtereinstellungen nicht sichtbar sind. Bei einem Beispiel des beschriebenen Verfahrens erfolgen daher zunächst eine Bestimmung der gegenwärtig sichtbaren Objekte sowie eine Beschränkung des weiteren Verfahrens auf die sichtbaren Objekte.
-
5b zeigt die Anordnung 500, wobei sich die Objekte 510 an jeweils gleicher Position wie in 5a befinden. Gegenüber 5a hat sich jedoch sowohl der Standpunkt als auch die Perspektive des Betrachters 520b geändert. In dem gezeigten Beispiel hat sich die Menge der für den Betrachter 520b sichtbaren Elemente nicht geändert. Dennoch können die geänderten Betrachtereinstellungen eine Neuberechnung wenigstens einiger der Objekte 510 erforderlich machen. Nach einem einmal erfolgten Rendern der Objekte 510 erfolgt eine Neuberechnung erst auf Empfang eines Hinweises, dass ein erneutes Renderns erforderlich ist. Während hierdurch Rechenressourcen geschont werden, ergibt sich ein entsprechendes Erfordernis beispielsweise aus einer Änderung der Wetterinformationen oder, wie in dem Beispiel von 5b, einer Änderung der Betrachtereinstellungen. Dabei erfolgt insbesondere das Schreiben der jeweiligen Objektpartikeldaten in die einzelnen Farbkanäle der Computervorrichtung auf der Grundlage der geänderten Betrachtereinstellungen.
-
Wie in 5b durch die schraffierten Objekte angedeutet, wird das Verfahren bei einer erfassten Änderung der Betrachterperspektive 520b nicht für alle sichtbaren Objekte 510 gleichzeitig durchgeführt. Stattdessen erfolgt ein erneutes Rendern zunächst nur für eine Untergruppe 510c der Objekte 510. Andere Objekte 510a, 510b bleiben dagegen vorläufig unverändert. Nach Abschluss eines Renderns der Objekte 510c in der Untergruppe werden daraufhin weitere Objekte aus den sichtbaren Objekten 510 zum Rendern auf der Grundlage der geänderten Betrachtereinstellungen 520b bestimmt. Auf diese Weise lässt sich der Umfang eines zu einem jeweiligen Zeitpunkt vorliegenden Rechenaufwands reduzieren.
-
Die Untergruppe 510c der zuerst herangezogenen Objekte wird beispielsweise danach bestimmt, wie stark sich eine geänderte Betrachtereinstellung 520b auf die Wahrnehmung der einzelnen Objekte 510a, 510b, 510c durch den Betrachter auswirkt. Beispielsweise werden die Objekte oder Untergruppen auf der Grundlage eines Abstands der einzelnen Objekte 510 von dem Betrachterstandpunkt 520b bestimmt. Auf diese Weise ist besonders bei einer schnellen Abfolge von Änderungen in den Betrachtereinstellungen die Neuberechnung der für die Benutzererfahrung jeweils wichtigsten Objekte 510 gewährleistet.
-
5c zeigt eine anschließende Durchführung des Verfahrens für eine weitere Untergruppe 510a, 510b der Objekte 510. Dabei weisen die Objekte 510a, 510b dieser zweiten Untergruppe einen geringeren Abstand von dem Betrachterstandpunkt 520b auf als die Objekte 510c der ersten Untergruppe.
-
In weiteren Beispielen wird für eine Bestimmung der Untergruppen bzw. der einzelnen Objekte 510a, 510b, 510c sowie der Reihenfolge einer Neuberechnung dieser Objekte anstelle oder zusätzlich zu einem Abstand vom Betrachterstandpunkt 520b ein Zeitraum seit einer vorangegangenen letzten Berechnung der jeweiligen Objekte herangezogen. Dies ermöglicht eine zyklische Aktualisierung der Objekte 510, wodurch eine fortdauernde Anzeige veralteter Objekte vermieden wird.
-
6a bis 6d zeigen ein Verfahren 600 zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Objektpartikeln umfasst, gemäß einem weiteren Ausführungsbeispiel. Wie in 6a gezeigt, beginnt das Verfahren 600 durch Starten eines Hauptprogramms HP mittels einer Computervorrichtung.
-
Zunächst erfolgt das Ermitteln von Szenen- und Betrachterdaten, 604. Szenendaten umfassen beispielsweise Daten für eine räumliche Kartenanzeige sowie der Kartenanzeige zugeordnete kartografische Wetterinformationen. Betrachterdaten umfassen beispielsweise einen gegenwärtigen Betrachterstandpunkt und eine gegenwärtige Betrachterperspektive. Die Eingabe der Daten erfolgt beispielsweise über einen entsprechenden Empfang der Daten mittels einer Eingangsschnittstelle der Computervorrichtung. Die Daten können dabei insbesondere von einer dem Betrachter zugeordneten GPS-Einrichtung stammen oder über ein Kommunikationsnetzwerk empfangen werden. In anderen Beispielen werden die Daten wenigstens teilweise von einem Benutzer über eine Benutzerschnittstelle in die Computervorrichtung eingegeben.
-
Auf der Grundlage der ermittelten Daten erfolgt anschließend ein Bestimmen der Menge sichtbarer Icons, Schritt 606. Dabei handelt es sich beispielsweise um dreidimensionale Wettericons, wie im Zusammenhang mit den 4 und 5 beschrieben. In einem anschließenden Schritt 608 wird ermittelt, ob sich die Menge sichtbarer Icons gegenüber einer vorangehenden Durchführung des Verfahrens 600 geändert hat. In dem Fall, dass sich die Icon-Menge nicht geändert hat (Nein-Zweig ausgehend von Schritt 608), wird das Verfahren 600 unter Verwendung der für die Icons bereits zuvor jeweils erstellten Texturpuffer fortgesetzt. Befinden sich dagegen neue Elemente in der Icon-Menge oder haben sich die Betrachtereinstellungen geändert (Ja-Zweig ausgehend von Schritt 608), wird für wenigstens einen Teil der Icons in der Icon-Menge durch Starten eines ersten Unterprogramms UP1 ein neuer Texturpuffer erstellt.
-
Mit Bezug auf 6b werden für die Durchführung des ersten Unterprogramms UP1 die im Rahmen des Hauptprogramms HP ermittelten Betrachterdaten und die bestimmte Menge sichtbarer Icons herangezogen, Schritt 620. Auf der Grundlage dieser Daten wird zunächst aus der Icon-Menge eine Untergruppe von N Icons bestimmt, die am längsten nicht aktualisiert wurden, Schritt 622. Für ein erstes Icon A aus dieser Untergruppe, 624, werden die Objektpartikeldaten nach abnehmenden Abstand zum Betrachter sortiert, Schritt 626. Auf diese Weise werden beispielsweise Wolkenpartikeldaten für einen ersten Anzeigebereich des 3D-Wettericons in Bezug auf eine gegenwärtige Betrachterposition angeordnet. Auf der Grundlage der so sortierten Partikeldaten für das Icon A wird anschließend mittels eines zweiten Unterprogramms UP2 ein Texturpuffer durch Schreiben entsprechender Partikeldaten in jeweilige Farbkanäle der Computervorrichtung erstellt.
-
Mit Bezug auf 6c werden für das Erstellen des Texturpuffers zunächst ein leerer Texturpuffer für das Icon A sowie die ermittelten Betrachtereinstellungen zugrunde gelegt, 640. Darüber hinaus werden die für den ersten Bereich des Icons A vorliegenden ersten Partikeldaten 642 sowie eventuell vorliegende zweite und dritte Partikeldaten 646, 650 in jeweils einen Farbkanal der Computervorrichtung geschrieben, Schritte 644, 648 und 652. Durch Speichern der in die einzelnen Farbkanäle geschriebenen Partikeldaten ergibt sich ein Texturpuffer für das Icon A, 654.
-
Mit Bezug auf 6b wird nach Ausführung des Unterprogramms UP2 für das Icon A ermittelt, ob A das letzte Icon in der zu aktualisierenden Untergruppe aus N Icons ist, Schritt 628. In dem Fall, dass sich weitere Icons in der Untergruppe befinden (Nein-Zweig ausgehend von Schritt 628), wird das nächste Icon in der Untergruppe als neues Icon A bestimmt und die Schritte 626 bis 628 einschließlich des Unterprogramms UP2 für dieses weitere Icon durchgeführt. Dieser Verfahrensabschnitt wird wiederholt, bis für jedes Icon in der zu aktualisierenden Untergruppe ein Texturpuffer erstellt worden ist. Anschließend wird das Hauptprogramm HP gemäß 6a fortgesetzt.
-
Mit Bezug auf 6a werden anschließend alle sichtbaren Icons gemäß einem abnehmenden Abstand zum Betrachterstandpunkt sortiert, Schritt 610. Anschließend wird für das weitere Verfahren das erste Icon der Icon-Menge, d. h. das vom Betrachterstandpunkt am weitesten entfernte sichtbare Icon, ermittelt, Schritt 612. An der Anzeigeposition des so ermittelten Icons A wird anschließend ein Viereck, das den Anzeigebereich des Icons A definiert, erstellt, Schritt 614. In anderen Beispielen wird die Anzeigeposition des Icons A dagegen auf andere Weise, beispielsweise durch Erstellen eines von einem Viereck verschiedenen Polygons, bestimmt. Anschließend wird ein drittes Unterprogramm UP3 zur abschließenden Ausgabe des Icons A für das Icon A durchgeführt.
-
Mit Bezug auf 6d wird der Durchführung des dritten Unterprogramms UP3 zunächst das in Schritt 614 erstellte Viereck zugrunde gelegt, 660. Gemäß der Position und Größe dieses Vierecks erfolgt daraufhin ein Rendern des Hintergrundbilds für das Icon A, Schritt 662. Für das Rendern des Hintergrundbilds gilt beispielsweise das im Zusammenhang mit 4a bis 4c Gesagte entsprechend. Daraufhin werden die für das Icon A vorhandenen Farbkanaldaten eines oder mehrerer Farbkanäle herangezogen, 664, 668, 672, und in den Schritten 666, 670, 674 durch entsprechende Farbdaten ersetzt. Für das Ersetzen der Farbdaten gilt ebenfalls beispielsweise das im Zusammenhang mit 4a bis 4c Gesagte entsprechend. Als Ergebnis der Ausführung des dritten Unterprogramms UP3 erfolgt schließlich die Ausgabe des erstellten Vierecks mit Icon-Textur an der für das Icon vorgesehenen Position, Schritt 676.
-
Mit Bezug auf 6a wird nach der Ausgabe des Icons A ermittelt, ob das Icon A das letzte Icon der Icon-Menge ist oder ob sich ein weiteres Icon in der Icon-Menge befindet. In dem Fall, dass sich in der Icon-Menge ein nachfolgendes, d. h. dem Betrachterstandpunkt näheres und beispielsweise vor dem Icon A positioniertes, Icon befindet (Nein-Zweig ausgehend von Schritt 616), wird dieses nächste Icon als Icon A bestimmt, Schritt 618, und die Schritte 614 bis 616 einschließlich des Unterprogramms UP3 werden für dieses nächste Icon erneut durchgeführt. Auf diese Weise werden insbesondere voreinander positionierte Icons gemäß ihrem jeweiligen Abstand vom Betrachterstandpunkt übereinander gezeichnet. Sobald das Verfahren 600 für das letzte Icon der Icon-Menge durchgeführt wurde (Ja-Zweig ausgehend von Schritt 616), kommt das Verfahren 600 vorläufig zum Stillstand, bis eine Änderung in den Szenen- oder Betrachterdaten, etwa durch eine Eingabe neuer Daten, erfasst wird, Schritt 604. Bei Vorliegen entsprechender Änderungen wird das Verfahren 600 auf der Grundlage der geänderten Daten erneut durchgeführt.
-
In dem vorangehend beschriebenen Beispiel des Verfahrens 600 wird das Hauptprogramm bei jeder Durchführung des Verfahrens 600 für sämtliche sichtbaren Icons durchgeführt. In anderen Beispielen wird die Icon-Menge, auf die das Verfahren 600 anzuwenden ist, dagegen auf der Grundlage anderer oder zusätzlicher Kriterien bestimmt. Außerdem wird in einigen Beispielen das dritte Unterprogramm UP3 nur für die im Rahmen des ersten Unterprogramms UP1 bestimmte Menge der zu aktualisierenden N Icons durchgeführt. Auf diese Weise lässt sich ein Rechenaufwand bei der Durchführung des Verfahrens 600 weiter reduzieren.
-
7 zeigt eine schematische Darstellung einer Computervorrichtung 700 zum Rendern eines dreidimensionalen Objekts, das eine Mehrzahl von Objektpartikeln umfasst, gemäß einem weiteren Ausführungsbeispiel. Wie die Computervorrichtung 300 aus 3 ist auch die Computervorrichtung 700 zur Durchführung des vorliegend beschriebenen Verfahrens ausgebildet. Insbesondere umfasst auch die Computervorrichtung 700 wenigstens eine Prozessoreinheit 720, 740 sowie wenigstens eine Speichervorrichtung 730, 750, 760. Im Unterschied zu der Computervorrichtung 300 aus 3 umfasst die Computervorrichtung 700 außerdem eine Anzeigeeinrichtung 710. Zudem umfasst die Computervorrichtung 700 neben einer Hauptprozessoreinheit 720 eine Grafikprozessoreinheit 740, die mit der Hauptprozessoreinheit 720 kommunikativ verbunden ist. Außerdem umfasst die Computervorrichtung 700 mehrere Speichervorrichtungen, umfassend einen Arbeitsspeicher 730, einen Grafikspeicher 750 und einen Festspeicher 760. Dabei ist der Hauptprozessoreinheit 720 der Arbeitsspeicher 730 zugeordnet und der Grafikprozessoreinheit 740 ist der Grafikspeicher 750 zugeordnet. Die Hauptprozessoreinheit 720 hat zudem Zugriff auf den Festspeicher 760.
-
Wie in 7 durch die gestrichelten Linien dargestellt, sind bei der Computervorrichtung 700 die im Zusammenhang mit 6a bis 6d beschriebenen Verfahrensschritte im Rahmen des Hauptprogramms HP und der Unterprogramme UP1, UP2, UP3 maßgeblich durch jeweils unterschiedliche Ressourcen der Computervorrichtung 700 implementiert. Die dargestellte Verteilung der unterschiedlichen Prozessabschnitte ermöglicht dabei insbesondere eine Entlastung der Hauptprozessoreinheit 720 und damit eine weitere Beschleunigung. So erfolgt bei dem gezeigten Beispiel durch die Hauptprozessoreinheit 720 ein Bestimmen, Sortieren und Anordnen der Objekte sowie ein Sortieren der Partikeldaten für jedes Objekt mit Bezug auf eine Betrachterperspektive im Rahmen des Hauptprogramms HP und des ersten Unterprogramms UP1. Demgegenüber erfolgen das Erzeugen der Texturpuffer auf der Grundlage der Partikeldaten sowie das Erstellen der Objekte zur Ausgabe im Rahmen des ersten und zweiten Unterprogramms UP2, UP3 maßgeblich durch die Grafikprozessoreinheit 740 und unter Verwendung des Grafikspeichers 750.
-
Die vorangehend beschriebenen Techniken sind auf ein schnelles Renderingverfahren für dreidimensionale Partikelobjekte gerichtet. Die beschriebenen Techniken beruhen einerseits auf einer verteilten Nutzung von Rechenresourcen. Andererseits gestatten bestimmte Anwendungen Annahmen für ein vereinfachtes Rendern, ohne dass eine Benutzererfahrung übermäßig beeinträchtigt wird. Die Techniken sind dabei insbesondere im Zusammenhang mit einer Wetterdarstellung als Teil einer kartografischen Anzeige, wie etwa an einem Navigationsgerät, beschrieben. Es versteht sich jedoch, dass einzelne Aspekte der beschriebenen Techniken unabhängig von anderen Aspekten implementierbar sind sowie auch auf andere Anzeigeinhalte entsprechend anwendbar sind.