Die Erfindung betrifft ein Verfahren und ein System zur Ob
jektsuche zur Verwendung bei mehrdimensionaler, insbesonde
re dreidimensionaler, in einem Computer ausgeführter Bild
verarbeitung, und spezieller betrifft sie ein Verfahren zum
Lesen von eine Versuchsbedingung erfüllenden Daten aus mehr
dimensionalen, insbesondere dreidimensionalen, in einer
Speichereinheit gespeicherten Objektdaten sowie ein System
unter Verwendung des Verfahrens.
Es wurden verschiedene Techniken vorgeschlagen, um eine gro
ße Datenmenge in einem begrenzten Speicher zu verarbeiten.
Genauer gesagt, existieren auf dem Gebiet der Computergra
phik (CG) Anwendungen wie Fahrsimulationen, die es erfor
dern, häufig den Hintergrund zu ändern. Derartige Anwendun
gen speichern dreidimensionale Koordinaten aller Objekte,
wie die von bei der Simulation verwendeten Gebäuden oder
Straßen in einer großvolumigen Hilfsspeichereinheit (nach
folgend als Speichereinheit bezeichnet), wie einer externen
Magnetplatteneinheit.
In den meisten Fällen ist die Datenmenge für diese Objekte
zu groß, um im Hauptspeicher zu liegen, in dem die Simula
tion ausgeführt wird. Um dieses Problem zu überwinden, ver
wendet ein Computersystem einen virtuellen Speicher, in dem
ein großes Programm oder eine große Menge an Daten in als
seitenunterteilte feste Speichereinheiten unterteilt ist.
Diese Seiten werden nach Anweisung durch das Betriebssystem
in den Speicher gebracht (Seite-herein) oder aus ihm heraus
genommen (Seite-heraus).
Bei Computergraphiken wird eine als Abschneiden bezeichnete
Verarbeitung ausgeführt, um Objekte im Gesichtsfeld zu hal
ten. Wenn z. B. eine entfernte Ansicht einer Straße auf dem
Schirm angezeigt wird, werden viele Objekte, wie Gebäude,
dargestellt. Wenn die Straße aufgezoomt wird, verringert
sich die Anzahl der auf dem Schirm dargestellten Objekte.
Der Gesichtsfeldraum wird als Betrachtungsvolumen bezeich
net. Anders gesagt, unterteilt ein Abschneiden die Objekte
auf dem Schirm in zwei Teile, nämlich sichtbare und unsicht
bare Teile, abhängig davon, ob sie sich innerhalb des Be
trachtungsvolumens befinden oder nicht, und dann entfernt es
die unsichtbaren Teile. Diese Verarbeitung zeigt ein dem
Betrachtungspunkt entsprechendes gleichmäßiges, natürliches
Bild auf dem Schirm.
Fig. 1 zeigt die Beziehung zwischen dem Betrachtungsvolumen
und Objekten. Wie es in der Figur dargestellt ist, ist ein
Betrachtungsvolumen 2 durch Faktoren, wie die Position des
Betrachtungspunkts O, einen Blickrichtungsvektor V, die Po
sition einer vorderen Abschneideebene 4, die Position einer
hinteren Abschneideebene 6, einen horizontalen Gesichtsfeld
winkel und einen vertikalen Gesichtsfeldwinkel, bestimmt.
Die Bestimmung des Betrachtungsvolumens ist der Auswahl ei
nes Behältnisses ähnlich, in dem sich die Objekte befinden.
In Fig. 1 ist eine perspektivische Projektion dazu verwen
det, ein dreidimensionales Objekt auf einem zweidimensiona
len Schirm abzubilden. Im Ergebnis ist das Betrachtungsvolu
men 2 eine stumpfe Pyramide mit dem Betrachtungspunkt O als
Spitze.
Wenn die im Betrachtungsvolumen 2 enthaltenen Objekte ange
zeigt werden, wird dieses Betrachtungsvolumen 2 aufgebaut,
und gleichzeitig werden Objektdaten gelesen. Da die Menge
dieser Daten groß ist, werden so viele Objektdaten, wie sie
im Hauptspeicher aufgenommen werden können, durch das Merk
mal virtueller Speicherung geladen, und dann werden die Ko
ordinaten des geladenen Objekts mittels einer Betrachtungs
transformation transformiert. Fig. 1 zeigt zwei Objekte, 8
und 10, nach der Koordinatentransformation. Dann werden die
se Objektdaten einer Seite-heraus-Operation unterzogen, und
es werden die nächsten Daten einer Seite-herein-Operation
unterzogen, für die die Koordinatentransformation ausgeführt
wird.
Als nächstes wird das Abschneiden ausgeführt. In Fig. 1 wird
das Objekt 8, das nicht im Betrachtungsvolumen 2 enthalten
ist, entfernt, während das im Betrachtungsvolumen 2 enthal
tene Objekt 10 verbleibt. Nachdem das Abschneiden für alle
Objekte auf diese Weise ausgeführt wurde, werden die Objek
te, die ganz oder teilweise im Betrachtungsvolumen 2 enthal
ten sind, erneut durch das Merkmal virtueller Speicherung
zur "Rasterung" oder Bilderzeugung in den Hauptspeicher ge
laden. Die Rasterung verleiht den Oberflächen der Objekte
Texturen (Muster) oder Farben. So wird die erforderliche
Verarbeitung nur an erforderlichen Objektdaten ausgeführt,
wie sie aus einer großen Datenmenge ausgewählt wurden, um
natürliche Bilder zu erzeugen.
Jedoch unterteilt das Merkmal virtueller Speicherung, das
Daten mechanisch in Seiten vorbestimmter Größe unterteilt,
manchmal Daten eines Objekts auf zwei Seiten, wie in Fig. 2
dargestellt. Die Verarbeitung dieser Objektdaten benötigt
zwei Seiten, was bedeutet, daß dann, wenn die Objektdaten
klein sind, jedoch die Seite groß ist, eine relativ große
Datenmenge einer Seite-herein- und dann einer Seite-heraus-Operation
unterzogen werden muß. Tatsächlich ist das System
für Anwendungen, wie Fahrsimulationen, bei denen Daten häu
fig gewechselt werden müssen, unpraktisch.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und
ein System zur Objektsuche zu schaffen, die durch Verringern
der Anzahl von Lesevorgängen die Zeit verringern, die dazu
erforderlich ist, Daten eines gewünschten mehrdimensionalen,
insbesondere dreidimensionalen Objekts aus einer Speicher
einheit zu lesen. Es ist eine andere Aufgabe der Erfindung,
ein Verfahren und ein System zur Objektsuche zu schaffen,
die eine neue Abschneidetechnik dazu verwenden, wirkungsvoll
nach einem gewünschten Objekt zu suchen, um dadurch die Zeit
zu verringern, bevor dreidimensionale Daten gelesen werden.
Diese Aufgabe ist hinsichtlich des Verfahrens durch die Leh
re des beigefügten Anspruchs 1 und hinsichtlich des Systems
durch die Lehre des beigefügten Anspruchs 9 gelöst.
Wenn beim Verfahren gemäß Anspruch 1 eine Suchbedingung in
Form von dreidimensionalen Koordinaten eingegeben ist, die
einen Bereich im dreidimensionalen Raum spezifizieren, wer
den Daten zu einem dreidimensionalen Objekt, das die Bedin
gung erfüllt, aus der Speichereinheit so ausgelesen, daß
jeweils eine Datei für jedes Objekt gelesen wird. Dies ver
ringert die Anzahl von Datenaustauschoperationen (Seite
herein-, Seite-heraus-Operationen) im Vergleich zu virtuel
ler Speicherung, bei der Daten in Seiten fester Größe unter
teilt werden, deutlich. Außerdem sorgt das erfindungsgemäße
Verfahren, das nicht im selben Ausmaß wie dies herkömmliche
Merkmale virtueller Speicherung tun, vom OS (Betriebssystem)
abhängt, für Flexibilität beim Konzipieren der Realisierung.
Beim Verfahren gemäß Anspruch 4 betrifft "mehrdimensionaler
Baum" einen logischen Baum, der die Maximalwerte und die Mi
nimalwerte der dreidimensionalen Koordinaten von Objekten
zur Verwendung bei der Suche nach einem gewünschten Objekt
auf Grundlage der Beziehung zwischen den Objekten enthält.
Ein 6-d(6-dimensionaler)-Baum ist ein Beispiel eines mehr
dimensionalen Baums.
Diese bevorzugte Form löst auch Probleme in Zusammenhang mit
dem herkömmlichen Merkmal virtueller Speicherung, und sie
verbessert darüber hinaus den Wirkungsgrad bei der Suche
mittels des mehrdimensionalen Baums, wodurch die Verarbei
tung beschleunigt wird, die vor dem Lesen von Daten ausge
führt werden muß.
In einer Situation, in der sich die Suchbedingung dauernd
ändert, werden gemäß einer anderen Erscheinungsform der Er
findung nur Daten gelesen, die in Zusammenhang mit einem Un
terschied zwischen dem vorigen Suchergebnis und dem aktuel
len Suchergebnis stehen. In vielen Fällen werden die Anzei
gedaten im dreidimensionalen Raum, wie eine Fahrsimulation,
dadurch erzeugt, daß dem Betrachtungspunkt des Spielers
nachgefahren wird. Da sich der Betrachtungspunkt dauernd be
wegt, werden viele Anzeigedaten für eine Szene auch für die
nächste Szene verwendet. Dies bedeutet, daß die Verarbei
tungszeit stark verringert wird, wenn nur der Unterschied
zwischen den zwei aufeinanderfolgenden Szenen gelesen wird.
Beim erfindungsgemäßen System nimmt die Betrachtungsvolumen
daten-Annahmeeinrichtung diejenigen Daten an, die das Be
trachtungsvolumen identifizieren, wie einen durch den Benut
zer spezifizierten visuellen Punkt. Die Raumdurchsuchein
richtung verwendet einen mehrdimensionalen Baum zum Suchen
nach Objekten im spezifizierten Betrachtungsvolumen. Die
Leseeinrichtung liest die dreidimensionalen Daten zu den
Objekten entsprechend zu dem Suchergebnis, jeweils entspre
chend einer Datei aus der Speichereinheit. Wie das erfin
dungsgemäße Verfahren, so löst auch das System mit dieser
Konfiguration die Probleme in Zusammenhang mit dem herkömm
lichen Standardmerkmal virtueller Speicherung.
Das System kann auch so konfiguriert sein, daß die Raum
durchsucheinrichtung nur den Unterschied zwischen dem vori
gen Suchergebnis und dem aktuellen Suchergebnis liest und
diesen Unterschied an die Leseeinrichtung liefert, damit
diese nur die Daten zum Unterschied liest. Diese Konfigura
tion beschleunigt die Verarbeitung weiter.
Die Erfindung wird im folgenden anhand von durch Figuren
veranschaulichten Ausführungsbeispielen näher beschrieben.
Fig. 1 ist ein Diagramm, das Beziehungen zwischen einem Be
trachtungsvolumen und Objekten zeigt.
Fig. 2 ist ein Diagramm, das Objektdaten zeigt, die sich bei
virtueller Speicherung über zwei Seiten erstrecken.
Fig. 3 ist ein Diagramm, das die Konfiguration eines Raum
durchsuchsystems bei einem erfindungsgemäßen Ausführungsbei
spiel zeigt.
Fig. 4 ist ein Diagramm, das ein Beispiel eines 1-d-Baums
zeigt.
Fig. 5 ist ein Diagramm, das ein Beispiel eines 2-d-Baums
zeigt.
Fig. 6, 7 und 8 sind Diagramme, die Beziehungen zwischen
einem 2-d-Baum und einem zweidimensionalen Bereich zeigen.
Fig. 9 ist ein Flußdiagramm, das einen Betriebsablauf für
ein beim Ausführungsbeispiel verwendetes Raumdurchsuchsystem
zeigt.
Fig. 10 ist ein Diagramm, das eine Bezugszelle zeigt.
Fig. 11 ist ein Diagramm, das eine Umgrenzungszelle zeigt.
[Systemkonfiguration]
Fig. 3 ist ein Diagramm, das die Konfiguration eines bei der
Erfindung verwendeten Raumdurchsuchsystems zeigt. Dieses
Raumdurchsuchsystem kann durch eine selbständige Worksta
tion realisiert sein. Dieses Ausführungsbeispiel kann
schnelle Raumdurchsuchung ausführen, und es ermöglicht es,
daß sogar eine Standardworkstation Daten in Echtzeit suchen
und anzeigen kann.
Wie es in Fig. 3 dargestellt ist, umfaßt das System eine
Workstation 20 und eine interne oder externe Hilfsspeicher
einheit 30. Die externe Speichereinheit 30, die eine Magnet
platteneinheit, eine optische Speichereinheit oder eine ma
gnetooptische Platteneinheit sein kann, enthält Koordinaten
daten zu Objekten.
Die Workstation 20 verfügt über ein Parameterannahmemodul
22, das Benutzereingaben annimmt, die einen zu zeichnenden
Bereich spezifizieren. Dieser zu zeichnende Bereich wird als
Betrachtungsvolumen behandelt. Das Modul 22 fordert den Be
nutzer dazu auf, Parameter einzugeben, die das Betrachtungs
volumen spezifizieren, wie den Ort eines Betrachtungspunkts.
Eingegebene Parameter werden an ein Raumdurchsuchmodul 24
geliefert. Wenn das Raumdurchsuchmodul 24 die eingegebenen
Parameter empfängt, führt es einen Abschneidevorgang unter
Verwendung eines 6-d-Baums aus, der in einem Baumspeichermo
dul 28 im Hauptspeicher der Workstation 20 abgespeichert
ist. Der 6-d-Baum, auf den während eines Suchvorgangs häufig
Bezug genommen wird, wird vor dem Beginn des Abschneidevor
gangs aus der Hilfsspeichereinheit 30 in das Baumspeichermo
dul 28 geladen. Das Ergebnis des Abschneidevorgangs, oder
das Ergebnis der Suche, wird an ein Dateilesemodul 29 gelie
fert. Das Raumdurchsuchmodul 24 führt eine Zwischenspeiche
rung des vorigen Suchergebnisses aus und liefert nur den Un
terschied zwischen dem vorigen Suchergebnis und dem aktuel
len Suchergebnis an das Dateilesemodul 29.
Das Dateilesemodul 29 prüft den Unterschied und liest erfor
derliche Objektdaten, in Form jeweils einer Datei, aus der
Speichereinheit 30 aus. Gelesene Dateidaten werden über
überflüssige Dateidaten geschrieben (dieser Vorgang ent
spricht der Seite-herein- und der Seite-heraus-Operation
beim herkömmlichen System).
Ein Rastermodul 26 führt eine Rasterung der Dateidaten aus
und zeigt sie auf einem Schirm an.
[2] 6-d-Baum
Dieses System verwendet einen 6-d-Baum. Eine Technik zur
Verwendung eines k-d-Baums für eine Ebenendurchsuchung ist
in "Multidimensional binary search trees used for associati
ve searching" von J. L. Bentley, Communications of the ACM,
Vol. 18, No. 9, 509-517, 1975 oder in "Geographical data
structures compared: A study of data structures supporting
region queries" von J. B. Rosenberg, IEEE Trans. on CAD,
Vol. CAD-4, No. 1, 53-67, Jan. 1985 beschrieben. Dieses
Ausführungsbeispiel erstreckt die in diesen Veröffentlichun
gen beschriebene Technik auf Raumdurchsuchung. Ein 6-d-Baum
ist ein k-d-Baum, bei dem die Anzahl von Schlüsseln (k) 6
ist. Ein k-d-Baum ist ein binärer Baum, wie er bei einer Bi
närsuche verwendet wird, wobei die Anzahl von Suchschlüsseln
k ist. Das Folgende erläutert derartige Bäume in der Reihen
folge eines 1-d-Baums, eines 2-d-Baums und eines 6-d-Baums.
(1) 1-d-Baum
Ein 1-d-Baum ist ein einfacher binärer Baum. Fig. 4 zeigt
ein Beispiel eines 1-d-Baums. Wie es in der Figur darge
stellt ist, verfügt der Baum über sechs Knoten, a bis f, von
denen jeder über seinen eigenen Schlüssel (numerische Daten)
verfügt. Ein Knoten d bildet die Wurzel, Knoten f und e sind
Abkömmlinge (als chd = children repräsentiert) der Wurzel,
und Knoten b, c und a bilden Blätter. Die Regel zum Erzeugen
eines 1-d-Baums ist die folgende:
Regel 1. Für einen beliebigen Knoten x gilt:
K(x) ≧ K (ptree; root = left_chd (x))
Regel 2. Für einen beliebigen Knoten x gilt:
K(x) < K (ptree; root = right_chd (x))
wobei K ein Schlüssel ist und K(i) der Schlüssel zum Knoten
i ist. "ptree; root = left chd (x)" und "ptree"; root =
right_chd (x)" sind beliebige Knoten im Unterbaum "ptree",
dessen Wurzel der linke bzw. rechte Abkömmlingsknoten von x
ist.
Bei diesem 1-d-Baum ist eine Bereichsdurchsuchung möglich.
Wenn z. B. die folgende Bedingung gilt:
Bedingung: K < 3,
erfüllen die Knoten f und b die Bedingung. Um diese zwei
Knoten aufzufinden, erfolgt zunächst eine Prüfung zum Erken
nen, ob die Wurzel, d. h. der Knoten d, die obige Bedingung
erfüllt. Da der Schlüssel des Knotens d, 3, die Obergrenze
der Bedingung überschreitet, ist es nicht erforderlich, die
Knoten im Teilbaum zu prüfen, dessen Wurzel der rechte Ab
kömmling des Knotens d ist. Demgemäß kann, wenn einmal eine
Suchbedingung und Schlüsselbeziehungen vorgegeben sind, ein
gewünschter Knoten schnell aufgefunden werden.
(2) 2-d-Baum
Ein 2-d-Baum erlaubt es, gewünschte Knoten dann schnell auf
zufinden, wenn Bedingungen für zwei Schlüssel vergeben sind.
Diese zwei Schlüssel, die unabhängig voneinander sind, müs
sen in einem Baum enthalten sein.
Fig. 5 zeigt ein Beispiel eines 2-d-Baums, bei dem acht Kno
ten, a bis h, mit jeweils zwei Schlüsseln vorliegen. Der
Zweckdienlichkeit halber wird der obere Schlüssel als
"0. Schlüssel" bezeichnet, während der untere Schlüssel als
"1. Schlüssel" bezeichnet wird. Die Tiefe des Knotens d (mit D
repräsentiert) auf dem Niveau der Wurzel ist als 0 defi
niert, die Tiefe der Knoten d und e auf dem zweiten Niveau
ist als 1 definiert usw., wobei die Tiefe des Niveaus n den
Wert n-1 hat. Ein Indikator "dpt" ist wie folgt definiert:
dpt = D mod k
Da k, d. h. die Anzahl von Schlüsseln, 2 ist, ist dpt eine
Wiederholung von 0 und 1. Regeln zum Erzeugen dieses Baums
sind die folgenden:
Regel 1. Für den dpt-ten Schlüssel K(x, dpt) in einem belie
bigen Knoten x gilt:
K(x) ≧ K (ptree; root = left_chd (x), dpt)
Regel 2. Für den dpt-ten Schlüssel K(x, dpt) im Knoten x
gilt:
K(x) < K (ptree; root = right_chd (x), dpt).
Diese Regeln werden unter Bezugnahme auf Fig. 5 erläutert.
Für den Knoten d in der Wurzel gilt dpt = 0. Demgemäß werden
die Regeln 1 und 2 wie folgt umgeschrieben:
Regel 1. Der 0. Schlüssel des Knotens d ist
gleich groß wie oder größer als der 0. Schlüssel eines be
liebigen Knotens im Unterbaum, dessen Wurzel der Knoten f
ist, der der linke Abkömmling des Knotens d ist. In Fig. 5
ist dies wahr, da "7" (Knoten d) größer als "5" (Knoten 5),
"4" (Knoten b) und "3" (Knoten h) ist.
Regel 2. Der 0. Schlüssel des Knotens d ist:
kleiner als der 0. Schlüssel eines beliebigen Knotens im Un
terbaum, dessen Wurzel der Knoten e ist, der der rechte Ab
kömmling des Knotens d ist. In der Figur ist dies wahr, da
"7" kleiner als "9", "11", "8" und "13" ist.
Demgemäß stehen der Knoten d und die untergeordneten Knoten
über den 0. Schlüssel in Beziehung.
Als nächstes sei der Knoten e betrachtet. Da dpt = 1 für den
Knoten e gilt, werden die Regeln 1 und 2 wie folgt umge
schrieben:
Regel 1. Der 1. Schlüssel des Knotens e ist gleich groß wie
oder größer als der 1. Schlüssel eines beliebigen Knotens im
Unterbaum, dessen Wurzel der Knoten c ist, der der linke
Abkömmling des Knotens e ist. In der Figur ist dies wahr, da
"5" größer als "3" und "1" ist.
Regel 1. Der 1. Schlüssel des Knotens e ist kleiner als
der 1. Schlüssel eines beliebigen Knotens im Unterbaum, des
sen Wurzel der Knoten a ist, der der rechte Abkömmling des
Knotens e ist. In der Figur ist dies wahr, da "5" kleiner
als "8" ist.
Demgemäß stehen der Knoten e und die untergeordneten Knoten
über den 1. Schlüssel in Beziehung. So stehen ein Knoten mit
dpt = 0 und die untergeordneten Knoten des Knotens über den
0. Schlüssel in Beziehung, und ein Knoten mit dpt = 1 und
die untergeordneten Knoten dieses Knotens stehen durch den
1. Schlüssel in Beziehung. Ein 2-d-Baum mit zwei Schlüsseln
kann wie ein in (1) beschriebener binärer Baum behandelt
werden, wenn einmal ein Knoten ausgewählt ist.
Die Fig. 6 bis 8 zeigen die Beziehung zwischen dem 2-d-Baum
und einem zweidimensionalen Bereich. In dieser Figur er
streckt sich die x-Achse in der Richtung des 0. Schlüssels,
während sich die y-Achse in der Richtung des 1. Schlüssels
erstreckt. Wie es in Fig. 6 dargestellt ist, wird der Be
reich durch den Knoten d (X = 7) zweigeteilt. Ein Knoten un
ter dem Knoten d gehört zu einem der Bereiche.
Als nächstes wird, wie es in Fig. 7 dargestellt ist, jeder
Bereich durch den Knoten f (y = 7) und den Knoten e (y = 5)
zweigeteilt. In Fig. 8 ist jeder Bereich ferner durch die
Knoten b (x = 4), c (x = 11) und a (x = 8) unterteilt. Daher
ist ersichtlich, daß ein neuer Knoten mit einem beliebigen
Schlüssel zu einem der in Fig. 6 und den anderen Figuren
dargestellten zweidimensionalen Bereiche gehört, was bedeu
tet, daß der Knoten als Blatt mit dem 2-d-Baum verbunden
werden kann. D. h., daß ein Knoten seinen Platz unabhängig
davon im Baum findet, welcher Knoten als Wurzel ausgewählt
wird.
Ein auf die obenbeschriebene Weise erzeugter 2-d-Baum ermög
licht es, eine Bereichssuche mit zwei Schlüsseln auszufüh
ren. Als Beispiel sei angenommen, daß die folgenden Suchbe
dingungen gegeben sind:
Bedingung 0 : 0. Schlüssel < 7
Bedingung 1 : 1. Schlüssel < 6.
Unter diesen Bedingungen wird nur der Knoten a ausgewählt.
Beim Auswählprozeß erfolgt als erstes eine Prüfung zum Er
kennen, ob der Knoten d, d. h. die Wurzel, die Bedingung 0
erfüllt. Da der 0. Schlüssel des Knotens d (= 7) die Unter
grenze nicht erfüllt, wird bestimmt, daß der Knoten f (der
linke Abkömmling des Knotens d) und die untergeordneten Kno
ten die Bedingung nicht erfüllen.
Andererseits erfolgt eine Überprüfung zum Erkennen, ob der
Knoten e, der die Bedingung 0 erfüllt, auch die Bedingung 1
erfüllt. Da der 1. Schlüssel des Knotens e (= 5) die Unter
grenze der Bedingung 1 nicht erfüllt, wird bestimmt, daß
der Knoten c (der linke Abkömmling des Knotens e) und die
untergeordneten Knoten die Bedingung nicht erfüllen. Eine
Wiederholung dieser Prüfung engt die Kandidatenknoten wir
kungsvoll ein.
(3) 6-d-Baum
Ein 2-d-Baum ermöglicht es, eine Suche mit zwei Schlüsseln
auszuführen, was bedeutet, daß nach einem Punkt in einem
gewünschten Bereich in der xy-Ebene gesucht werden kann. Auf
ähnliche Weise ermöglicht es die Verwendung von vier Schlüs
seln, wie mit Xmin, Xmax, Ymin, Ymax angegeben, Knoten als
Rechteckbereich in der xy-Ebene zu definieren.
Ein 6-d-Baum verfügt über sechs Schlüssel. Bei diesem Aus
führungsbeispiel sind diesen Schlüsseln die Werte Ximax, . . .
des Objekts i zugeordnet. D. h., daß dem 0. Schlüssel bis
dem 5. Schlüssel die Werte Ximin, Yimin, Zimin, Ximax,
Yimax, Zimax zugeordnet sind. Die Baumerzeugungsregeln, die
hier nicht dargestellt sind, sind dieselben wie für einen
2-d-Baum, mit der Ausnahme, daß in der folgenden Tiefenbe
rechnungsformel k den Wert 6 hat.
dpt = D mod k
Ein Knoten in einem so erzeugten 6-d-Baum kann als Bereich
mit einem Volumen im xyz-Raum definiert werden; d. h., daß
er als Zelle oder Quader definiert werden kann. In einem bei
diesem Ausführungsbeispiel verwendeten 6-d-Baum repräsen
tiert ein Knoten eine Umgrenzungszelle (was später beschrie
ben wird), entsprechend einem Objekt mit sechs Zahlenwerten,
wie Ximax, die die Schlüssel des Knotens sind. Bei diesem
Ausführungsbeispiel führt das System ein Abschneiden unter
Verwendung dieses 6-d-Baums bei einer Suchbedingung aus, die
durch sechs Zahlenwerte einer Bezugszelle spezifiziert ist,
was später beschrieben wird.
[3] Funktion
Das Ausführungsbeispiel mit der obigen Konfiguration arbei
tet wie folgt. Fig. 9 ist ein Flußdiagramm, das den Be
triebsablauf eines bei diesem Ausführungsbeispiel verwende
ten Raumdurchsuchsystems zeigt. Bevor mit dem Ablauf begon
nen wird, wird ein 6-d-Baum in das Baumspeichermodul 28 ge
laden (S0).
Wie es in Fig. 9 dargestellt ist, fordert das System als
erstes dazu auf, ein Betrachtungsvolumen zu spezifizieren
(S2). Das Parameterannahmemodul 22 nimmt benutzerspezifi
zierte Parameter zur Übertragung an das Raumdurchsuchmodul
24 an.
Dann berechnet das Raumdurchsuchmodul 24 eine Bezugszelle
für das Betrachtungsvolumen (S4). Die "Bezugszelle" ist ein
Quader, der das Betrachtungsvolumen umschließt, wobei die
Seiten der Zelle (d. h. die Breite, die Höhe und die Tiefe)
parallel zur x-, y- bzw. z-Achse verlaufen. So kann die Be
zugszelle durch sechs x-, y-, und z-Koordinaten beschrieben
werden (als xsmax, xsmin, ysmax, ysmin, zsmax, zsmin reprä
sentiert), die die maximalen und minimalen Koordinatenwerte
der acht Ecken der Bezugszelle sind. Andererseits wird ein
das Objekt umgrenzender Quader als "Umgrenzungszelle" be
zeichnet. Hinsichtlich der Umgrenzungszelle kann das i. Ob
jekt in ähnlicher Weise durch sechs Werte ximax, ximin,
yimax, yimin, zimax und zimin beschrieben werden, die die
maximalen und minimalen Koordinatenwerte der acht Ecken der
Umgrenzungszelle sind. Die Werte für die Umgrenzungszelle,
wie ximax, müssen nicht berechnet werden, da sie als Schlüs
sel im 6-d-Baum enthalten sind.
Fig. 10 zeigt eine Bezugszelle, während Fig. 11 eine Umgren
zungszelle zeigt. Wie es in Fig. 10 dargestellt ist, wird
das Betrachtungsvolumen 2 von der Bezugszelle 50 umschlos
sen. Zwei Flächen der sechs Flächen der Bezugszelle 50 sind
durch eine vordere Abschneidebene und eine hintere Ab
schneidebene gebildet, wobei die restlichen vier Flächen
automatisch auf Grundlage dieser zwei Flächen bestimmt wer
den. Andererseits ist ein Objekt 60 durch eine Umgrenzungs
zelle 62 umschlossen, wie in Fig. 11 dargestellt. Das Objekt
60, das im allgemeinen kleiner als das Betrachtungsvolumen 2
ist, ist in Fig. 11 vergrößert dargestellt. Die Seiten
(Breite, Höhe und Tiefe) der Umschließungszelle 62) verlau
fen parallel zu den Seiten der Bezugszelle 50. D. h., daß
mit den drei rechtwinkligen Seiten der Bezugszelle 50 als
x-, y- und z-Koordinatenachse die Umgrenzungszelle 62 so be
stimmt ist, daß ihre drei rechtwinkligen Seiten parallel
zur x-, y- und z-Achse verlaufen. Daher ermöglicht es ein
einfacher Vergleich der maximalen und minimalen Koordinaten
werte in den Richtungen der x-, y- und z-Achse zu ermitteln,
ob die Umgrenzungszelle 62 in der Bezugszelle 50 enthalten
ist oder nicht. Das Auffinden der Bezugszelle und von Um
grenzungszellen entspricht dem Auffinden der Werte des Be
trachtungsvolumens, xsmin, sowie der Werte des Objekts, wie
ximin. Unter Verwendung dieser Werte wird die folgende Ope
ration ausgeführt.
Als nächstes führt das Raumdurchsuchmodul 24 einen Ab
schneidevorgang für jede Umgrenzungszelle in bezug auf die
Bezugszelle dadurch aus, daß es im 6-d-Baum eine bedingte
Suche ausführt (S6). Z. B. sind die Suchbedingungen dafür,
daß eine Umgrenzungszelle vollständig in einer Bezugszelle
enthalten ist, die folgenden sechs:
Bedingung 0: für den 0. Schlüssel gilt ximin ≧ xsmin
Bedingung 1: für den 1. Schlüssel gilt yimin ≧ ysmin
Bedingung 2: für den 2. Schlüssel gilt zimin ≧ zsmin
Bedingung 3: für den 3. Schlüssel gilt ximax ≦ xsmax
Bedingung 4: für den 4. Schlüssel gilt yimax ≦ ysmax
Bedingung 5: für den 5. Schlüssel gilt zimax ≦ zsmax.
In diesem Stadium wird ein beliebiges Objekt ausgewählt, das
zumindest teilweise erkennbar ist. Z. B. kann eine Suche
nach einer Umgrenzungszelle, deren y- und z-Koordinatenwerte
vollständig in den Bereichen der y- bzw. z-Koordinate der
Bezugszelle enthalten sind, deren x-Koordinatenwerte jedoch
nicht vollständig im Bereich der x-Koordinate der Bezugszel
le enthalten sind, dadurch erfolgen, daß nur die Bedingung
0 auf die folgende geändert wird:
Bedingung 0: für den 0. Schlüssel gilt ximin < xsmin
oder daß nur die Bedingung 3 wie folgt geändert wird:
Bedingung 3: für den 3. Schlüssel gilt ximax < xsmax.
Wenn eine Umgrenzungszelle betrachtet wird, hinsichtlich der
ein Teil nur in der x- oder der y-Richtung aus der Bezugs
zelle heraussteht, kann eine Suche nach einer Umgrenzungs
zelle, von der ein Teil nur in einer Richtung (x, y oder z)
aus der Bezugszelle heraussteht, dadurch erfolgen, daß
nicht auf eine der Bedingungen 0 bis 5 Bezug genommen wird.
Auf ähnliche Weise kann eine Suche nach Umgrenzungszellen,
die teilweise in zwei Richtungen (x und y, y und z oder z
und x) aus der Bezugszelle herausreichen, wie folgt ausge
führt werden:
(Es wird auf die Bedingung 0 oder 3 nicht Bezug genommen) x
(es wird auf die Bedingung 1 oder 4 nicht Bezug genommen) +
(es wird auf die Bedingung 0 oder 3 nicht Bezug genommen) x
(es wird auf die Bedingung 2 oder 5 nicht Bezug genommen) +
(es wird auf die Bedingung 1 oder 4 nicht Bezug genommen) x
(es wird auf die Bedingung 2 oder 5 nicht Bezug genommen).
Dabei bezeichnet der Operator "X" die logische UND-Verknüp
fung, während der Operator "+" die logische ODER-Verknüpfung
bezeichnet. Eine Suche nach Umgrenzungszellen, die in drei
Richtungen (x, y und z) teilweise aus der Bezugszelle her
ausreichen, kann wie folgt ausgeführt werden:
(Es wird auf die Bedingung 0 oder 3 nicht Bezug genommen) x
(es wird auf die Bedingung 1 oder 4 nicht Bezug genommen) x
(es wird auf die Bedingung 2 oder 5 nicht Bezug genommen).
Zusammengefaßt gesagt, sind die Kombinationen von Bedingun
gen, die bei der Suche nach einer Umgrenzungszelle, die zu
mindest teilweise in der Bezugszelle enthalten ist, zu ver
wenden sind, die folgenden:
(Bedingung 0 oder 3)×(Bedingung 1 oder 4)×(Bedingung 2
oder 5) (1).
Der logische Ausdruck (1) kann in acht Kombinationen von Be
dingungen entwickelt werden. Für jede dieser acht Kombinati
onen werden Umgrenzungszellen ausgewählt, die in der Bezugs
zelle enthalten sein können.
Es sei darauf hingewiesen, daß eine Umgrenzungszelle mit
einer Seite existiert, die länger als die der Bezugszelle
ist. Z. B. ist für ein sehr hohes Gebäude der Bereich der
Bezugszelle in der z-Richtung manchmal überschritten. In
einem derartigen Spezialfall sind die Bedingungen 2 und 5
die folgenden:
Bedingung 2: für den 2. Schlüssel gilt zimin < zsmin
Bedingung 5: für den 5. Schlüssel gilt zimax < zsmax.
Wenn beide Bedingungen gleichzeitig erfüllt sind (dies wird
als Bedingung 6 bezeichnet), sollte (Bedingung 2 oder 5) im
Ausdruck (1) auf (Bedingung 2 oder 5 oder 6) geändert wer
den. Dies gilt auch in den Richtungen x und y. Ein Abschnei
den wird unter Verwendung dieses Suchprozesses erzielt.
Als nächstes findet das Raumdurchsuchmodul 24 den Unter
schied zwischen dem Ergebnis des vorigen Abschneidevorgangs
und demjenigen des aktuellen Abschneidevorgangs heraus (S8).
Wenn z. B. die Bezugszelle, die zuvor die Objekte a, b, c
und d enthalten hat, nun die Objekte b, c, d und e enthält,
werden Daten zum gelöschten Objekt "a" überflüssig, während
Daten zum neuen Objekt "e" erforderlich werden. So ist die
Unterschiedsinformation diejenige, daß "das Objekt "a" ver
worfen werden kann und das Objekt "e" geladen werden muß".
Bei Empfang dieser Unterschiedsinformation liest das Datei
lesemodul 29 die Datei des Objekts "e" aus der Speicherein
heit 30 aus und überschreibt diese Daten über die des Ob
jekts "a" (S10).
Dann wird an den in den Speicher geladenen Objekten eine Ko
ordinatentransformation ausgeführt (S12). Bei diesem Ausfüh
rungsbeispiel verringert sich die Belastung eines Computer
systems für die Koordinatentransformation aufgrund der Vor
auswahl im Schritt S6.
Nach der Koordinatentransformation wird an den Objekten ein
detaillierter Abschneidevorgang ausgeführt. In S6 wurde ein
grober Abschneidevorgang ausgeführt, um alle Objekte auszu
suchen, die zumindest teilweise sichtbar sein können. In
diesem Stadium wird ein detailliertes Abschneiden ausge
führt, um dasselbe Objekt in diejenigen Teile, die im Be
trachtungsvolumen 2 enthalten sind, und diejenigen zu unter
teilen, die nicht darin enthalten sind. Dann rastert das
Rastermodul 26 die im Betrachtungsvolumen 2 einzuschließen
den Objektteile (S14), bevor diese auf dem Schirm angezeigt
werden.
Das System arbeitet auf die obenbeschriebene Weise. Obwohl
bei diesem Ausführungsbeispiel ein unabhängiges System ver
wendet ist, kann auch ein Server-Client-System verwendet
werden, in welchem Fall der Server für den Raumdurchsu
chungsdienst sorgt und er das Suchergebnis als Unterschieds
information an den Client liefert. Diese Unterschiedsinfor
mation ermöglicht es dem Client, nur diejenigen Dateien zu
laden, die erforderlich sind, und sie zur Anzeige zu ras
tern. Bei diesem Typ eines Server-Client-Systems können Ob
jektdaten von vielen Clients gemeinsam genutzt werden. Wenn
z. B. zwei Clients existieren, zeigt einer derselben Video
daten für das rechte Auge an, während der andere Videodaten
für das linke Auge anzeigt, um ein pseudo-dreidimensionales
System aufzubauen.