-
Die
vorliegende Erfindung betrifft allgemein Computersystemanwendungen
und im Besonderen ein Verfahren und eine Vorrichtung zur Erleichterung der
Navigation in dreidimensionalen Szenen in einer Computergrafikanwendung über einem
Benutzer zur Verfügung
stehende Steuerungsoptionen.
-
Die
dreidimensionale Grafiktechnologie ist in den letzten Jahren aus
einer Reihe von Gründen
immer beliebter geworden. Zurzeit kommen 3D-Grafiken zunehmend bei
Anwendungen im Bereich des Designs zum Einsatz, wie etwa der Architektur
und dem Ingenieurwesen bzw. der Entwicklung. Ferner können sie
häufig
bei wissenschaftlichen Untersuchungen zum Einsatz, wie etwa bei
der Nachstellung von Flugzeugabstürzen sowie bei Freizeitaktivitäten wie
zum Beispiel Computerspielen.
-
Dreidimensionale
Grafiken bieten einer Person eine realistische Perspektive darüber, wie
verschiedene Objekte in einer virtuellen Umgebung erscheinen (und
unter Umständen
dynamisch zueinander im Verhältnis
stehen), wobei dies einen signifikanten Vorteil gegenüber traditionellen
zweidimensionalen Grafiken darstellt. Folglich hat der Einsatz dreidimensionaler
Grafiken ebenso enorm zugenommen wie die Entwicklung dieser Grafiken,
die für
den Benutzer ein unersetzliches Hilfsmittel darstellen.
-
Eine
erhebliche Einschränkung
dreidimensionaler Grafiken ist jedoch die Bewegung und Positionierung
eines Benutzers bzw. Anwenders in einer 3D-Szene, was allgemein
als Navigation bezeichnet wird. Zahlreiche Faktoren tragen dazu
bei, dass es einem Benutzer nicht möglich ist, effektiv in einer 3D-Szene
zu navigieren. Zum Beispiel haben der Einsatz ungeeigneter Eingabevorrichtungen
für die Navigation,
ungeeignetes visuelles Feedback an den Benutzer und eine beschränkte Benutzerkoordination
die 3D-Navigation ungewohnt und frustrierend gestaltet.
-
Zur
Behebung bzw. Abschwächung
der mit der Navigation verbundenen Unzulänglichkeiten wurde eine Technik
entwickelt, die als funktionale (oder Aufgaben orientierte) Navigation
bekannt ist. Die funktionale Navigation unterstützt den Anwender in Bezug auf
die Position des Benutzers bzw. Anwenders oder den Zweck in der
3D-Szene. Die Auswahl eines Objekts in einer 3D-Szene (über eine
Benutzereingabevorrichtung) kann zum Beispiel bewirken, dass die
Betrachtungsposition des Benutzers in der Szene automatisch auf
einen neuen Betrachtungsabstand von dem ausgewählten Objekt neu ausgerichtet
wird. Die funktionale Navigation automatisiert im Wesentlichen das
Verfahren der traditionellen „manuellen" Navigation und nimmt
in der Computerspielbranche eine Vorreiterrolle ein.
-
Die
funktionale Navigation hat die Navigationsmöglichkeiten für Anwender
zwar stark verbessert, jedoch leidet auch sie unter verschiedenen Nachteilen.
Zurzeit erfordert nahezu jede Handlung des Benutzers bzw. Anwenders
in einer 3D-Szene, dass der Benutzer den Cursor (oder Zeiger) auf
dem Anzeigebildschirm neu positioniert. Ob über eine Maus, einen Trackball,
ein Grafiktablett oder eine andere Einrichtung, die Positionierung
des Cursors ist einer der zeitaufwändigsten und meisten ermüdenden Operationen
in Verbindung mit 3D-Grafikprogrammen.
Der Benutzer bzw. Anwender muss zuerst den Cursor auf dem Anzeigebildschirm
lokalisieren. Danach muss der Anwender den Cursor an einer Position
auf dem Bildschirm platzieren, um ein gewünschtes Objekt oder eine Steuerung auszuwählen. Dies
beinhaltet für
gewöhnlich
das „Hinausschießen" über das gewünschte Objekt oder der Steuerung,
wobei der Benutzer in diesem Fall korrigierende Maßnahmen
vornehmen muss, um das Objekt oder die Steuerung auszuwählen. Durch
die Ausführung derartiger
Vorgänge
bzw. Operationen leidet der Benutzer unter kognitiver Diskontinuität, wobei
er sich mehr auf die Positionierung des Cursors in der Szene konzentrieren
muss als auf die 3D-Szene selbst. Ferner verändert sich die 3D-Szene durch
die Auswahl des Objekts oder der Steuerung. Somit kann es vorkommen,
dass Objekte, die in der ursprünglichen 3D-Szene
angezeigt worden sind (d.h. vor der Auswahl), in der neu erzeugten
3D-Szene (d.h. nach der Auswahl) nicht mehr sichtbar sind. In der
Folge ist es schwierig, diese Objekte, die in der neu erzeugten 3D-Szene nicht mehr
sichtbar sind, später
wiederherzustellen.
-
Das
U.S. Patent US-A-5.528.735 offenbart ein Verfahren und eine Vorrichtung
zum Anzeigen von Daten in einer dreidimensionalen Umgebung. Eine
veränderte
Perspektive der Objekte in einem dreidimensional navigierbaren Anzeigeraum
wird durch Komprimieren der horizontalen Dimension der angezeigten
Objekte bereitgestellt, so dass ein Benutzer eine repräsentative Übersicht über die
gesamte Ansammlung von Anzeigeobjekten sehen kann, die für die gemeinsame
Anzeige auf dem Anzeigebildschirm ausgewählt worden sind. Die komprimierte
Komponente wird erweitert, so dass die Objekte breiter erscheinen,
wenn sich der Navigator den angezeigten Objekten nähert. Ein
Scheinwerfer bzw. Spotlight scheint nach unten auf die Objekte und dient
als Navigationsunterstützung,
wobei die hervorgehobenen Objekte aus der Entfernung sichtbar sind und
leicht lokalisiert werden können.
Die Ansicht des Benutzers des Anzeigeraums wird so verändert, dass
der Navigator, wenn er sich einem in dem Anzeigeraum angezeigten
Objekt nähert, meint
sich in einer geraden Linie zu bewegen, wobei die horizontale Dimension
der angezeigten Objekte gemäß der anscheinenden
Entfernung zwischen einem angezeigten Objekt und dem Navigator komprimiert
wird.
-
Vorgesehen
werden sollen gemäß der vorliegenden
Erfindung ein verbessertes Verfahren und eine verbesserte Vorrichtung
zum Navigieren in dreidimensionalen Grafikszenen, wobei es leicht
möglich ist,
eine in Bezug auf die aktuelle Betrachtungsposition unmittelbar
vorangegangene Betrachtungsposition anzunehmen.
-
Vorgesehen
ist gemäß einem
ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen
Anspruch 1.
-
Vorgesehen
ist gemäß einem
zweiten Aspekt der vorliegenden Erfindung eine Vorrichtung gemäß dem gegenständlichen
Anspruch 6.
-
Bevorzugte
Merkmale der Erfindung sind in den Unteransprüchen definiert.
-
In
den Zeichnungen zeigen:
-
1 ein
Blockdiagramm einer Vorrichtung zur Vereinfachung der Navigation
in einer speziellen dreidimensionalen Szene eines 3D-Raums gemäß der vorliegenden
Erfindung;
-
die 2A–C verschiedene
dreidimensionale Szenen (d.h. visuelle Perspektiven des 3D-Raums)
auf einer Anzeige der Vorrichtung aus 1;
-
die 3A–C verschiedene
Komponenten, die eine Betrachtungsposition eines Benutzers innerhalb
des 3D-Raums definieren; und
-
die 4A und
B ein Verfahren, das die Vorrichtung aus 1 ausführt, um
die Navigation in den dreidimensionalen Szenen zu erleichtern.
-
In
Bezug auf die vorliegende Erfindung sind verschiedene Modifikationen
und alternative Ausführungen
möglich,
wobei besondere Ausführungsbeispiele
in den Zeichnungen beispielhaft dargestellt sind und hierin näher beschrieben
werden. Hiermit wird festgestellt, dass die vorliegende Beschreibung bestimmter
Ausführungsbeispiele
die Erfindung jedoch nicht auf speziellen offenbarten Ausführungen beschränkt, vielmehr
umfasst die Erfindung alle Modifikationen, Äquivalente und Alternativen,
die dem Umfang der Erfindung angehören.
-
Veranschaulichende
Ausführungsbeispiele der
vorliegenden Erfindung sind nachstehend beschrieben. Zur besseren
Veranschaulichung werden in der vorliegenden Patentschrift nicht
alle Merkmale einer tatsächlichen
Implementierung beschrieben. Dabei wird festgestellt, dass es bei
der Entwicklung jedes derartigen tatsächlichen Ausführungsbeispiels erforderlich
ist, zahlreiche die Implementierung betreffende Entscheidungen zu
treffen, um die speziellen Ziele der Entwickler umzusetzen, wie
etwa eine Kompatibilität
mit sytembezogenen und geschäftsbezogenen
Einschränkungen,
die von einer Implementierung zu der anderen variieren. Hiermit
wird ferner festgestellt, dass ein derartiger Entwicklungsaufwand komplex
und zeitaufwändig
sein kann, wobei er aber gleichzeitig für einen Fachmann auf dem Gebiet,
der von der vorliegenden Offenbarung profitiert, ein routinemäßiges Unterfangen
darstellt.
-
In
folgendem Bezug auf die Zeichnungen und im Besondern auf die Abbildung
aus 1 ist eine Vorrichtung 100 zum Erzeugen
dreidimensionaler Grafikszenen und zum Erleichtern der Navigation in
derartigen 3D-Szenen dargestellt. Die Vorrichtung 100 umfasst
einen Prozessor 110, der dreidimensionale Grafikszenen
auf der Basis einer Reihe von Befehlen von einem Computergrafikanwendungsprogramm,
die in einer Speichervorrichtung 120, wie etwa auf einer
Disk, CD-ROM, Festplatte,
etc. gespeichert ist, wiedergibt bzw. darstellt. Die spezielle Prozedur,
durch welche der Prozessor 110 diese dreidimensionalen
Grafikszenen wiedergibt, ist dem Durchschnittsfachmann auf dem Gebiet
allgemein bekannt. Folglich werden die Einzelheiten dieser Vorgehensweise
hierin nicht näher
beschrieben, um die Erfindung nicht unnötig zu verschleiern.
-
Nachdem
eine bestimmte dreidimensionale Grafikszene wiedergegeben bzw. gerendert
worden ist, zeigt der Prozessor 110 die 3D-Szene zur visuellen
Darstellung an einen Benutzer auf einer Anzeige 130. Die
Vorrichtung 100 weist ferner eine Benutzereingabevorrichtung 140 auf,
die es dem Benutzer ermöglicht,
durch die dreidimensionale Grafikszene zu navigieren. In dem veranschaulichten
Ausführungsbeispiel
handelt es sich bei der Benutzereingabevorrichtung 140 um eine Computermaus.
Hiermit wird festgestellt, dass die Benutzereingabevorrichtung 140 auch
als verschiedene andersartige Eingabevorrichtungen ausgeführt werden
kann, wie zum Beispiel als Trackball, Touchpad, Grafiktablett, Tastatur, Touchscreen,
Joystick, etc., ohne dabei vom Umfang der vorliegenden Erfindung
abzuweichen. Hiermit wird festgestellt, dass die Benutzereingabevorrichtung 140 auch
als eine Kombination aus einigen der vorstehend genannten Eingabevorrichtungen
ausgeführt
werden kann.
-
In
folgendem Bezug auf die Abbildung aus 2A wird
eine generische dreidimensionale Szene 200, die durch den
Prozessor 110 gerendert wird, auf der Anzeige 130 dargestellt.
Die 3D-Szene 200 weist
eine Mehrzahl von 3D-Objekten 210–240 auf, die unzählige Objekte
darstellen können.
Zum Beispiel kann die 3D-Szene 200 ein Zimmer in einem Haus
darstellen, und die 3D-Objekte 210 bis 240 können verschiedene
Möbelstücke in dem
Zimmer darstellen. Dieses spezielle Beispiel dient natürlich ausschließlich Veranschaulichungszwecken,
wobei die hierin präsentierte
3D-Szene 200 sowie die 3D-Objekte 210 bis 240 praktisch
für alle
möglichen
Elemente stehen können.
Hiermit wird ferner festgestellt, dass die 3D-Szene 200 jede
beliebige Anzahl von Objekten umfassen kann und nicht zwingend auf die
abgebildeten vier Objekte 210 bis 240 beschränkt ist.
-
Die
3D-Szene 200 erzeugt eine realistische Perspektive eines
3D-Raums (zum Beispiel dem Zimmer eines Hauses) und vermittelt dem
Benutzer der Eindruck, dass er bzw. sie sich tatsächlich in
dem 3D-Raum befindet, obwohl dies in der Realität nicht der Fall ist. Im Wesentlichen
würde der
Benutzer durch seine Augen den 3D-Raum 200 sehen, wenn eine
bestimmte Betrachtungsposition in dem 3D-Raum angenommen wird. Nachstehend
wird erläutert
und verständlich,
was genau mit der „Betrachtungsposition" des Benutzers gemeint
ist und wie diese im Verhältnis
zu der 3D-Szene 200 steht.
-
In
Bezug auf die Abbildung aus 3A ist die „physikalische" Position des Benutzers
in dem 3D-Raum durch einen Punkt 310 mit den Koordinaten
(x1, y1, z1) dargestellt.
-
Diese
Koordinaten zeigen speziell an, wo sich der Benutzer innerhalb des
3D-Raums befindet. Selbst wenn der Benutzer ruhig an dem Punkt 310 steht,
kann er bzw. sie weiterhin eine Mehrzahl unterschiedlicher Betrachtungspositionen
des 3D-Raums annehmen, indem er seinen bzw. sie ihren Körper um 360
Grad dreht, wie dies in der Abbildung aus 3B dargestellt
ist, oder indem er seinen bzw. sie ihren Kopf horizontal dreht (obgleich
die Kopfbewegung auf ungefähr
180 Grad beschränkt
ist). Der Benutzer kann ferner verschiedene Betrachtungspositionen
annehmen, indem er seinen bzw. sie ihren Kopf vertikal von ungefähr –90 Grad
bis +90 Grad im Verhältnis
zur Waagerechten (d.h. null Grad) dreht, wie dies in der Abbildung
aus 3C dargestellt ist. Folglich bilden all diese
Komponenten aus den Abbildungen der 3A–3C (d.h.
die Punkte x1, y1, z1, der horizontale Betrachtungswinkel und
der vertikale Betrachtungswinkel) gemeinsam einen Positionsvektor,
der die Betrachtungsposition des Benutzers in dem 3D-Raum darstellt.
Somit bestimmt dieser Betrachtungspositionsvektor, was tatsächlich in der
3D-Szene 200 beobachtet wird.
-
In
erneutem Bezug auf die Abbildung aus 2A kann
der Benutzer seine Betrachtungsposition verändern, um verschiedene unterschiedliche
visuelle Perspektiven des 3D-Raums zu erhalten, indem er über die
Benutzereingabevorrichtung 140 navigiert. Erreicht werden
kann dies durch traditionelle Navigationstechniken, die im Fach
allgemein bekannt sind. Von diesen traditionellen Navigationstechniken
sieht die funktionale (oder Aufgaben orientierte) Navigation für den Benutzer
Navigationshilfen vor, welche den Navigationsvorgang erleichtern.
Wenn der Benutzer zum Beispiel das 3D-Objekt 230 näher ansehen
möchte,
so positioniert der Benutzer einen Cursor 250 (z.B. einen
Mauszeiger) auf bzw. über
dem Objekt 230 (über
die Benutzereingabevorrichtung 140) und wählt es beispielsweise durch
Drücken
der linken Maustaste aus. Diese Auswahl bewirkt dann, dass der Prozessor 110 die
Betrachtungsposition des Benutzers des 3D-Raums verändert, so
dass das Objekt 230 in der Mitte der Anzeige 130 erscheint,
wie dies in der 3D-Szene 260 aus 2B dargestellt
ist. Im Wesentlichen bewirkt eine derartige funktionale Navigation,
dass der Prozessor 110 automatisch den Benutzer an einen
geeigneten Betrachtungsabstand von dem Objekt 230 navigiert.
-
Nach
der Betrachtung des Objekts 230 kann der Benutzer wünschen,
auch die anderen Objekte (d.h. die Objekte 210, 220, 240)
des 3D-Raums näher
zu betrachten. Der Zugriff auf diese anderen Objekte 210, 220, 240 über traditionelle
Navigationstechniken kann jedoch für den Benutzer ein schwieriges
Unterfangen darstellen, während
dieser die 3D-Szene 260 aus 2B betrachtet.
Die Objekte 210, 220 sind in der 3D-Szene 260 nicht
mehr sichtbar und somit stehen sie für die Auswahl durch den Benutzer
nicht direkt zur Verfügung.
Das heißt, obgleich
die Objekte 210, 220 weiterhin in dem 3D-Raum vorhanden sind,
erscheinen sie hinter der aktuellen Betrachtungsperson des Benutzers.
Wenn der Benutzer folglich diese Objekte 210, 220 durch herkömmliche
Navigationsmethoden betrachten möchte,
so muss der Benutzer auf unpraktische Weise durch den 3D-Raum navigieren,
um die Objekte 210, 220 wieder in das Sichtfeld
zu bringen. Und wenn die Objekte 210, 220 wieder
in das Sichtfeld gelangen, verschwinden höchstwahrscheinlich die Objekte 230, 240,
was die folgende Betrachtung der Objekte 230, 240 ebenfalls
schwierig gestaltet.
-
Um
dieses Problem zu lösen
setzt die vorliegende Erfindung eine „opportunistische" Steuerung 270 ein,
die es dem Benutzer ermöglicht,
zu einer 3D-Szene zurückzukehren,
die der Benutzer vorher betrachtet hat (z.B. die 3D-Szene 200 aus 2A). In
einem Ausführungsbeispiel
erscheint die Steuerung 270 auf der Anzeige 130 direkt
unterhalb des Cursors 250 zum Zeitpunkt, wenn die aktuelle 3D-Szene
erscheint, unabhängig
davon, wo sich der Cursor 250 auf der Anzeige 130 befindet.
Die Steuerung 270 weist eine verhältnismäßig geringe Größe auf,
ist aber ausreichend groß,
um unter dem Cursor 250 sichtbar zu sein. Die Steuerung 270 behindert somit
das Sichtfeld in der 3D-Szene 260 kaum. Im Gegensatz zu
der Positionierung der Steuerung 270 direkt unterhalb des
Cursors 250 kann sie alternativ sehr nah an dem Cursor 250 erscheinen.
-
Wenn
die Steuerung 270 durch den Benutzer über die Benutzereingabevorrichtung 140 ausgewählt wird,
bewirkt sie, dass der Prozessor 110 automatisch die vorher
angezeigte 3D-Szene
(d.h. die 3D-Szene 200 aus 2A) neu
erzeugt. Eine derartige Auswahl durch den Benutzer kann zum Beispiel durch
einfaches Drücken
der linken Maustaste der Benutzereingabevorrichtung 140 erreicht
werden. Durch die Auswahl der Steuerung 270 kehrt der Benutzer
somit mit einem einfachen Schritt (z.B. Drücken einer Maustaste) zurück an die
Betrachtungsposition, die der 3D-Szene 200 aus 2A entspricht.
Diese einfache Handlung durch den Benutzer verringert die Wahrscheinlichkeit,
dass der Benutzer die Konzentration hinsichtlich der 3D-Szene verliert,
was höchstwahrscheinlich
passieren würde, wenn
der Benutzer unter Verwendung herkömmlicher Navigationsverfahren
manuell an diese Betrachtungsposition navigieren müsste. Ferner
ist die benötigte
Zeit, um diese vorher betrachtete Position abzurufen, in Verbindung
mit der Steuerung 270 deutlich kürzer als bei den herkömmlichen
Navigationsmethoden.
-
In
einem Ausführungsbeispiel
ist die Lebensdauer bzw. die Verweildauer der Steuerung 270 (d.h. deren
Erscheinen auf der Anzeige 130) verhältnismäßig kurz und dauert nur an,
bis eine andere vorbestimmte Handlung von dem Benutzer ausgeführt wird.
Die Steuerung 270 kann zum Beispiel verschwinden, wenn
ein anderer Navigationsschritt ausgeführt wird oder wenn der Cursor 250 durch
die Benutzereingabevorrichtung 140 um ein vorbestimmtes Stück von der
Steuerung 270 entfernt wird. In dem veranschaulichten Ausführungsbeispiel
weist die Steuerung 270 ausschließlich die Bedeutung im Zusammenhang
mit einer durch den Benutzer ausgeführten zeitlichen Folge auf.
Das heißt,
wenn die Steuerung 270 in der Szene 260 aus 2B erscheint,
wäre es
ihr Zweck, zu der vorherigen Betrachtungsposition zurückzukehren,
die der 3D-Szene 200 aus 2A entspricht.
Nach der Rückkehr
an die 3D-Szene 200 aus 2A kann
eine andere Steuerung unter dem Cursor 250 in der Szene 200 erscheinen,
welche den Zweck aufweisen würde,
zu der 3D-Szene 260 aus 2B zurückzukehren.
-
Wenn
der Benutzer das Objekt 240 an Stelle der Steuerung 270 ausgewählt hat
(nach der Auswahl des Objekts 230), erzeugt der Prozessor 110 eine
neue 3D-Szene 280, wobei das Objekt 240 in der
Anzeige 130 zentriert ist (wie dies in 2C dargestellt
ist). Der Prozessor 110 würde ferner eine weitere Steuerung 290 erzeugen,
die, wenn sie von dem Benutzer ausgewählt wird, bewirkt, dass der
Prozessor 110 die 3D-Szene 260 aus 2B erneut
erzeugt. Der Benutzer kann, wenn dies gewünscht wird, auch zu der Betrachtungsposition
zurückkehren,
die der 3D-Szene 200 aus 2A entspricht,
indem die Steuerung 270 ausgewählt wird (sobald diese in der
neu erzeugten 3D-Szene 260 aus 2B erscheint).
-
Nachdem
in einem alternativen Ausführungsbeispiel
der Prozessor 110 die 3D-Szene 260 aus 2B neu
erzeugt hat, könnte
dem Benutzer auch die Option zur Verfügung stehen, an die Betrachtungsposition
zurückzukehren,
die der 3D-Szene 280 aus 2C entspricht.
Diese Option wäre
zusätzlich
zu der Option der Rückkehr
an die Betrachtungsposition der 3D-Szene 200 aus 2A gegeben
(wie dies bereits vorstehend im Text beschrieben worden ist). Das
heißt,
die Steuerung 270 aus 2B würde einen
doppelten Zweck erfüllen.
Der Benutzer könnte
seinen Wunsch anzeigen, die 3D-Szene 200 aus 2A neu
zu erzeugen, indem eine erste Benutzereingabe an der Benutzereingabevorrichtung 140 vorgenommen
wird (wie etwa das Drücken
der linken Maustaste), oder den Wunsch zum neuen Erzeugen der 3D-Szene 280 aus 2C durch
Ausführen
einer zweiten Benutzereingabe (wie etwa das Drücken einer rechten Maustaste)
an der Benutzereingabevorrichtung 140, zum Beispiel.
-
Durch
den Einsatz der Steuerung 270, 290 ist der Benutzer
in der Lage schnell frühere
Betrachtungspositionen zur folgenden Betrachtung und/oder Manipulation
der 3D-Objekte 210 bis 240 in dem 3D-Raum anzunehmen.
Die Steuerung 270, 290 wird bequem unter dem Cursor 250 platziert,
so dass keine Bewegung des Cursors 250 erforderlich ist.
Der Benutzer muss lediglich eine Taste drücken, um eine der vorherigen
Positionen anzunehmen und spart dadurch beträchtlich an Zeit bei der Navigation
in dem 3D-Raum im Vergleich zu traditionellen Navigationsmethoden.
-
In
einem alternativen Ausführungsbeispiel kann
der Prozessor 110 an Stelle des Anzeigens einer einzelnen
Steuerung 270, 290 so konfiguriert werden, dass
eine Mehrzahl von Steuerungen gleichzeitig angezeigt wird. Zum Beispiel
können
in der 3D-Szene 200, 260, 280 eine vorbestimmte
Anzahl von kleinen Schaltflächen
in einer Zeile oder ein Rechteck mit neun Steuerungen erscheinen.
Folglich könnte
der Benutzer die vorher angenommene Betrachtungsposition auswählen, indem
er direkt auf die Steuerschaltfläche
drückt,
die der gewünschten
Betrachtungsposition entspricht. Dies würde es dem Benutzer ermöglichen,
durch die 3D-Szenen zu „springen" oder das Anzeigen
von 3D-Szenen zu verhindern, die zwischen der aktuell angezeigten 3D-Szene
und der gewünschten
3D-Szene erscheinen. Wenn die 3D-Szene 280 aus 23C zum Beispiel aktuell durch den Benutzer
betrachtet wird, und wenn der Benutzer zu der 3D-Szene 200 aus 2A zurückkehren
möchte,
so würde
der Benutzer die Steuerung 270 auswählen (der beiden Steuerungen 270, 290,
die gleichzeitig angezeigt werden), um zu der 3D-Szene 200 aus 2A zurückzukehren.
In vorteilhafter Weise würde
der Benutzer nicht dazwischen zu der 3D-Szene 260 aus 2B zurückkehren
müssen,
um zu der gewünschten
Szene 200 aus 2A zu gelangen.
-
Da
in dem vorliegenden Ausführungsbeispiel eine
Mehrzahl von Steuerungen gleichzeitig angezeigt wird, können die
Steuerungen jeweils bezeichnet sein, wodurch die entsprechende Betrachtungsposition
angezeigt wird, welche die Steuerung darstellt. Wenn es sich bei
dem Objekt 230 zum Beispiel um einen Tisch und bei dem
Objekt 240 um einen Stuhl handelt, so könnten die Steuerungen (die
diesen Objekten 230, 240 entsprechen) jeweils
entsprechend mit „Tisch" und „Stuhl" bezeichnet werden,
um den Benutzer daran zu erinnern. Um ferner die Größe der Steuerungen
klein zu halten (d.h. um eine zu große Sichtbehinderung in der
3D-Szene 200, 260, 280 zu verhindern),
könnten
die Bezeichnungen nur vorübergehend
erscheinen, indem der Cursor 250 über einer der Steuerungen platziert
wird (d.h. unter Verwendung einer „Wischtechnik").
-
Bei
diesem Ausführungsbeispiel
mit „mehreren" Steuerungen sind
die Steuerungen dicht aneinander platziert, so dass die Bewegung
des Cursors 250 zwischen den Steuerungen minimal ist. Somit
ist die nahezu zu vernachlässigende
Größe de Bewegung
des Cursors 250 in dem vorliegenden Ausführungsbeispiel
den Aufwand durchaus lohnt, indem es nicht erforderlich ist, dass
der Benutzer durch intermediäre
3D-Szenen springt, wie dies in dem Ausführungsbeispiel mit nur „einer" Steuerung der Fall
ist.
-
In
folgendem Bezug auf die Abbildungen der 4A und
B zeigen diese ein Flussdiagramm eines Verfahrens 400,
das durch die Vorrichtung 100 aus 1 ausgeführt wird,
um die Navigation in einer 3D-Szene zu erleichtern. Das Verfahren 400 beginnt mit
dem Schritt 405, in dem der Prozessor 110, auf dem
eine Computergrafikanwendung ausgeführt wird, zuerst die 3D-Grafikszene 200 aus 2A zur visuellen
Darstellung für
den Benutzer über
die Anzeige 130 erzeugt. Die 3D-Szene 200 entspricht
einer bestimmten Betrachtungsposition in dem 3D-Raum, von dem der Benutzer einen virtuellen
Bestandteil darstellt. Der Benutzer kann seine Betrachtungsposition
in dem 3D-Raum verändern
(d.h. navigieren), um verschiedene visuelle Perspektiven der Objekte 210 bis 240 zu
erhalten, die in dem 3D-Raum vorhanden sind. Die Art und Weise,
wie der Benutzer seine visuelle Position in dem 3D-Raum verändert, kann
durch traditionelle Navigationsverfahren erfolgen, wie dies bereits
vorstehend im Text beschrieben worden ist.
-
Der
Prozessor 110 initialisiert eine Positionsvariable „x" in dem Schritt 410,
um die erste visuelle Position anzuzeigen, welche der Benutzer in
dem 3D-Raum annimmt. In dem bereitgestellten Beispiel würde die
3D-Szene 200 aus 2A die
erste visuelle Position des Benutzers in dem 3D-Raum darstellen.
Wenn sich de r. Benutzer von einer visuellen Position an eine andere
bewegt, erhöht
sich die Positionsvariable x, um die neue visuelle Position des
Benutzers wiederzugeben. In diesem Beispiel wäre somit die 3D-Szene 260 aus 2B die
zweite von dem Benutzer angenommene visuelle Position, wobei die
3D-Szene 280 aus 2C die
dritte Position wäre,
und so weiter. Nach der Initialisierung dieser Positionsvariable
x speichert der Prozessor 110 im den Schritt 415 einen
Positionsvektor (wie dies bereits vorstehend im Text beschrieben
worden ist), wobei dieser die Ausrichtung des Benutzers beschreibt (d.h.
die Betrachtungsposition des Benutzers) in dem 3D-Raum, die jeder
Position x entspricht, die der Benutzer annimmt. Durch Speichern
dieses Positionsvektors ist der Prozessor 110 somit in
der Lage, eine bestimmte 3D-Szene 200, 260, 280 wieder
zu erzeugen, wenn dies in der Folge durch den Benutzer wieder gewünscht wird.
-
Nach
dem Speichern des der jeweiligen Betrachtungsposition (d.h. der
Position x) entsprechenden Positionsvektors wartet der Prozessor 110 auf Eingabe
von dem Benutzer über
die Benutzereingabevorrichtung 140 in dem Schritt 420.
Wenn eine Eingabe empfangen wird, bestimmt der Prozessor 110, ob
der Benutzer wünscht,
sich in dem 3D-Raum neu zu positionieren, Schritt 425.
Dieser Wunsch zur neuen Positionierung kann dadurch bestimmt werden, dass
der Benutzer ein bestimmtes Objekt in dem 3D-Raum auswählt oder
durch eine andere vorbestimmte Handlung, die der Benutzer ausführt. Wenn der
Prozessor 110 bestimmt, dass der Benutzer keine neue Position
in dem 3D-Raum wünscht,
so wird in dem Schritt 430 bestimmt, ob der Benutzer die 3D-Anwendung
verlassen möchte.
Wenn der Benutzer den Wunsch angezeigt hat, die 3D-Anwendung zu
verlassen, so endet das Verfahren 400 in dem Schritt 435.
Wenn die Benutzereingabe jedoch nicht angezeigt hat, dass der Wunsch
zum beenden der 3D-Anwendung existiert, so fährt das Verfahren 400 mit
dem Schritt 440 fort, in dem der Prozessor 110 die gewünschte Aufgabe
ausführt,
die durch den Benutzer eingegeben worden ist, und das Verfahren
springt zurück
zu dem Schritt 420, wo auf weitere Eingaben durch den Benutzer
gewartet wird.
-
Wenn
in dem Schritt 425 bestimmt worden ist, dass der Benutzer
eine neue Position in dem 3D-Raum wünscht, fährt das Verfahren 400 mit
dem Schritt 450 fort, in dem der Prozessor 110 die
Positionsvariable x um eins erhöht,
um die nächste
visuelle Position anzuzeigen, die der Benutzer in dem 3D-Raum einnimmt.
Nach der Erhöhung
der Positionsvariable x verändert
der Benutzer 110 die visuelle Ausrichtung des Benutzers
in dem 3D-Raum durch das
Erzeugen einer neuen 3D-Szene, die der visuellen Position x entspricht,
welche durch den Benutzer in dem Schritt 455 eingenommen
worden ist. Der Prozessor 110 speichert danach in dem Schritt 460 den
Positionsvektor, der der neuen Position x des Benutzers in dem 3D-Raum
entspricht.
-
Nachdem
der Benutzer an der neuen Position x platziert worden ist und der
entsprechende Positionsvektor gespeichert worden ist, zeigt der
Prozessor 110 in dem Schritt 465 die Steuerung 270, 290 an,
welche die visuelle Position anzeigt, die unmittelbar auf die aktuelle
Position x (d.h. die Position x – 1) des Benutzers folgt. In
einem alternativen Ausführungsbeispiel
kann die Steuerung 270, 290 die Position x – 1 und
x + 1 (d.h. die früheren
visuellen Positionen, die unmittelbar vor der aktuellen Position
x und folgend auf die aktuelle Position x gegeben sind) darstellen.
Die Position x + 1 wäre
nur anwendbar, wenn der Benutzer vorher die Steuerung 270, 290 ausgewählt hat.
-
In
dem Schritt 470 wird bestimmt, ob der Benutzer die Steuerung 270, 290 über die
Benutzereingabevorrichtung 140 ausgewählt hat. Wie dies bereits vorstehend
im Text beschrieben worden ist, wird die Steuerung 270, 290 unter
dem Cursor 250 platziert, und der Benutzer kann die Steuerung 270, 290 auswählen, indem
einfach zum Beispiel die linke Maustaste der Benutzereingabevorrichtung 140 gedrückt wird.
Wenn die Steuerung 270, 290 eine doppelte Funktion
erfüllt,
indem die Positionen x – 1
und x + 1 dargestellt werden, kann die rechte Maustaste verwendet
werden, um die Position x + 1 auszuwählen, und die linke Maustaste
würde für die Realisierung
der Position x – 1
reserviert sein.
-
Wenn
der Benutzer in dem Schritt 470 die Steuerung 270, 290 nicht
ausgewählt
hat, springt das Verfahren zu dem Schritt 420 zurück, in dem
der Prozessor 110 auf weitere Eingabe durch den Benutzer wartet.
Wenn der Benutzer in dem Schritt 470 hingegen die Steuerung 270, 290 ausgewählt hat,
setzt der Prozessor 110 die Positionsvariable x entweder
herunter oder inkrementiert diese, abhängig davon, ob die entsprechende
linke oder rechte Maustaste durch den Benutzer betätigt worden
ist. Nach dem Herabsetzen oder Inkrementieren der aktuellen Positionsvariable
x springt das Verfahren 400 zu dem Schritt 455 zurück, in dem
der Prozessor 110 den Benutzer wieder zurück an die
gewünschte
visuelle Position platziert und die entsprechende 3D-Szene 200, 260, 280 erzeugt.
-
Die
opportunistische Steuerung muss nicht unbedingt eingesetzt werden,
um den Benutzer an eine vorherige Betrachtungsposition in der 3D-Szene zurückzuführen, wie
dies vorstehend im Text bereits beschrieben worden ist, wobei auch
eine alternative Konfiguration zur Ausführung anderer Funktionen möglich ist.
Wenn ein Benutzer zum Beispiel von einem ersten Objekt zu einem
zweiten Objekt in einer bestimmten Szene navigiert, kann eine Steuerung
erscheinen, die die gleiche Bedeutung hat, um das Erscheinungsbild
es zweiten Objekts zu verändern. Eine
derartige Veränderung
des Erscheinungsbilds kann zum Beispiel eine „Schattierung" des zweiten Objekts
darstellen, um anzuzeigen, dass das Objekt durch den Benutzer in
der Szene betrachtet wird. Als weiteres Beispiel kann es sich bei
der Auswahl der Steuerung auch darum handeln, dass es dem Benutzer
ermöglicht
wird, durch das zweite Objekt zu sehen (d.h. „Röntgenblick"), so dass der Benutzer andere Objekte
in der Szene betrachten kann, die durch das zweite Objekt verdeckt
werden. Die Auswahl dieser Steuerung kann somit bewirken, dass das
zweite Objekt aus einem „opaken" (Sichtbehinderung)
Zustand in einen „transparenten" (ohne Sichtbehinderung)
Zustand wechselt.
-
Die
vorliegende Erfindung wurde vorstehend in Bezug auf dreidimensionale
Computeranwendungen beschrieben, wobei hiermit festgestellt wird, dass
auch alternative Arten von Computeranwendungen, wie zum Beispiel
zweidimensionale Grafikanwendungen oder textbasierte Anwendungen,
in ähnlicher
Weise von der opportunistischen Steuerungstechnik profitieren können, ohne
dabei vom Gedanken oder Umfang der vorliegenden Erfindung abzuweichen.
-
Die
vorstehend offenbarten speziellen Ausführungsbeispiele dienen lediglich
Veranschaulichungszwecken, wobei die Erfindung auch modifiziert
und anders, jedoch auf ähnliche
Weise ausgeführt
werden kann, wie dies für
den Fachmann auf dem Gebiet ersichtlich ist, der von den Lehren
hierin profitiert. Ferner sind abweichend von der Beschreibung in
den folgenden Ansprüchen
keinerlei Einschränkungen
hinsichtlich der Einzelheiten des hierin dargestellten Aufbaus oder
Designs beabsichtigt. Somit ist es offensichtlich, dass die vorstehend
offenbarten besonderen Ausführungsbeispiele
abgeändert
oder modifiziert werden können,
und wobei all diese Abänderungen
dem Umfang der Erfindung entsprechen. Somit entspricht der hierin
ersuchte Schutzumfang den Ausführungen
in den folgenden Ansprüchen.