DE68928181T2 - Bilderzeugungsgerät - Google Patents
BilderzeugungsgerätInfo
- Publication number
- DE68928181T2 DE68928181T2 DE68928181T DE68928181T DE68928181T2 DE 68928181 T2 DE68928181 T2 DE 68928181T2 DE 68928181 T DE68928181 T DE 68928181T DE 68928181 T DE68928181 T DE 68928181T DE 68928181 T2 DE68928181 T2 DE 68928181T2
- Authority
- DE
- Germany
- Prior art keywords
- feature
- sample point
- pixel
- features
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003384 imaging method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000005070 sampling Methods 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000002301 combined effect Effects 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 78
- 238000012545 processing Methods 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 37
- 230000009466 transformation Effects 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 24
- 230000036961 partial effect Effects 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 16
- 239000013598 vector Substances 0.000 claims description 15
- 241000269627 Amphiuma means Species 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 230000000670 limiting effect Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 2
- 230000001186 cumulative effect Effects 0.000 claims 1
- 230000007717 exclusion Effects 0.000 claims 1
- 238000012360 testing method Methods 0.000 abstract description 11
- 230000000694 effects Effects 0.000 description 57
- 239000012634 fragment Substances 0.000 description 27
- 238000009826 distribution Methods 0.000 description 13
- 238000013519 translation Methods 0.000 description 12
- 230000014616 translation Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000000844 transformation Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 241000196324 Embryophyta Species 0.000 description 3
- 230000009172 bursting Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 241000928106 Alain Species 0.000 description 1
- 244000025254 Cannabis sativa Species 0.000 description 1
- 241001253201 Pineda Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002744 anti-aggregatory effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000001795 light effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000001629 sign test Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/08—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
- G09B9/30—Simulation of view from aircraft
- G09B9/301—Simulation of view from aircraft by computer-processed or -generated image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Educational Administration (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Educational Technology (AREA)
- Processing Or Creating Images (AREA)
- Eye Examination Apparatus (AREA)
- Fluid-Damping Devices (AREA)
- Vehicle Body Suspensions (AREA)
- Holo Graphy (AREA)
- Permanent Magnet Type Synchronous Machine (AREA)
Description
- Die vorliegende Erfindung betrifft einen Bilderzeuger und insbesondere einen Rechner-Bilderzeuger, der zum Erzeugen von Informationen in Echtzeit geeignet ist, von denen ein Bild abgeleitet werden kann, um es beispielsweise in einem Flugsimulator zu zeigen.
- Echtzeit-Bilderzeuger für Flugsimulatoren werden dazu verwendet, Bilder zu erzeugen, die Piloten/innen präsentiert werden, die sich in einem nachgebildeten Cockpit eines Luftfahrzeugs befinden. Bei frühen Systemen wurde eine visuelle Umgebung unter Verwendung von Film- bzw. Videobildern geschaffen, die von einer Kamera mit Folgeregelantrieb erhalten wurden, welche über einem Modell des Terrains manövriert wurde, über dem eine Bewegung simuliert werden sollte. Diese Ansätze wurden verbreitet eingesetzt, haben sich aber als unfähig erwiesen, realistische Szenen mit echter Perspektive von einer großen Bandbreite von Blickpunkten aus zu erzeugen. Um diese Beschränkungen zu überwinden, wurden Bilderzeuger eingeführt, die rechnererzeugtes Bildmaterial erzeugen, wobei die ersten kommerziell erfolgreichen Systeme in den frühen siebziger Jahren erschienen. Solche Systeme werden heute nahezu ausnahmslos bei Flugsimulatoranwendungen eingesetzt und werden gewöhnlich als CIG-Systeme (Rechner- Bilderzeugungssysteme) bezeichnet.
- Bei einem CIG-System schaut der/die geplante Betrachter/in des vom System erzeugten Bildes, das heißt der/die Simulatorpilot/in, durch ein imaginäres Fenster nach draußen in eine dreidimensionale (3-D)-Welt, die durch Informationen definiert ist, die als geometrische und andere kennzeichnende Attributdaten gespeichert sind. Eine vom Blickpunkt durch das Fenster gezogene Linie schneidet einen Punkt in der 3-D-Welt. Die Farbe und die Intensität dieses Punktes muß am Schnittpunkt der Linie mit dem Fenster auf das Fenster 'gemalt' werden. Das gezeigte Bild setzt sich aus einer Reihe von Bildelementen (Pixeln) zusammen, die jeweils eine gleichförmige Farbe und Intensität aufweisen, wobei die Farbe und die Intensität jedes Pixels eine Funktion der Lage des Blickpunktes relativ zur 3-D-Welt ist, die durch die gespeicherten Daten repräsentiert wird. Bei einer Echtzeitanzeige, bei der hunderttausende von Pixeln ausreichend schnell aktualisiert werden müssen, um ein Springen des Bildes zu vermeiden, ist zur Aufrechterhaltung der Bild-Wiedergabetreue das Ausführen vieler Millionen Rechenschritte pro Sekunde erforderlich. Bei den meisten Simulatorsystemen, die eine Weitwinkelanzeige erzeugen, setzt sich das Bild aus drei nebeneinandergestellten Bildern zusammen, die jeweils aus einer gemeinsamen Datenbank abgeleitet sind, aber von einem jeweiligen Verarbeitungskanal erzeugt wurden. Die drei Kanäle teilen sich somit die Rechenlast. Hierin geht es lediglich um die Vorgange in einem einzigen Kanal, und daher wird die Beziehung zwischen zusammengehörigen Kanälen nicht besprochen.
- Ein Überblick über die Probleme, die sich bei Echtzeit- CIG-Systemen stellen, und über verschiedene Ansätze zur Lösung dieser Probleme wird in der Veröffentlichung "Computer Image Generation" gegeben, herausgegeben von Bruce J. Schachter, erschienen 1983 bei John Wiley & Sons Inc., ISBN 0-471-87287- 3. Eine Kurzdarstellung üblicher Ansätze, die bei bekannten CIG-Systemen übernommen wurden, wird jedoch untenstehend gegeben, um einen Kontext für die hierin beschriebenen Techniken bereitzustellen.
- Allgemein ist ein Simulator dazu ausgelegt, das Passieren eines Luftfahrzeugs über ein definiertes Gebiet eines bekannten Terrains zu simulieren, zum Beispiel die Anflüge auf bestimmte Flughäfen. Bei einem bekannten System wird eine Hauptdatenbank erzeugt, die ein 3-D-Modell dieses Terrains ist, wobei jeder Punkt innerhalb des Terrains Welt-Raum- Koordinaten aufweist, welche die Lage dieses Punktes relativ zu einem vorgegebenen Ursprung definieren. Die gesamte 3-D- Oberfläche ist mit Bezug auf eine Reihe von Merkmalen definiert, zum Beispiel Polygone, die definierte Scheitelpunkte, eine definierte Farbe und eine definierte Oberflächennormale (eine von einem Scheitelpunkt senkrecht zur Ebene des Polygons gezogene Linie) aufweisen. Weitere Kennzeichen können spezifiziert werden, zum Beispiel die Oberflächenbeschaffenheit (Wasser, Gras etc.), wobei die geometrischen und die anderen Kennzeichen als die Attribute des Merkmals bezeichnet werden.
- Die Hauptdatenbank (die hierin als die zur Verfügung stehende Datenbank bezeichnet wird) kann ein Gebiet der Erdoberfläche enthalten, das weit größer ist als das, welches von einer bestimmten Blickpunktposition aus gesehen werden kann, zum Beispiel ein Gebiet von 200 Seemeilen zum Quadrat. Es wird allgemein davon ausgegangen, daß der normale Sichtbarkeitsbereich weniger als 40 Seemeilen beträgt. Es müssen also nicht alle Daten in der Hauptdatenbank augenblicklich zur Verfügung stehen, und daher werden Daten, die ein Gebiet betreffen, das innerhalb eines Kreises mit dem Blickpunkt als Mittelpunkt und mit vorgegebenem Radius liegt (zum Beispiel 40 Seemeilen), in eine aktive bzw. in eine Online-Datenbank heruntergeladen.
- Die Lage des Blickpunktes relativ zu der zur Verfügung stehenden Datenbank ändert sich mit der Zeit, ansprechend auf die Manipulation der Flugsteuervorrichtungen des simulierten Luftfahrzeugs. Diese Änderungen werden auf bekannte Art und Weise berechnet und sind nicht unmittelbar relevant für die hierin beschriebenen Techniken. Es sei lediglich erwähnt, daß der Simulator zu jedem Zeitpunkt eine Ausgabe erzeugt, welche die Blickpunktposition in Welt-Raum-Koordinaten anzeigt und welche die Blickrichtung anzeigt, das heißt einen Vektor, der vom Blickpunkt des/der Piloten/in zum Mittelpunkt des Sichtfensters gezogen wird.
- Der Inhalt der aktiven Datenbank wird dazu verwendet, die Farb- und Intensitätsinformationen jedes Bildelements (Pixels) des Bildes abzuleiten, das auf einem vor dem/der Simulatorpiloten/in plazierten Bildschirm gezeigt werden soll. Jedes Pixel liegt auf einer eindeutigen vorgegebenen imaginären Blicklinie, die sich vom Blickpunkt zum Bildschirm und in Gedanken durch den Bildschirm auf die Oberfläche des Modells erstreckt, das durch die Daten in der aktiven Datenbank definiert ist. Das bedeutet, daß das Welt-Raum- Koordinatensystem der Datenbank unter Verwendung der Blickpunktkoordinaten in ein Bildschirmraum-Koordinatensystem transformiert werden muß. Das ermöglicht die Bestimmung desjenigen Oberflächenbereichs des Modells, welcher die Farbe und die Intensität jedes Pixels (für das die Bildschirmraumkoordinaten bekannt sind) bestimmt. Sobald dieser Oberflächenbereich bestimmt ist, können die Farbe, die Intensität und andere Attribute jedes Merkmals, das zu diesem Pixel beiträgt, erhalten werden, und es können geeignete Berechnungen ausgeführt werden, um die gleichförmige Farbe und Intensität des Pixels zu bestimmen.
- Wenn die modellierte Oberfläche eben ist, dann definiert jedes Merkmal eine Oberfläche in dieser Ebene, und daher wird normalerweise kein Merkmal von einem anderen verdeckt. Wenn jedoch eine akzeptable Wirklichkeitstreue erreicht werden soll, dann muß es möglich sein, Bilder zu zeigen, die 3-D- Objekte beinhalten, wie zum Beispiel Gebäude. Das bedeutet zwangsläufig, daß je nach Blickpunkt einige Merkmale von Gebäuden verdeckt werden und daher nicht zur Farbe und Intensität von Pixeln beitragen sollten, auf die das Gebäude projiziert wird. Damit läßt sich umgehen, wenn verschiedenen Merkmalen verschiedene Prioritäten zugeordnet werden; Priorität eins entspricht zum Beispiel der Bodenoberfläche, Priorität zwei entspricht Gebäuden, und Merkmale der Priorität zwei werden immer als vor Merkmalen der Priorität eins liegend angesehen, die auf der gleichen Blicklinie liegen. Ein solches Verfahren ist im Dokument EP-A-0240608 beschrieben.
- Es ist daher eine wesentliche Bedingung üblicher Echtzeit-CIG-Systeme, daß Merkmalen, die in der zur Verfügung stehenden Datenbank enthalten sind, die korrekte relative Verdeckungspriorität zugeordnet wird. Diese vorgegebene Prioritätenhierarchie ist offensichtlich nur für eine gegebene Menge von Blickpunkten gültig. Wenn der/die Pilot/in zum Beispiel ein Gebäude von einer Seite betrachtet, dann verdeckt die Wand des Gebäudes auf der betrachteten Seite die Wand auf der anderen Seite. Wenn die Position des/der Piloten/in jedoch auf die andere Seite des Gebäudes wechselt, dann ist das Gegenteil der Fall. Es ist daher ersichtlich, daß sich Merkmalsprioritäten ständig ändern müssen, während der/die Pilot/in sich in der Datenbank bewegt, wenn die Wirklichkeitstreue der Bilder aufrechterhalten werden soll.
- Wenn eine Datenbank zur Verwendung durch ein übliches CIG-System konstruiert wird, dann werden den Merkmalen vorgegebene Prioritäten zugeordnet, zuzüglich zusätzlicher Informationen, die dazu benötigt werden, diese vorgegebene Priorität zu modifizieren, um die augenblickliche Prioritätenhierarchie für eine beliebige gegebene Blickpunktposition und -ausrichtung zu produzieren. Die Datenbankvorbereitung ist daher sowohl komplex als auch zeitaufwendig, besonders wenn die Komplexität der Datenbank zur Erzielung einer größeren Wirklichkeitstreue erhöht wird.
- Die augenblickliche Merkmalshierarchie wird von einem Online-Sortierer berechnet. Mit zunehmender Datenbank- Komplexität beschränkt dieser Sortierer schließlich den Systemdurchsatz, da er klassische Sortierungsalgorithmen benutzt, auf die Parallelverarbeitungstechniken nicht angewandt werden können. Ferner ist es nicht möglich, diesen Ansatz dazu einzusetzen, komplexe dynamische Objektwechselwirkungen zu lösen. Es ist daher durchaus normal, auf den Bildschirmen üblicher Echtzeit-CIG-Systeme visuelle Bildfehler zu beobachten, zum Beispiel Fahrzeuge, die durch Gebäude hindurch sichtbar sind, hinter denen sie sich befinden.
- Um die Nachteile zu überwinden, die dem üblichen, oben beschriebenen Ansatz vorgegebener Merkmalsprioritäten innewohnen, ist vorgeschlagen worden, eine alternative Technik zu realisieren, die als Z-Pufferung bekannt ist, und dadurch die korrekte Realisierung komplexer CIG-Szenen zu ermöglichen. Zur Realisierung der Z-gepufferten Techniken wird keine vorgegebene Priorität benötigt. Das CIG-System löst die Merkmalspriorität auf der Ebene des Pixels, indem für jedes Merkmal, das auf ein gegebenes Pixel wirkt, die Z-Tiefe berechnet wird (die Distanz eines gegebenen Merkmals vom Blickpunkt in der 3-D-Szene, gemessen in der zur Betrachtungsebene senkrechten Richtung). Wenn die Farbe und die Intensität jedes Merkmals verarbeitet wird, wird dies zusammen mit seiner Z-Tiefe in einen Bildspeicher geladen. Beim Verarbeiten nachfolgender Merkmale, die auf das gleiche Pixel wirken, wird die Z-Tiefe jedes neuen Merkmals mit der des ursprünglichen Merkmals verglichen, das im Bildspeicher enthalten ist. Wenn das neue Merkmal näher am/an der Beobachter/in liegt als das ursprüngliche und daher letzteres verdeckt, dann wird das ursprüngliche Merkmal ignoriert und durch das neue Merkmal ersetzt. Dieser Vorgang wird so lange wiederholt, bis alle Merkmale in der Szene verarbeitet worden sind, woraufhin die letzte Eintragung im Bildspeicher für jedes Pixel die Farb- und Intensitätsdaten für das nächstliegende Merkmal sind, das für den/die Beobachter/in sichtbar ist.
- Der Hauptvorteil der Z-gepufferten Technik gegenüber dem üblichen Ansatz liegt in der Eliminierung der Aufgabe, nach Merkmalsprioritäten zu sortieren, wodurch die Erzeugung von Szenen größerer Komplexität ermöglicht wird. Ferner wird die Datenbankkonstruktion erheblich vereinfacht, da den Merkmalsbeschreibungen keine Prioritätsinformationen hinzugefügt werden müssen. Schließlich können aufgrund der Tatsache, daß die Merkmalsverdeckung bis auf Pixelauflösung (oder sogar bis auf eine höhere Auflösung) gelöst wird, komplexe dynamische Objekt-Wechselwirkungen simuliert werden.
- Trotz der offensichtlichen Vorteile einer Verwendung der Z-gepufferten Technik ist ihre Realisierung mit Problemen verbunden. Da Merkmale in zufälliger Tiefenordnung verarbeitet werden, ist es erstens erforderlich, alle Merkmalsparameter, z.B. Beschaffenheit, glatte Schattierung, Nebel etc. zu berechnen, obgleich die Mehrzahl davon am Bildspeicher, wo der Z-Tiefenvergleich stattfindet, ausgeschlossen werden. Es versteht sich, daß es zur Erzielung einer zufriedenstellenden Szenenqualität ohne sichtbare Bildunschönheiten erforderlich ist, die Verarbeitung von Merkmalen und die Berechnung der Z- Tiefe für jedes Merkmal unterhalb der Pixelebene vorzunehmen. Ein System, das dazu in der Lage ist, eine Endszenenauflösung von einer Million Pixel mit acht Stichprobenpunkten bzw. Teilpixeln pro Pixel zu erzeugen, muß daher für alle Merkmale an jedem von acht Millionen Stichprobenpunkten Merkmale verarbeiten und Z-Tiefen vergleichen. Das erzwingt eine riesige Rechenlast, die es sehr schwer macht, eine Z-Pufferung in Echtzeitsystemen zu erreichen. Bei einem bekannten Z- gepufferten System leitet ein Sortierer Merkmale in einer Reihenfolge von oben nach unten durch das System, d.h. das nächstliegende Merkmal zuerst. Das bedeutet daher, daß das System, wenn eine Pixelfläche ganz abgedeckt ist, weiter entfernt liegende Merkmale von einer weiteren Verarbeitung ausschließen und zum nächsten Pixel übergehen kann. Leider stellt ein solcher Sortierer selbst einen Engpaß dar, der den Systemdurchsatz begrenzt, da alle Merkmale sortiert werden müssen, bevor die Verarbeitung von Pixeln beginnen kann. Zweitens liegt einer der Hauptnachteile üblicher Z-gepufferter Systeme in einer Unfähigkeit, durchscheinende Merkmale in der Szene darzustellen. Das liegt daran, daß die Darstellung von Transparenz in der CIG-Szene durch das Überlagern einer undurchsichtigen Oberfläche durch eine durchscheinende Oberfläche erzeugt wird. Für ein gegebenes Pixel können sich daher zwei Merkmale, eins durchscheinend und das andere undurchsichtig, mit verschiedenen Z-Tiefen den gleichen Platz im Bildspeicher streitig machen. Das kann dazu führen, daß ein weiter entfernt liegendes undurchsichtiges Merkmal zugunsten eines näherliegenden durchscheinenden Merkmals ausgeschlossen wird, wodurch ein visueller Bildfehler erzeugt wird.
- Die Z-Puffertechnik ist zwar wohlbekannt und wird verbreitet für Nichtechtzeit-CIG-Systeme eingesetzt, sie ist jedoch bis heute nicht dazu eingesetzt worden, alle Algorithmen und Techniken ganz umzusetzen, die für ein hochleistungsfähiges Echtzeit-CIG-System benötigt werden. Zwar sind einige Z-gepufferte Echtzeit-CIG-Systeme entwickelt worden, sie haben aber die oben besprochenen inhärenten Nachteile nicht überwunden, und daher mangelt es ihnen an Bildqualität und Wirklichkeitstreue.
- Es gibt viele veröffentlichte Dokumente, die verschiedene Z-Puffertechniken und -realisierungen beschreiben. Darunter beispielsweise der Artikel "Frame buffer display architectures" von Robert F. Sproull, Ann Rev. Comput. Sci. 1986, 1:19-46 (0272-1716/86/1100-0031), der verschiedene Z- Pufferrealisierungen beschreibt; der Artikel "Hardware assistance for Z-buffer visible surface algorithms" von Kellogg S. Booth et al (IEEE-Veröffentlichung 0272- 1716/86/1100-0031), der auf Schwierigkeiten Bezug nimmt, die beim Erzielen eines Antialiasing bei Z-Pufferrealisierungen auftreten; der Artikel "On the power of the frame buffer" von Alain Fournieret al, ACM Transactions on Graphics (0730- 0301/88/0400-0103), der die Tiefenpuffermathematik und die Merkmalswirkungsbeurteilung mit Bezug auf Geradengleichungen beschreibt; der Artikel "Compositing Digital Images" von Thomas Porter et al, Computer Graphics, Bd. 18, Nr. 3 (0- 89791-138-5/84/007/0253), der die Bereitstellung eines A- Kanals beschreibt, um den Überdeckungsgrad an einem Pixel zu speichern; der Artikel "A characterization often hidden surface algorithms" von Ivan E. Sutherland et al, Computing Surveys, Bd. 6, Nr. 1, März 1974, S. 387-441; und der Artikel "A review of recent hidden surface removal techniques" von P. J. Willis, Displays, Januar 1985, S. 11-20. Keiner dieser Artikel beschreibt Techniken, die realistisch dazu in der Lage wären, die obengenannten Probleme in Echtzeit zu lösen, ohne speziell vorbereitete Modelle zu verwenden.
- Es ist eine Aufgabe der vorliegenden Erfindung, die oben skizzierten Probleme zu umgehen bzw. zu mildern.
- Ein weiteres Problem, das sich bei CIG-Systemen stellt, ist das der Bildverzerrung. Bildprojektionseinrichtungen, insbesondere großformatige Einrichtungen des in Flugsimulatoren verwendeten Typs, bringen Verzerrungen mit sich. Einzelne Pixel einer Anzeige erscheinen somit, wenn sie projiziert werden, verzerrt, obgleich sie nominell rechteckig sind, und nominell gerade Pixelreihen erscheinen gekrümmt, wenn sie projiziert werden. Verschiedene Techniken sind vorgeschlagen worden, um mit diesen Problemen fertigzuwerden, zum Beispiel die im US-amerikanischen Patent US-A-4 714 428 beschriebene Technik. Dieses Dokument beschreibt ein System, bei dem Merkmale in absteigender Prioritätenreihenfolge angeordnet sind und die Wirkung von Merkmalen auf Teilflächen bzw. Bereiche des Bildschirmraums mit Bezug auf Geradengleichungen analysiert wird, welche die Position von Merkmalskanten im Bildschirmraum definieren. Die Ecken der Bereiche werden in den verzerrten Bildraum abgebildet, und als Folge davon werden Bildsystemverzerrungen bei der Vorbereitung von Bilddaten für eine Anzeige berücksichtigt. Leider ist es notwendig, die Merkmalskanten in jedem Bereich neu zu berechnen, da die Bereiche verzerrt sind. Dadurch wird die Kontinuität jeder Kante über die Grenze zwischen zwei beliebigen Bereichen aufrechterhalten, aber so, wie sie gezeigt wird, setzt sich jede Kante aus einer Reihe von aufeinander zugeneigten geraden Kanten zusammen statt aus einer stetig gekrümmten Linie. Ferner ist die Notwendigkeit, Merkmalskanten an jeder Bereichsgrenze neu zu berechnen, rechenaufwendig.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, die oben skizzierten Verzerrungsprobleme zu umgehen bzw. zu mildern.
- Ein weiteres Problem, das bei üblichen CIG-Systemen angetroffen wird, ist die genaue Simulation von Lichtpunkten. Lichtpunkte starker Intensität verdecken effektiv jegliche Oberflächen, vor denen sie sich befinden. Das Erscheinungsbild von Lichtpunkten schwacher Intensität wird jedoch zum Beispiel durch die Farbe vön Oberflächen beeinflußt, vor denen sie plaziert sind. Bei üblichen Echtzeitsystemen werden Lichtpunkte durch undurchsichtige Merkmale simuliert, die im allgemeinen eine rechteckige Fläche im Bildschirmraum einnehmen. Wenn die Intensität eines Lichtpunktes verringert wird, zum Beispiel auf null, um ein Versagen des Lichts zu simulieren, dann scheint sich dort, wo sich der Lichtpunkt befindet, ein in das Bild geschnittenes 'Loch' zu ergeben.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, die oben skizzierten Probleme der Simulation von Lichtpunkten geringer Intensität zu umgehen bzw. zu mildern.
- Weitere Probleme der Lichtpunktsimulierung sind die des 'Ansammelns' und des 'Aufplatzens'. Ansammeln tritt ein, wenn die Intensität von Lichtpunkten, die sich im Bildschirmraum überlappen, aufsummiert wird, was zu einer unnatürlich hohen Intensität führt. Ein Aufplatzen tritt auf, wenn ein Lichtpunkt, der im Welt-Raum als ein Punkt mit der Fläche null definiert ist, plötzlich hinter einem Merkmal 'auftaucht'. Diese Probleme können angesichts der Modellierung von Lichtpunkten, als befänden sie sich an wahren geometrischen Punkten im Welt-Raum, bei üblichen Systemen nicht bearbeitet werden.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, die oben skizzierten 'Ansammel-' und 'Aufplatz'-Probleme zu umgehen bzw. zu mildern.
- Ein weiteres Problem, das sich bei bekannten Echtzeit- CIG-Systemen stellt, ist das des Lastausgleichs. Es ist bekannt, eine Anordnung paralleler Prozessoren vorzusehen, die jeweils einen jeweiligen Teil der Merkmal sdaten verarbeiten, die dazu benötigt werden, das Endbild fertigzustellen. Die Merkmale werden gewöhnlich in kleine Teile regelmäßiger Größe und Gestalt (z.B. 'Bereiche' oder 'Zellen') aufgespalten, und jedem Prozessor wird ein bestimmter Zellensatz zugeordnet, so daß zum Beispiel ein Prozessor geradzahlige Zellenreihen bearbeitet und ein zweiter Prozessor ungeradzahlige Zellenreihen bearbeitet. Leider ist der Detailliertheitsgrad in einer dreidimensionalen Welt-Raum-Szene nicht gleichmäßig über den Bildschirmraum verteilt. Insbesondere erhöht sich oft die Merkmalsdichte infolge der Perspektive auf den Horizont zu. Wenn daher jedem Prozessor eine bestimmte Fläche des Bildschirms zugeordnet wird, dann wird u.U. ein Prozessor stark überbelastet, während ein anderer unterbelastet ist. Das System wird dann dazu gezwungen, auf die Geschwindigkeit des langsamsten Prozessors herunterzugehen.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, das oben skizzierte Problem des mangelnden Lastausgleichs zwischen parallelen Prozessoren zu umgehen bzw. zu mildern.
- Ein weiteres Problem, das bei üblichen Echtzeit-CIG- Systemen angetroffen wird, ist das einer effizienten Abtastumsetzung.
- Bei der Abtastumsetzung handelt es sich um das Verfahren des Rasterns polygonaler Daten in einen Bildspeicher. Sie ist grundlegend für Grafik-Arbeitsstationen und Rechner- Bilderzeuger. Ein allgemeiner Überblick über Abtastumsetzungsalgorithmen findet sich in der Veröffentlichung "Fundamentais of Interactive Computer Graphics" von Foley und Van Dam, die bei Addison Wesley erschienen ist. Ein spezielleres Beispiel einer bekannten Abtastumsetzungstechnik wird im Artikel "A parallel algorithm for polygon rasterization" von Juan Pineda, Computer Graphics, Bd. 22, Nr. 4, August 1988 (0-89791-275-6/88/008/0017), beschrieben. Die von Pineda beschriebenen bekannten Techniken greifen auf Kantenfunktionen zurück, welche die Kanten eines Merkmals im Bildschirmraum definieren, und auf einen Algorithmus, der die Bestimmung der Lage eines Pixels relativ zur Kantenfunktion ermöglicht, wobei eine Lage als entweder links oder rechts von der Kantenfunktion liegend angezeigt wird. Ein Merkmal wird auf eine logische Weise durchquert, um sein Ausmaß zu bestimmen, wobei die Durchquerung ansprechend auf das Erfassen einer Änderung von einer Seite einer Kantenfunktion zur anderen gesteuert wird. Es ist jedoch nicht möglich, auf effiziente Weise zu beurteilen, ob ein bestimmtes Merkmal auf Bildschirmraumflächen wirkt, wenn diese Flächen relativ groß sind.
- Es ist daher eine weitere Aufgabe der vorliegenden Erfindung, die oben skizzierten Abtastumsetzungsprobleme zu umgehen bzw. zu mildern.
- Ein weiteres Problem, das sich bei Echtzeit-Bilderzeugern stellt, besteht darin, Daten aus der aktiven Datenbank auf effiziente Weise auszulesen und zu transformieren. Die meisten Echtzeit-3D-Grafiksysteme enthalten parallele Prozessoren, die Eingabedaten aus drei Dimensionen (Welt-Raum) in zwei Dimensionen (Bildschirmraum) transformieren. Diese Transformation beinhaltet zumindest Translation, Rotation und Perspektivenberechnungen und kann andere mathematische Operationen beinhalten. Das Teilsystem, das für diese Arbeit zuständig ist, ist in parallele Prozessoren aufgeteilt, um den Datendurchsatz zu erhöhen. Leider sind die bekannten Systeme immer noch nicht besonders effizient. Bei einem bekannten System führt jeder Prozessor eine andere Aufgabe aus, d.h. ein Prozessor führt Translationen aus, ein zweiter Rotationen, ein dritter Perspektivenberechnungen. Das ist ein sehr inflexibles Arrangement, insofern als nur drei Prozessoren verwendet werden können, und der Prozessor, der für Translationen zuständig ist, wird stark unterbelastet sein, da die Translation, zum Beispiel im Vergleich zur Rotation, ein relativ einfacher Vorgang ist. Bei einem anderen bekannten System kann die aktive Datenbank zu gleichen Teilen unter den zur Verfügung stehenden Prozessoren verteilt werden. Auch dieser Ansatz bringt nicht viel ein, da in der Praxis der Großteil der zur Verfügung stehenden Datenbank außerhalb des Sichtfelds liegt, was oft dazu führt, daß einige Prozessoren stark unterbelastet sind, da ihr Teil der Datenbank ganz oder teilweise außerhalb des Sichtfelds liegt.
- Es ist somit eine weitere Aufgabe der vorliegenden Erfindung, die oben skizzierten Probleme im Zusammenhang mit der Transformation von Daten, die aus der Datenbank ausgelesen werden, zu umgehen bzw. zu mildern.
- Gemäß der vorliegenden Erfindung ist eine Vorrichtung zum Erzeugen eines Bildes vorgesehen, das auf einem Anzeigebildschirm gezeigt werden soll, und zwar aus Daten, die ein Modell definieren, das eine Mehrzahl undurchsichtiger und durchscheinender Merkmale umfaßt, wobei das Bild eine Ansicht des Modells von einem vorgegebenen Blickpunkt aus darstellen soll und aus einer Anordnung von Bildschirmraumpixeln zusammengesetzt ist, die mittels eines Rasterabtastverfahrens angezeigt werden soll, wobei jedes Pixel eine gleichförmige Farbe und Intensität aufweist und wobei die Pixel zusammen eine Bildfläche definieren, wobei die Vorrichtung folgendes umfaßt:
- a. Mittel zum Unterteilen der Bildfläche in eine Anordnung von Teilflächen, die jeweils mindestens ein Pixel überdecken,
- b. Mittel, um für jedes Merkmal in dem Modell, das vom Blickpunkt aus potentiell sichtbar ist, zu bestimmen, welche der Teilflächen zumindest teilweise von diesem Merkmal überdeckt werden,
- c. Mittel, um bezüglich jeder Teilfläche eine Liste von Merkmalsidentifizierern zu erzeugen, wobei die Liste einer jeden Teilfläche Merkmale identifiziert, die diese Teilfläche zumindest teilweise überdecken,
- d. Mittel, um die Position im Bildschirmraum mindestens eines Stichprobenpunktes innerhalb jeder Teilfläche zu bestimmen,
- e. Mittel, um nacheinander für jede Teilfläche und für jeden Stichprobenpunkt zu bestimmen, welche der Merkmale in der Liste dieser Teilfläche diesen Stichprobenpunkt überdecken,
- f. Mittel, um für jedes Merkmal, das einen Stichprobenpunkt überdeckt, eine Funktion der Entfernung vom Blickpunkt zu diesem Merkmal am Stichprobenpunkt zu bestimmen,
- g. Mittel zum Speichern merkmalsbeschreibender Daten für jeden Stichprobenpunkt innerhalb einer Teilfläche, wobei die gespeicherten Daten zumindest die Entfernung des undurchsichtigen Merkmals, das den Stichprobenpunkt überdeckt und dem Blickpunkt am nächsten liegt, und die Entfernung und die Transparenz mindestens eines näherliegenden durchscheinenden Merkmals, das den Stichprobenpunkt überdeckt, anzeigen,
- h. Mittel zum Erzeugen einer Ausgabe für jeden Stichprobenpunkt innerhalb einer Teilfläche, wobei die Stichprobenpunktausgabe den kombinierten Auswirkungen der Merkmale entspricht, die durch die Daten identifiziert sind, die im Datenspeichermittel gespeichert sind,
- i. Mittel, um für jedes Pixel innerhalb einer Teilfläche eine Ausgabe zu erzeugen, wobei die Pixelausgabe den kombinierten Auswirkungen der Stichprobenpunktausgaben für alle Stichprobenpunkte entspricht, die zu diesem Pixel beitragen, und
- j. Mittel zum Anzeigen der Pixelausgaben.
- Jede Teilfläche kann eine Mehrzahl von Pixeln überdecken, und innerhalb jeder Teilfläche kann mehr als ein Stichprobenpunkt liegen.
- Bevorzugt ist eine Anordnung paralleler Stichprobenpunktprozessoren vorgesehen, die jeweils ein genanntes Mittel zum Bestimmen der Stichprobenpunktüberdeckung, ein genanntes Mittel zum Bestimmen der Entfernung, ein genanntes Speichermittel und ein genanntes Mittel zum Erzeugen der Stichprobenpunktausgaben umfassen.
- Für jeden Stichprobenpunkt innerhalb einer Teilfläche kann ein Stichprobenpunktprozessor vorgesehen sein.
- Bevorzugt ist eine Anordnung paralleler Pixelprozessoren vorgesehen, die jeweils ein genanntes Mittel zum Erzeugen von Pixelausgaben umfassen, wobei für jedes Pixel innerhalb einer Teilfläche ein Pixelprozessor vorgesehen ist. Bevorzugt wird pro Pixel mehr als ein Stichprobenpunkt bereitgestellt, und bevorzugt empfängt das Mittel zum Erzeugen von Pixelausgaben Eingaben bezüglich jedes Pixels von dem bzw. jedem Stichprobenpunkt, der innerhalb des Pixels liegt, und von dem bzw. jedem Stichprobenpunkt, der innerhalb einer vorgegebenen Fläche liegt, die sich um das Pixel herum erstreckt.
- Bevorzugt umfaßt die Vorrichtung gemäß der vorliegenden Erfindung einen Bilderzeuger zur Verwendung mit einem Bildprojektionssystem, bei dem ein Bild auf eine Anzeigeoberfläche projiziert wird und die Anzeigeoberfläche von einem vorgegebenen Blickpunkt aus durch eine imaginäre Betrachtungsebene mit einer vorgegebenen Fläche betrachtet wird, wobei das Bild als eine Reihe von Rasterabtastzeilen projiziert wird, die sich jeweils aus einer jeweiligen Anzeigepixelzeile zusammensetzen, wobei der Bilderzeuger folgendes umfaßt: eine Modelldatenbank, in der Merkmale des Modells mittels geometrischer Attributdaten, die das Merkmal mit Bezug auf den Welt-Raum definieren, und mittels nichtgeometrischer Attributdaten, die Kennzeichen des Merkmals definieren, beschrieben werden, Mittel zum Bestimmen einer Blickpunktposition im Welt-Raum, von der aus das Modell betrachtet werden soll, Mittel zum Transformieren geometrischer Attributdaten vom Welt-Raum in den Blickpunktraum und Mittel zum Berechnen von Bilddaten, die auf der Anzeigeoberfläche gezeigt werden sollen, aus den transformierten geometrischen Attributdaten und den nichtgeometrischen Attributdaten, wobei die Bilddaten mit dem Erscheinungsbild des Modells vom Blickpunkt aus konsistent sind, wobei das Mittel zum Berechnen der Bilddaten folgendes umfaßt:
- a. Mittel zum Unterteilen der Fläche der Betrachtungsebene in eine Anordnung von Teilflächen, wobei jede Teilfläche durch vier Eckenkoordinaten definiert ist, die so angeordnet sind, daß eine Projektion der Teilfläche auf die Anzeigeoberfläche vom Blickpunkt aus in Gestalt und Fläche einem Teil der Anzeigeoberfläche entspricht, auf die eine vorgegebene jeweilige Gruppe von Pixeln projiziert wird,
- b. Mittel zum Definieren der Position mindestens eines Stichprobenpunktes innerhalb jeder Teilfläche, wobei jede Stichprobenpunktposition mit Bezug auf die Ecken der jeweiligen Teilfläche definiert ist,
- c. Mittel, um aus den transformierten geometrischen Merkmalsattributen und der Position jedes Stichprobenpunktes zu bestimmen, welcher der Stichprobenpunkte von jedem der Merkmale überdeckt wird,
- d. Mittel bezüglich jedes Stichprobenpunktes zum Speichern nichtgeometrischer Attributdaten für mindestens ein Merkmal, das diesen Stichprobenpunkt überdeckt, und
- e. Mittel, um bezüglich jeden Pixels aus den gespeicherten Attributdaten eine Ausgabe an das Bildprojektionssystem zu erzeugen.
- Jede Teilfläche kann geradlinige Kanten aufweisen, und jede Teilfläche kann der Fläche nach einer rechteckigen Anordnung von Pixeln entsprechen, die eine Mehrzahl von Pixelzeilen und Pixelspalten umfaßt.
- Die Vorrichtung gemäß der vorliegenden Erfindung umfaßt bevorzugt folgendes:
- a. Mittel zum Berechnen einer endlichen Fläche im Bildschirmraum, die von jedem Lichtpunktmerkmal des Modells eingenommen werden soll,
- b. Mittel zum Berechnen der Intensität der genannten Lichtpunktmerkmale,
- c. Mittel zum Berechnen einer Transparenz für jedes Lichtpunktmerkmal, das vom im Welt-Raum definierten Blickpunkt aus sichtbar ist, von dem aus das Modell betrachtet wird, wobei die berechnete Transparenz eine Funktion der berechneten Intensität ist, und
- d. Mittel zum Erzeugen von Ausgaben an eine Anzeigeeinrichtung, die für eine endgültige berechnete Intensität des Lichtpunktmerkmals geeignet sind.
- Die Vorrichtung umfaßt bevorzugt folgendes:
- a. Mittel zum Berechnen der Bildschirmraumkoordinaten jedes Lichtpunktes,
- b. Mittel zum Berechnen einer Bildschirmraumfläche für jeden Lichtpunkt als eine Funktion von mindestens der Entfernung im Welt-Raum vom Lichtpunkt zum Blickpunkt,
- c. Mittel zum Berechnen einer Intensität für jeden Lichtpunkt,
- d. Mittel zum Definieren der Bildschirmraumpositionen einer Mehrzahl von Stichprobenpunkten, die über den Anzeigebildschirm verteilt sind,
- e. Mittel, um für jeden Lichtpunkt zu bestimmen, welche der Stichprobenpunkte innerhalb der berechneten Fläche des Lichtpunktes liegen, und
- f. Mittel, um für jeden Lichtpunkt eine Ausgabe an eine Anzeigeeinrichtung zu erzeugen, die für die berechnete Lichtpunktintensität und die bestimmten Stichprobenpunkte, die innerhalb der berechneten Fläche des Lichtpunktes liegen, geeignet ist.
- Die Intensität läßt sich als eine Funktion von mindestens der Entfernung vom Blickpunkt zum Lichtpunkt berechnen. Wenn mindestens eines der Lichtpunktmerkmale kalligraphisch angezeigt werden soll, dann umfaßt die Vorrichtung bevorzugt ferner Mittel, um an jedem Stichprobenpunkt die Dämpfung eines kalligraphischen Lichtpunktes innerhalb der Fläche, in der sich dieser Stichprobenpunkt befindet, zu berechnen, wobei die Dämpfung so berechnet wird, daß ggf. die Anwesenheit eines anderen Merkmals berücksichtigt wird, das den Stichprobenpunkt überdeckt und näher am Blickpunkt liegt als der kalligraphische Lichtpunkt, und Mittel, um für den kalligraphischen Lichtpunkt eine Anzeigeintensität zu berechnen, die eine Funktion der Summe der Dämpfungen des kalligraphischen Lichtpunktes an allen Stichprobenpunkten, die innerhalb der Fläche des kalligraphischen Lichtpunktes liegen, und der dem Lichtpunkt eigenen Intensität ist.
- Die Vorrichtung gemäß der vorliegenden Erfindung umfaßt bevorzugt eine Vorrichtung zum Verteilen der Rechenlast auf einem Teilsystem des Bilderzeugers auf eine Mehrzahl von Prozessoren, die jeweils dazu angepaßt sind, Daten bezüglich einer Teilfläche nach der anderen zu verarbeiten, wobei die Vorrichtung Mittel umfaßt, um Verarbeitungsaufgaben so an die Prozessoren zu verteilen, daß Daten, die unmittelbar benachbarte Teilflächen betreffen, von verschiedenen Prozessoren verarbeitet werden.
- Bevorzugt werden Mittel zum Auslesen von Daten bereitgestellt, die jeweils eine Reihe von Merkmalen beschreiben, die potentiell zu dem Bild, das angezeigt werden soll, beitragen, wobei die Daten, die jedes Merkmal beschreiben, parallel an jeden der Prozessoren ausgelesen werden, und jeder Prozessor umfaßt Mittel zum Auswählen von Bildschirmraumkoordinaten der von diesem Prozessor zu verarbeitenden Teilfläche, Mittel zum Analysieren von Merkmalsdaten, die an den Prozessor ausgelesen wurden, um zu bestimmen, ob das Merkmal zur ausgewählten Teilfläche beiträgt oder nicht, und Mittel zum Ausgeben von Daten, die Merkmale identifizieren, welche zur ausgewählten Teilfläche beitragen.
- Die Vorrichtung gemäß der vorliegenden Erfindung kann eine Vorrichtung zur Abtastumsetzung von Daten umfassen, die eine Mehrzahl von Merkmalen beschreiben, um die Anzeige eines Bildes eines Welt-Raum-Modells zu ermtglichen, das durch diese Merkmale definiert wird, wobei jedes Merkmal eine Begrenzung aufweist, die durch eine Mehrzahl von geraden Kanten definiert ist, und wobei jede Kante durch eine Geradengleichung in Bildschirmraumkoordinaten definiert ist, wobei die Vorrichtung Mittel umfaßt, um den Bildschirm in eine Mehrzahl von Teilflächen zu unterteilen, und Mittel, um die Überdeckung einer beliebigen Teilfläche durch ein beliebiges Merkmal zu analysieren, wobei das Mittel zur Überdeckungsanalyse folgendes umfaßt:
- a. Mittel zum Berechnen der lotrechten Entfernung von einem Bezugspunkt innerhalb der genannten einen Teilfläche zu jeder Kante des genannten einen Merkmals,
- b. Mittel zum Berechnen einer Grenzentfernung von dem Bezugspunkt, wobei die Grenzentfernung eine solche ist, daß dann, wenn eine Merkmalskante eine größere lotrechte Entfernung vom Bezugspunkt aufweist als die Grenzentfernung, diese Kante die Teilfläche nicht durchqueren kann,
- c. Mittel zum Vergleichen der berechneten lotrechten Entfernungen mit der Grenzentfernung und
- d. Mittel zum Beurteilen der Überdeckung der Teilfläche durch ein Merkmal auf der Grundlage einer logischen Kombination der Ergebnisse der Vergleiche der berechneten Entfernungen mit der Grenzentfernung.
- Jede Teilfläche ist bevorzugt rechtwinklig, und es werden Mittel bereitgestellt, um für jede Kante eines Merkmals bezüglich jeder Ecke der Teilfläche eine Grenzentfernung zu berechnen, wobei die Grenzentfernung die lotrechte Entfernung vom Mittelpunkt der Teilfläche zu einer Geraden ist, die parallel zu einer jeweiligen Merkmalskante gezogen wird und durch die jeweilige Teilflächenecke geht.
- Die Vorrichtung gemäß der vorliegenden Erfindung kann ferner eine Vorrichtung zum Verarbeiten von Daten bereitstellen, die das Modell beschreiben, das auf dem Bildschirm gezeigt werden soll, wobei jedes Merkmal des Modells mit Bezug auf geometrische Attribute, welche die Position und die Ausrichtung des Merkmals definieren, und nichtgeometrische Attribute, welche Kennzeichen des Merkmals definieren, beschrieben ist, die folgendes umfaßt:
- a. eine Datenbank, in der Modelldaten in einer hierarchischen Baumstruktur gespeichert sind, die folgendes aufweist: einen Wurzelknoten, welcher der Basis des Baums entspricht, Verzweigungsknoten, die den Verzweigungspunkten des Baums entsprechen, und Blattknoten, die den Enden einzelner Zweige des Baums entsprechen, wobei jeder Knoten des Baums Daten speichert, die ein jeweiliges Objekt beschreiben, wobei Blattknoten mindestens ein Merkmal speichern, das zum jeweiligen Objekt beiträgt, und Wurzel- und Verzweigungsknoten mindestens einen Zeiger zu einem anderen Objekt speichern und wobei Transformationsdaten die relative Position und Ausrichtung des Objekts, auf das gezeigt wird, relativ zu dem Objekt, von dem aus gezeigt wird, definieren, wodurch aufeinanderfolgende Orte in der Baumstruktur Daten speichern, die sich auf schrittweise detailliertere Teile des Modells beziehen,
- b. einen Transformationsprozessor, der eine parallele Anordnung von Objektprozessoren aufweist, und
- c. eine Steuerung zum Auslesen von Daten aus der Datenbank an die Objektprozessoren, so daß Daten, die aus einem Knoten ausgelesen worden sind, an einen Datenprozessor ausgelesen werden,
- und bei der jeder Datenprozessor dazu angepaßt ist, Daten, die aus einem beliebigen Knoten des Baums ausgelesen worden sind, zu empfangen, wobei der Objektprozessor auf ein Auslesen von Zeigerdaten anspricht, indem er die jeweiligen Transformationsdaten in einen gemeinsamen Koordinatenraum transformiert und den Zeiger und die transformierten Daten an die Steuerung zurückgibt, und der Objektprozessor auf ein Auslesen eines Merkmals reagiert, indem er die geometrischen Attribute des Merkmals transformiert und die transformierten Attribute zur weiteren Verarbeitung ausgibt, wobei die Steuerung dazu angepaßt ist, Daten auszulesen, die am Knoten gespeichert sind, welcher der Basis des Baums entspricht, und nachfolgend Daten auszulesen, die an Knoten des Baums gespeichert sind, die durch die Zeiger identifiziert werden, die von den Objektprozessoren an sie zurückgegeben wurden.
- Die Steuerung kann dazu angeordnet sein, Objektdaten an einen Bus auszulesen, mit dem jeder Objektprozessor verbunden ist, wobei Mittel bereitgestellt werden, um anzuzeigen, ob ein Objektprozessor ungenutzt ist und zum Empfang von Objektdaten zur Verarbeitung zur Verfügung steht oder nicht, und es werden Mittel bereitgestellt, um einem ungenutzten Objektprozessor zu ermöglichen, Objektdaten, die auf dem Bus zur Verfügung gestellt werden, zu empfangen, wobei der Ojektprozessor, der die Objektdaten empfängt, anzeigt, daß die Objektdaten zur Verarbeitung empfangen wurden, um zu verhindern, daß die gleichen Objektdaten von anderen Objektprozessoren empfangen werden.
- Weitere Merkmale der Erfindung ergeben sich aus der Beschreibung und aus den Nebenansprüchen, die Teil dieser Patentschrift sind.
- Ein Ausführungsbeispiel der vorliegenden Erfindung wird nun beispielhaft mit Bezug auf die beiliegenden Zeichnungen beschrieben. Es zeigen:
- Fig. 1 eine schematische Darstellung der grundlegenden Konfiguration eines CIG-Systems gemäß der vorliegenden Erfindung;
- Fig. 2 eine schematische Darstellung eines Systemmanagers und eines Transformationswerks, die zur Verwendung in einem System des allgemein in Fig. 1 dargestellten Typs geeignet sind;
- Fig. 3 eine vereinfachte Darstellung einer Datenbank- Baumstruktur;
- Fig. 4 die Art und Weise, in der ein bestimmter Objektsatz in einer Baumstruktur des in Fig. 3 dargestellten Typs aufeinander bezogen ist;
- Fig. 5 ein schematisches Blockdiagramm eines Objektprozessors, der in das Transformationswerk aus Fig. 2 eingebaut ist;
- Fig. 6 den Betrieb des in Fig. 5 dargestellten Objektprozessors;
- Fig. 7 und 8 die Ableitung von Geradengleichungen, die beim Ausführungsbeispiel der vorliegenden Erfindung dazu verwendet werden, die Position von Merkmalen im Bildschirmraum zu beurteilen;
- Fig. 9 die Beziehung zwischen verschiedenen Teilflächen des Bildschirmraums beim Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 10 eine Abtastumsetzer- und Speicheranordnung des auf allgemeinere Weise mit Bezug auf Fig. 2 beschriebenen Typs;
- Fig. 11 die funktionale Struktur des Speichers aus Fig. 10;
- Fig. 12 die relative Lage der Begrenzungen von Teilflächen des Bildschirmraums relativ zu einem Begrenzungskasten für ein Merkmal;
- Fig. 13 die Verarbeitung von Kantengleichungen im Abtastumsetzer;
- Fig. 14 eine schematische Darstellung grundlegender Komponenten des Bildaufbereitungswerks, das skizzenhaft mit Bezug auf Fig. 1 beschrieben ist;
- Fig. 15 bis 18 die Verarbeitung von Kantengleichungen in einem Vorsortierer, der eine Komponente des Bildaufbereitungswerks ist;
- Fig. 19 ein Ablaufdiagramm, das die Verarbeitung von Kantengleichungen im Vorsortierer zeigt;
- Fig. 20 den Betrieb des Vorsortierers beim Bestimmen, welche der Merkmale verdeckt sind;
- Fig. 21 eine schematische Darstellung der Struktur eines Vorsortierer-Prozessors;
- Fig. 22 die Verteilung von Verarbeitungsaufgaben im Vorsortierer;
- Fig. 23 die Verteilung von Stichprobenpunkten relativ zu einem einzelnen Pixel der endgültigen Anzeige;
- Fig. 24 eine einfache Darstellung der Struktur des Spezialeffektmoduls aus Fig. 14;
- Fig. 25 eine vereinfachte Darstellung der Struktur des Farbmischers aus Fig. 14;
- Fig. 26 ein schematisches Blockdiagramm eines Nachsortierers, der die Ausgabe des oben erwähnten Vorsortierers empfängt;
- Fig. 27 ein Ablaufdiagramm, das den Betrieb des Nachsortierers darstellt;
- Fig. 28 die Art und Weise, in der die Wirkung eines Polygons auf einen Stichprobenpunkt beurteilt wird;
- Fig. 29 die Beziehung zwischen der Entfernung eines Lichtpunktes vom Blickpunkt und der Lichtpunktgröße und -intensität;
- Fig. 30 die Beurteilung der Lichtpunktwirkung auf einen Stichprobenpunkt;
- Fig. 31 die Berechnung der Entfernung vom Blickpunkt für einen Punkt auf einem polygonalen Merkmal;
- Fig. 32 die Struktur des Lichtpunktspeichers, der kurz mit Bezug auf Fig. 14 erwähnt wird; und
- Fig. 33 Techniken, die dazu verwendet werden, die Folgen einer Verzerrung in einer Anzeigeeinrichtung zu überwinden.
- Es wird zunächst auf Fig. 1 Bezug genommen, in der die grundlegenden Funktionskomponenten eines Ausführungsbeispiels der vorliegenden Erfindung dargestellt sind, das zur Verwendung in einem Flugsimulator ausgelegt ist. Der Simulator umfaßt einen Hauptrechner 1, der Ausgaben bereitstellt, die der Position und der Fluglage des simulierten Luftfahrzeugs relativ zu einem Welt-Raum-Modell der Erdoberfläche entsprechen. Für eine/n Beobachter/in im simulierten Luftfahrzeug soll ein Bild dargestellt werden, das das Erscheinungsbild der modellierten Oberfläche repräsentiert. Beim beschriebenen Ausführungsbeispiel wird das Bild auf einen Rückproschirm projiziert. Der/die Beobachter/in sieht eine Reflexion des Rückproschirms in einem großen sphäroidischen Spiegel. Es versteht sich jedoch, daß alternative Anzeigesysteme verwendet werden können. Ein Systemmanager (SM) 2 empfängt die Ausgaben des Hauptrechners 1, die die Position und die Fluglage des Luftfahrzeugs beschreiben, und lädt von einer Datenbank Daten herunter, die das Modell beschreiben und denjenigen Teilen des Modells entsprechen, die in Anbetracht der Position und der Fluglage des simulierten Luftfahrzeugs vom Blickpunkt des/der Beobachters/in aus potentiell sichtbar sind. Das Bild wird als eine Mehrzahl von Raster-Abtastzeilen und eine Mehrzahl kalligraphischer Lichtpunkte projiziert, die am Ende jeder Rasterabtastung dem Bildraster überlagert werden. Es versteht sich, daß auch ein funktionsfähiges System bereitgestellt werden könnte, das zur Anzeige kalligraphischer Lichtpunkte nicht in der Lage wäre.
- Die das Modell beschreibenden Daten werden während der Modellerstellung vorgegeben, beschreiben aber Merkmale der Modellszenerie, zum Beispiel Start- und Landebahnen, Gebäude und Wiesen, in Ausdrücken, die sich auf einen Satz von Welt- Raum-Koordinaten mit vorgegebenem Ursprung beziehen. Wie untenstehend ausführlicher beschrieben ist, umfassen die Merkmale geradseitige Polygone und elliptische bzw. kreisförmige Oberflächen (im Bildschirmraum). Rasterlichtpunkte werden als Teil des normalen Raster- Abtastvorgangs als Bildschirmraumellipsen bzw. -kreise angezeigt, und kalligraphische Lichtpunkte sind im Bildschirmraum kreisförmig. Die das Modell beschreibenden Daten sind hierarchisch so geordnet, daß individuelle Merkmale des Modells mit Bezug auf Objekte definiert sind, von denen sie ein Bestandteil sind, und diese Objekte sind ihrerseits mit Bezug auf andere Objekte im Modell definiert.
- Die herausgenommenen modellbeschreibenden Daten werden zu einem Transformationswerk (TW) 3 geführt, das zwei Hauptfunktionen erfüllt, nämlich eine geometrische Transformation der Merkmalsdaten des Modells aus dem Koordinatensystem der Datenbank bzw. aus dem Welt-Raum- Koordinatensystem in das Koordinatensystem des/der Beobachters/in bzw. in das Blickpunkt-Koordinatensystem und eine perspektivische Transformation vom 3-D-Blickpunkt- Koordinatensystem in ein 2-D-Bildschirmraum-Koordinatensystem. Die zur Erzielung solcher Transformationen verwendeten Techniken sind wohlbekannt und werden dementsprechend hier nicht im Detail erlutert.
- Das TW 3 liefert einen Strom modellbeschreibender Daten in Bildschirmkoordinaten an ein Bildaufbereitungswerk (BW) 4. Das BW 4 führt eine Reihe von Funktionen aus, wobei es geometrische Attributdaten (z.B. Größe und Position) von Merkmalen des Modells und nichtgeometrische Attributdaten von Merkmalen des Modells (zum Beispiel Farbe, Transparenz) verwendet, die vom TW 3 empfangen werden, um für jedes Pixel im darzustellenden Bild eine, endgültige Farbe zu erzeugen. Daten, die die nichtgeometrischen Attributdaten repräsentieren, werden in einen Bildspeicher im BW 4 geladen, wobei der Bildspeicher eine Speicheradresse in bezug auf jedes Pixel in der endgültigen Anzeige aufweist. Der Inhalt des Bildspeichers wird zu einer Anzeigeeinrichtung 5 heruntergeladen, die das endgültige Bild produziert. Es sollte angemerkt werden, daß der Bildspeicher ein vollständiges Bild für eine Anzeigeeinrichtung ohne Zeilensprung oder ein Halbbild für eine Anzeigeeinrichtung mit Zeilensprung enthalten kann.
- Es sollte angemerkt werden, daß das System vier Hauptpipelinestufen aufweist, so daß, während ein Einzelbild dargestellt wird, das als nächstes darzustellende Einzelbild im BW 4 aufbereitet wird, das als übernächstes darzustellende Einzelbild im TW 3 verarbeitet wird, und das als überübernächstes darzustellende Einzelbild im SM 2 verarbeitet wird. Jede Stufe ist von der bzw. von jeder angrenzenden Stufe durch einen doppelt gepufferten Speicher getrennt. Ein 'Einzelbild-Austauschsignal' wird erzeugt, um alle doppelt gepufferten Speicher zu einem Austausch im Gleichtakt zu veranlassen. Daten, die ein bestimmtes Einzelbild betreffen, werden somit mittels des Einzelbild-Austauschsignals effektiv durch die Pipeline 'getaktet'.
- Fig. 2 ist eine detailliertere Darstellung des SM 2 und des TW 3 aus Fig. 1. Der SM 2 ist im wesentlichen von üblicher Art und umfaßt einen VME-Datenbus 6, der die verschiedenen Module, die innerhalb dieses Teilsystems enthalten sind, verbindet. Zu diesen gehören ein Speicher 7 der zur Verfügung stehenden Datenbank, eine Hauptschnittstelle 8, die eine bidirektionale Kommunikation mit dem Hauptrechner bereitstellt, eine Universalschnittstelle 9, die über Befehls- und Statusleitungen eine bidirektionale Kommunikation mit dem TW und dem BW bereitstellt und dazu in der Lage ist, Datenbankinformationen an das Transformationswerk zu senden, eine Anordnung von Zentralprozessoren 10, die alle nötigen Rechenaufgaben des Systemmanagers ausführen, und ein aktiver Speicher 11 der Datenbank (ADB), der eine Teilmenge der zur Verfügung stehenden Datenbank speichert, die eine Fläche überdeckt, welche um den augenblicklichen Blickpunkt des/der Beobachters/in zentriert ist und sich bis auf die zutreffende Sichtweite um 360º um den Blickpunkt des/der Beobachters/in erstreckt.
- Der SM 2 führt eine Reihe üblicher Funktionen aus, darunter die folgenden:
- Der Bilderzeuger ist über eine Ethernet-Verbindung mit dem Hauptsimulatorrechner verbunden. Das ermöglicht die gemeinsame Vernetzung mehrerer Simulatoren und/oder mehrerer Bilderzeuger. Die Kommunikation zwischen dem Hauptsimulator und dem Bilderzeuger ist beidseitig. Der Hauptrechner sendet die Daten, welche die Position und die Ausrichtung aller vom Hauptrechner gesteuerten bewegten Fahrzeuge definieren (von denen das simulierte Luftfahrzeug, bzw. das Hauptfahrzeug, eins ist), zuzüglich Daten, die zum Beispiel den Beleuchtungszustand des Flugplatzes, die Wetterbedingungen etc. definieren. Der Bilderzeuger sendet Daten, welche die Höhe über dem Terrain, Zusammenstöße und den Zustand verschiedener Objekte (wie zum Beispiel dynamischer Objekte) in der Szene definieren, zurück an den Hauptrechner.
- Die tatsächlichen Daten, die zu einem beliebigen gegebenen Zeitpunkt im Speicher der Datenbank vorhanden sind (die aktive Datenbank ADB), werden dauernd aktualisiert, während der Blickpunkt sich über die modellierte Welt bewegt, indem neue Daten von der Platte heruntergeladen werden und Daten, die nicht mehr benötigt werden, ausgeschlossen werden, so daß die ADB alle Datenbankobjekte enthält, die zu einem beliebigen gegebenen Zeitpunkt in Sichtweite liegen, zuzüglich ggf. vorhandener 'Bibliotheks'-Objekte, das heißt Objekte, die sich relativ zur modellierten Welt bewegen und daher an jedem Blickpunkt einem Zugriff zugänglich sein müssen.
- Der Systemmanager steuert den Gesamtzeitablauf des Bilderzeugers und ist dafür zuständig, eine regelmäßige und optimale Sildfrequenz aufrechtzuerhalten. Um bei dieser Aufgabe zu helfen, werden von den verschiedenen Teilen des TW und des BW Zeitablaufsignale empfangen und (unter Verwendung einer Detailliertheitsgrad-Umschaltung, wie untenstehend kurz beschrieben) dazu verwendet, den augenblicklichen Szeneninhalt zu steuern und geeignete Maßnahmen zu ergreifen, wenn die Einzelbildzeit ihren optimalen Wert überschreitet (Überlaststeuerung). Ferner werden statistische Informationen gesammelt, die den Datendurchsatz und die Verarbeitungszeit betreffen und die dem/der Benutzer/in zur Auswertung der Leistungsfähigkeit des Systems unter verschiedenen Bedingungen (z.B. mit verschiedenen Modellen, verschiedenen TW- Konfigurationen etc.) zur Verfügung stehen.
- Die Datenbank ist dazu in der Lage, verschiedene Versionen von Objekten zu speichern, die verschiedene Detailliertheitsgrade enthalten; das TW bestimmt den korrekten Detailliertheitsgrad der Darstellung des Objekts, abhängig davon, wie weit es vom Blickpunkt entfernt ist. Das TW unternimmt nichts, um den Detailliertheitsgrad zu ändern, wenn der aktuell gezeigte Detailliertheitsgrad falsch ist; es informiert lediglich den SM, daß er den Detailliertheitsgrad ändern muß, woraufhin der SM das Überblenden von einem Detailliertheitsgrad zu einem anderen koordiniert.
- Die Überlaststeuerung versucht, die Einzelbildzeit zu verringern, indem sie den Gesamtgehalt modellierter Merkmale von Objekten verringert. Sie erreicht dies erstens dadurch, daß unnötige Details (wie zum Beispiel Verzierungen) von entfernten Objekten entfernt werden, ferner zweitens dadurch, daß die Darstellung von Objekten auf einen künstlich geringen Detailliertheitsgrad geschaltet wird, wenn noch weitere Maßnahmen erforderlich sind, um eine gewünschte Einzelbildzeit zu erzielen. Die Überlaststeuerung kommt nur zum Einsatz, wenn das Volumen der zu verarbeitenden Daten so groß ist, daß die Aufgabe nicht innerhalb einer vorgegebenen maximal akzeptablen Einzelbildzeit bewältigt werden kann.
- Die Steuerung des Detailliertheitsgrades ist eine im Gebiet der Flugsimulatoren wohlbekannte Technik und wird hier nicht näher beschrieben.
- Daten, die vom Hauptsimulatorrechner oder von einem lokalen Endgerät empfangen werden und die die Umgebung beschreiben, werden verarbeitet, um die entsprechenden Informationen zur Erzeugung von Wettereffekten, Landelichtkegeln etc. an das TW und das BW zu senden. Diese Daten umfassen die Wolkenhöhe, Sichtverhältnisse, Nebeldichte, Landelichtzustand und -strahlenrichtung, Tageszeit (mit der das umgebende Lichtniveau geregelt wird), und Niederschlagszentren und Zunahme-/Abnahmeraten zur Korrelierung mit dem Wetterradar.
- Der Systemmanager ist dafür zuständig, Daten zu sortieren, die vom TW zurückgesendet werden und die Wechselwirkungen zwischen Objekten in der aktiven Datenbank beschreiben. Diese Daten werden gefiltert und, je nach Bedarf, an den Hauptrechner zurückgesendet. Die Daten werden zur Berechnung der Höhe über dem Terrain, der Erfassung von Zusammenstößen, der Weitenfindung etc. verwendet.
- Typischerweise sind drei vom Bilderzeuger angesteuerte Kanäle vorhanden, die jeweils ihr eigenes TW, BW und Anzeigegerät besitzen. Es sind jedoch auch andere Konfigurationen möglich, z.B. ein Einkanalsystem oder ein System, bei dem zum Beispiel drei Teilkanäle von einem Bilderzeuger angesteuert werden. Solche Variationen der Konfiguration sind jedoch für die vorliegende Erfindung ohne Belang, und daher wird nur ein Kanal beschrieben.
- Es wird nun ausführlich auf das TW 3 Bezug genommen. Während der SM 2 die benötigten Daten in der ADB zusammenstellt, verarbeitet das TW 3 Daten, die zuvor aus dem SM 2 in eine kanalaktive Datenbank (KADB) 12 ausgelesen wurden. Die KADB 12 umfaßt einen Speicher 13 und eine Steuerlogik 14, die das Auslesen von Daten vom Speicher zu einer Anordnung von Objektprozessoren 15 steuert, die ihrerseits Steuereingaben an die Steuerlogik 14 liefert. Der Speicher 13 enthält die gesamte aktive Datenbank, und die Steuerlogik 14 wählt kanalspezifische Objektdaten zur Verarbeitung aus. Die Objektprozessoranordnung 15 umfaßt individuelle Objektprozessoren 16, die in Gruppen auf jeweiligen Platinen 17 angeordnet sind. Diese Prozessoren bilden das Hauptrechenelement des TW 3. Es versteht sich, daß so viele Prozessoren wie nötig bereitgestellt werden können, um die gewünschte Leistungsfähigkeit des Systems zu erreichen.
- Eine gemeinsame Ausgabe 18 der Objektprozessoranordnung 15 wird an einen Abtastumsetzer 19 geliefert, der eine Logikeinheit 20 umfaßt, die eine Ausgabe an einen Abtastumsetzerspeicher 21 liefert. Ein Attributspeicher 22 empfängt Eingaben über den Abtastumsetzer 19. Ein Teil der Dateneingabe in den Speicher 22 braucht in den Objektprozessoren nicht transformiert werden. Beschaffenheitskarten sind ein Beispiel für solche Daten. Solche Daten werden einfach direkt durch die Objektprozessoren und den Abtastumsetzer geleitet.
- Es wird nun auf Figur 3 Bezug genommen, in der schematisch eine vereinfachte Datenbank-'Baum'-Struktur dargestellt ist. Die Baumstruktur stellt die Art und Weise dar, auf die Daten der Merkmale des Modells gespeichert werden, so daß eine effiziente Wiedergewinnung von Daten, die ein bestimmtes Einzelbild betreffen, ermöglicht wird. Das Welt-Raum-Modell wird als aus einer Reihe von 'Objekten' zusammengesetzt angesehen. Objekte sind mittels der Baumstruktur so verbunden, daß sich jedes Objekt an einem jeweiligen Knoten des Baums befindet. Die Baumstruktur weist einen Wurzelknoten (Objekt 01 in Figur 3), Verzweigungsknoten (die Objekte 02 bis 06 in Figur 3) und Blattknoten auf (die Objekte 07 bis 09 in Figur 3). Der Wurzelknoten und jeder Verzweigungsknoten umfassen mindestens einen Zeiger zu einem damit verbundenen Knoten. In dem in Figur 3 dargestellten vereinfachten Fall speichert das Objekt 02 Zeiger zu den Objekten 04 bis 05, und das Objekt. 04 speichert Zeiger zu den Objekten 06 bis 08. Einzelne Merkmale, z.B. Polygone und Lichtpunkte, sind über die gesamte Baumstruktur verteilt. Jeder Blattknoten umfaßt zum Beispiel mindestens ein Merkmal, und die Basis- und Verzweigungsknoten können jeweils ein oder mehrere Merkmale umfassen. Aufeinanderfolgende Objekte im Baum speichern somit Daten, die schrittweise detailliertere Teile des Welt-Raum-Modells betreffen. In Figur 3 könnte das Objekt 01 zum Beispiel ein bestimmtes geographisches Gebiet darstellen, die Objekte 02 und 03 jeweilige Abschnitte dieses Gebiets, die Objekte 04 Daten, die zum Beispiel einen Flugplatz innerhalb des Gebiets des Objekts 02 beschreiben, und so weiter.
- Jedes Objekt kann so viele Daten speichern, wie von einem Objektprozessor in einem einzigen Zyklus dieses Objektprozessors verarbeitet werden können. Bei einer Realisierung können in jedem Objekt bis zu vierzig Merkmale (z.B. Polygone, Lichtpunkte) gespeichert werden. Die Wurzelknoten und die Verzweigungsknoten speichern ferner Zeiger auf andere Objekte, wobei die Gesamtheit von Merkmalen und Zeigern auf ein Niveau begrenzt ist, das eine Überlastung irgendeines der Objektprozessoren verhindert. Die Merkmale und Zeiger innerhalb jedes Objekts sind mit Bezug auf den 'Objektraum' definiert, das heißt ein Koordinatensystem, das mittels Translation und Rotation vom Welt-Raum- Koordinatensystem transformiert wird. Jeder Zeiger umfaßt daher nicht nur die Identität des Objekts, auf das gezeigt wird, sondern auch Daten, die die entsprechende Translation und Rotation liefern, die zur Transformierung des Objektraums des Objekts, auf das gezeigt wird, in den Objektraum des Objekts, von dem aus gezeigt wird, nötig sind. Das Wurzelknotenobjekt ist direkt auf den Welt-Raum bezogen, und jedes andere Objekt ist über die Verkettung von Translationen und Rotationen, die es durch den Objektbaum mit dem Wurzelknoten verbinden, indirekt auf den Welt-Raum bezogen. Jedes Objekt läßt sich daher als mit Bezug auf einen gemeinsamen Koordinatenraum, das heißt den Welt-Raum, definiert auffassen, obgleich die Merkmale und Zeiger innerhalb jedes Objekts mit Bezug auf den Objektraum dieses Objekts definiert sind.
- Figur 4 stellt beispielhaft einen möglichen Objektbaum dar, der einen Flugplatz beschreibt. Es versteht sich, daß ein solcher Objektbaum nur einen kleinen Teil eines vollständigen Modells bildet, und daher wird das vereinfachte Modell aus Figur 4 lediglich zu Veranschaulichungszwecken präsentiert.
- In Figur 4 sind die folgenden zehn Objekte gezeigt:
- 1. Ein 'Flugplatz'-Objekt, das Merkmale, wie zum Beispiel Bodenpolygone und auf den Bodenpolygonen positionierte Lichtpunkte, und Zeiger zu anderen Objekten speichert;
- 2. Ein 'Fahrzeug'-Objekt, das Merkmale speichert, die ein Fahrzeug definieren, das sich relativ zum Flugplatz bewegen kann;
- 3. Ein 'Start- und Landebahn'-Objekt, das Polygonmerkmale speichert, welche die Oberfläche der Start- und Landebahn, Markierungen auf dieser Oberfläche und Lichtpunkte definieren;
- 4. Ein 'Rollfeld'-Objekt, das Polygonmerkmale und Lichtpunktmerkmale speichert, die das Rollfeld des Flugplatzes definieren;
- 5. Ein 'Terminal-Gebiet'-Objekt, das keine Merkmale speichert, sondern Zeiger zu anderen Objekten;
- 6. Zwei 'Gebäude'-Objekte (Gebäude 1 und Gebäude 2). Gebäude 1 speichert Polygonmerkmale und Zeiger zu anderen Objekten. Gebäude 2 speichert Merkmale, die ein einziges Gebäude beschreiben, von dem identische Versionen an Stellen erscheinen, die durch die beiden Zeiger vom Terminal-Gebiet- Objekt zum Gebäude-2-Objekt definiert sind;
- 7. Drei Objekte (A; B und C), die jeweilige Merkmalsgruppen speichern, die zusammen das Gebäude-1-Objekt ausmachen.
- Der 'Baum' aus Figur 4 wird von dem in Figur 2 dargestellten TW durchlaufen. Die Steuerlogik 14 liest das erste relevante Objekt aus (Flugplatz), welches von einem ersten Objektprozessor empfangen wird. Dieser Objektprozessor leitet dann die Steuerlogik 14 dazu an, Daten von den Objekten der nächsten Stufe im Baum (Fahrzeug, Start- und Landebahn etc.) in unbelegte Objektprozessoren auszulesen. Der Zyklus wird wiederholt und schreitet so durch den Baum fort, bis Daten von allen relevanten Objekten in die Prozessoren eingelesen worden sind. Die Verarbeitung schreitet somit entlang jedem Zweig des Baums gleichzeitig voran, und als Folge davon wird die Verarbeitungszeit minimiert.
- Figur 5 ist eine detailliertere Darstellung des Objektprozessors, und Figur 6 ist eine Darstellung der Verteilung von Verarbeitungsaufgaben im Fall des einfachen in Figur 4 beschriebenen Beispiels. In Figur 5 sind die n Objektprozessoren 16 einer Gruppe 17 als OP1, OP2 ... OPn gekennzeichnet. Die Prozessoren sind in Parallelschaltung mit drei FIFO-Schaltkreisen 23, 24 und 25 verbunden, die ihrerseits an die KADB 12 und den Abtastumsetzer 19 (Figur 2) angeschlossen sind. Eine lokale Steuerung 26 steuert den Betrieb der n Prozessoren, und die Steuerlogik 14 steuert die Verteilung von Daten von der KADB an die Prozessoren, wobei die Daten über das FIFO 23 in die Objektprozessoren eingegeben werden. Das FIFO 24 gibt Eingaben an die Steuerlogik 14 zurück, und das FIFO 25 leitet verarbeitete Merkmalsdaten an den Abtastumsetzer 19.
- Die Prozessorgruppen 17 sind über einen Parallelbus mit der KADB 12 verbunden. Vom Speicher 13 werden Daten auf den Bus ausgelesen. Wenn eine Prozessorgruppe 17 mindestens einen ungenutzten Prozessor aufweist, dann ist diese Gruppe dazu in der Lage, Objektdaten zur Verarbeitung zu empfangen. Die Gruppen werden eine nach der anderen adressiert, wobei jede Gruppe während eines jeweiligen Zeitabschnitts adressiert wird. Wenn bei der Adressierung einer Gruppe das FIFO 23 dieser Gruppe leer ist und einer der Prozessoren der Gruppe ungenutzt ist, dann werden Objektdaten über den Bus in das FIFO 23 ausgelesen. Ein Signal auf dem Bus zeigt an, daß die Objektdaten zur Verarbeitung empfangen wurden, wobei das Signal verhindert, daß die gleichen Objektdaten irgendeinem anderen Prozessor zugeordnet werden, und ermöglicht, daß ein weiteres Objektdatenpaket auf den Bus ausgelesen wird.
- Innerhalb jeder Gruppe 17 werden Objektdaten auf eine analoge Weise zur Verteilung von Objektdaten von der KADB an die Prozessorgruppen verteilt, das heißt, die Objektprozessoren werden einer nach dem anderen adressiert, und wenn ein Objektprozessor ungenutzt ist, wenn er adressiert wird, dann empfängt dieser Prozessor das zu diesem Zeitpunkt zur Verfügung stehende Objektdatenpaket. Auf diese Weise werden Objektdaten auf effiziente Weise verteilt. Diese Effizienz kann weiter gesteigert werden, wenn einer Prozessorgruppe, die gänzlich ungenutzt ist, beim Empfang von Objektdaten ggf. Priorität eingeräumt wird.
- Jeder Objektprozessor enthält einen Mikroprozessor, 128 KByte RAM und eine direkte Speicherzugriffssteuerung. Der RAM ist dazu ausgelegt, Objektdaten, ein Baum-'Begeh'-Programm, das im Betrieb ist, wenn der Baum begangen wird, um relevante Daten zu identifizieren, und ein Merkmals- Transformationsprogramm zu speichern. Der Prozessor arbeitet zunächst im Baumbegehmodus und dann im Transformationsmodus.
- Im Baumbegehmodus sieht sich jeder Objektprozessor die Zeigerdaten des Objekts an, das er gerade bearbeitet. Zu diesen Daten gehören für jeden Zeiger die 'Größe' des Objekts, auf das gezeigt wird, (das heißt der Radius einer Kugel, die um den Objektmittelpunkt zentriert ist und das ganze Objekt einschließt) und die 'Position' des Objekts, auf das gezeigt wird, das heißt die Translation und Rotation, die dazu nötig sind, das Objekt, auf das gezeigt wird, von seinem eigenen Objektraum in den des Objekts, von dem gezeigt wird, zu überführen. Der Objektprozessor entscheidet mit Bezug auf die Zeigerdaten und die aktuelle Blickpunktposition und Blickrichtung, welche der Objekte, auf die gezeigt wird, potentiell innerhalb der Sichtweite und innerhalb des Sichtfeldes liegen. Objekte außerhalb des Sichtfeldes werden nicht weiter verarbeitet. Zeiger auf Objekte innerhalb des Sichtfeldes werden an die KADB 12 zurückgegeben, und die Objekte, auf die gezeigt wird, werden dann von der Steuerlogik 14 an ungenutzte Prozessoren ausgelesen, wobei jeder ungenutzte Prozessor ein jeweiliges Objekt empfängt.
- Im Transformationsmodus bearbeitet jeder Objektprozessor die Merkmale (und nicht die Zeiger), die in dem Objekt, das er gerade verarbeitet, gespeichert sind. Für jedes Merkmal führt der Prozessor die notwendigen geometrischen Transformationen aus, so daß die Ausgabe, die an das FIFO 25 geliefert wird, ein Strom von Merkmalsdaten (z.B. Polygon- oder Lichtpunktdaten) ist, die für eine nachfolgende Verarbeitung mit Bezug auf Koordinaten, die auf den Bildschirm bezogen sind, geeignet sind. Auf diese Weise transformieren die Objektprozessoren den Inhalt der aktiven Datenbank von einem in Baumstruktur angelegten Satz von Modellen, die jeweils ihr eigenes Koordinatenfeld aufweisen, in eine Form, in der alle Zeichenelemente in jedem Modell in den Bildschirmraum transformiert worden sind. Die verwendeten Transformationsalgorithmen sind üblicher Art und werden hierin nicht näher beschrieben; die Berechnung von Merkmalsattributen, die für den Betrieb des Abtastumsetzers von besonderer Bedeutung sind, wird jedoch untenstehend beschrieben.
- Figur 6 zeigt eine 'Baumbegeh'-Abfolge, die für das einfache in Figur 4 dargestellte Beispiel geeignet ist. Vorausgesetzt, daß die Blickposition eine solche ist, daß der ganze Flugplatz innerhalb der Sichtweite und innerhalb des Sichtfeldes liegt, werden zu Beginn eines Einzelbildes die Merkmalsdaten und die Zeigerdaten des Wurzelknotens (Flugplatz) an den Prozessor OP1 ausgegeben. OP1 wählt die Zeiger aus dem Objekt aus, führt die notwendigen Transformationen durch und gibt die ausgewählten Zeiger an die Steuerlogik 14 zurück. Die vier Objekte, auf die gezeigt wird, werden dann an die Prozessoren OP2 bis OP5 ausgegeben. OP1 transformiert dann die Objektmerkmale des Flugplatzes in den Bildschirmraum und gibt die transformierten Merkmalsattribute an den Abtastumsetzer 19 aus. OP1 steht dann für eine weitere Verarbeitungsaufgabe zur Verfügung.
- Die Prozessoren OP2 bis OP4 empfangen Objekte ohne Zeiger und führen daher die notwendigen Transformationen der Objektmerkmale aus und geben die transformierten Merkmalsattribute an den Abtastumsetzer 19 aus. Das an OP5 gelieferte Objekt speichert keine Merkmale, speichert aber drei Zeiger auf zwei andere Objekte. Diese Zeiger werden verarbeitet und an die Steuerlogik 14 zurückgegeben. Da die zwei Objekte angesichts der Tatsache, daß der ganze Flugplatz innerhalb des Sichtfeldes liegt, innerhalb des Sichtfeldes liegen müssen, werden die entsprechenden Objektdaten an die Prozessoren OP6, OP7 und OP8 ausgelesen. Die Verarbeitung fährt auf diese Weise unter Verwendung der Prozessoren OP9 bis OP11 fort, bis alle Objekte verarbeitet worden sind. Es ist ersichtlich, daß das 'Gebäude-2'-Objekt zweimal verarbeitet wird. Das liegt daran, daß zweimal auf das 'Gebäude-2'-Objekt gezeigt wird, was anzeigt, daß dieses Objekt an zwei verschiedenen Positionen im Welt-Raum-Modell erscheint.
- Die Prozessoren bearbeiten somit Daten, die auf eine hochgradig effiziente Art und Weise verteilt werden, parallel. Die Prozessoren können die Transformationsaufgabe angehen, sobald Merkmalsdaten an einen Prozessor geliefert werden. Das tritt fast augenblicklich ein, wenn der Wurzelknoten nicht nur Zeigerdaten, sondern auch Merkmalsdaten speichert. Objektprozessoren nach dem Stand der Technik benötigen typischerweise vier Millisekunden, um Merkmalsdaten zu sortieren, bevor Transformationen beginnen können. Bei einem typischen Einzelbildintervall von sechzehn Millisekunden bedeutet das, daß im Fall der vorliegenden Erfindung ein sehr kleiner Teil eines Einzelbildintervalls Totzeit ist, im Gegensatz zu einer Totzeit von einem Viertel eines Einzelbildintervalls bei Vorrichtungen nach dem Stand der Technik.
- In Figur 6 ist vorausgesetzt, daß alle Verarbeitungsaufgaben gleich viel Zeit benötigen und daß Aufgaben an die Prozessoren in der Reihenfolge OP1, OP2, OP3 etc. verteilt werden. In der Praxis muß das nicht der Fall sein, da anderenfalls die Kommunikationsbuszuteilung der ersten Prozessorgruppe den Betrieb verlangsamen würde, während andere Prozessorgruppen ungenutzt sind. Angesichts dieses Umstands kann die Verteilung von Aufgaben wie oben beschrieben so verwaltet werden, daß zum Beispiel das erste vom Baum ausgelesene Objekt an OP14 aus Gruppe 3 gehen könnte, das zweite Objekt an OP6 aus Gruppe 7 gehen könnte und so weiter. Die Verarbeitung von Daten wird somit gleichmäßig und auf zufälliger Grundlage zwischen den Gruppen verteilt.
- Zwar wäre, wie oben erwähnt, der Objektbaum bei einem realen System viel komplexer als der in Figur 4 dargestellte, jedoch beeinflußt der Komplexitätsgrad die grundsätzliche Beziehung zwischen verbundenen Objekten nicht. Daher kann das Welt-Raum-Modell selbst bei komplexen Objektbäumen auf eine sehr flexible Weise organisiert werden, was die Herstellung der Modelldatenbank relativ einfach macht. Das ist von grundlegender Bedeutung, da die Herstellung von Welt-Raum- Modellen ein wesentlicher Gemeinkostenfaktor ist, der zu den Kosten jedes Simulators beiträgt.
- Zusätzlich zu einer Rotationsmatrix und einem Translationsvektor, die zusammen die Transformation eines Objekts vom Objektraum in den Blickpunktraum ermöglichen, umfassen Objekte ferner Daten, die folgendes umfassen:
- A. Einen Detail liertheitsgrad-Überblendfaktor (DGÜ- Faktor), der auf das Objekt anzuwenden ist. Der DGÜ-Faktor wird vom Systemmanager 2 (Figur 2) bestimmt, und zwar ansprechend auf Daten, die von der KADB 12 an den SM 2 zurückgegeben werden. Dieser Datenfluß ist durch den in Figur 2 gezeigten Rückgabeweg zwischen der KADB 12 und dem SM 2 angedeutet.
- B. Eine Kanalidentität (unter der Annahme eines Multikanalsystems), die vom Objektprozessor dazu verwendet wird, auf zugehörige Umgebungsdaten zuzugreifen.
- C. Eine Aufgabennummer für die Zeichnungsreihenfolge von Lichtpunkten, die dazu verwendet wird, allen kalligraphischen Lichtpunkten im Objekt eine Zeichnungsprioritätennummer zuzuordnen. Das hält eine effiziente Zeichnungsreihenfolge zur Steuerung der Projektion kalligraphischer Lichtpunkte aufrecht.
- Objekte sind somit Datenblöcke, die Merkmale wie zum Beispiel Polygone und Lichtpunkte definieren, zusammen mit ihrer Position und Ausrichtung im Raum, und wahlweise Zeiger zu anderen Objekten. Jedes Objekt ist in sich abgeschlossen und teilt keine Daten mit anderen Objekten. Innerhalb eines Objekts wird jedoch maximaler Gebrauch von geteilten Daten gemacht. Polygone enthalten zum Beispiel keine eigentlichen Scheitelpunktkoordinaten, sondern einfach Zeiger auf Einträge in einem Scheitelpunktblock. Das hat zwei Vorteile. In der KADB und in den Prozessoren wird weniger Speicherplatz benötigt, und viele Merkmalsattribute brauchen nur einmal verarbeitet werden, da die Ergebnisse gespeichert werden können. Das ist zum Beispiel dann wichtig, wenn sich zwei Merkmale die gleichen Scheitelpunkte teilen.
- Bei der Bearbeitung von Objekten statt individueller Merkmale, die zu Objekten beitragen, entscheidet somit jeder Objektprozessor zunächst, ob ein Objekt, auf das gezeigt wird, innerhalb der Sichtweite liegt, und dann, ob ein innerhalb der Sichtweite liegendes Objekt innerhalb des Sichtfeldes liegt. Einzelne Merkmale, die zu Objekten beitragen, die diese beiden Tests bestehen, werden dann transformiert und zur weiteren Verarbeitung an den Abtastumsetzer geleitet.
- Jedes Objekt, das zu weit weg ist, um vom Blickpunkt aus gesehen zu werden, wird aussortiert, das heißt, es erfolgt keine Anforderung, das Objekt zu verarbeiten. Die Weitenaussortierung wird ausgeführt, indem die Z-Komponente (im Blickpunktraum) des nächstgelegenen Punktes einer Begrenzungskugel, die das Objekt enthält, mit einer maximalen sichtbaren Weite, die dem Objekt zugeordnet ist, verglichen wird. Wie oben erwähnt, werden Objekte in ihrem eigenen Objektraum modelliert, in dem der Objektursprung der Ursprung des Objekt-Koordinatensystems und der Objektmittelpunkt der Mittelpunkt der Begrenzungskugel ist, die das ganze Objekt enthält. Die Translation vom Objektraumursprung zum Objektmittelpunkt wird ebenfalls gespeichert. Es wird dann wie folgt vorgegangen:
- a. Die Z-Komponente der Translation wird in den Blickpunktraum transformiert und zur Z-Komponente der Translation des Objekts (des Objektursprungs) addiert.
- b. Der Radius der Begrenzungskugel des Objekts wird von der Z-Komponente subtrahiert, was die Entfernung vom Blickpunkt zum nächstgelegenen Punkt der Begrenzungskugel ergibt.
- c. Der SM liefert eine maximale Weite, an der Objekte ausgewählt werden sollten. Wenn das oben berechnete Z größer ist als die maximale Weite, dann wird das Objekt aussortiert. Dieses Objekt und jedes Objekt, auf das nur von diesem Objekt aus gezeigt wird, wird automatisch vernachlässigt, was das Einzelbild angeht, das gerade verarbeitet wird.
- Infolge der Verwendung lediglich der Z-Komponente (einer Linie, die vom Blickpunkt durch den Mittelpunkt des Anzeigebildschirms gezogen wird) statt der Schrägentfernungsweite zu diesem Objekt werden Objekte an den Seiten des Bildschirms manchmal nicht aussortiert, wenn sie aussortiert werden könnten. Solche Objekte würden allerdings als Folge des (hierin nicht näher beschriebenen) Mechanismus zur Auswahl des Detailliertheitsgrades aussortiert, der die Schrägentfernungsweite vom Blickpunkt zum Objekt verwendet.
- Die Sichtfeld-Aussortierung ist eine Prüfung, die bestimmt, ob ein beliebiges Objekt, auf das gezeigt wird, innerhalb der Grenzen des Anzeigebildschirms gesehen werden kann. Jedes Objekt, das zu hoch, zu tief, zu weit rechts oder zu weit links liegt, wird aussortiert, das heißt, es erfolgt keine Anforderung, das Objekt zu verarbeiten. Statt das Objekt perspektivisch in den Bildschirmraum zu versetzen und zu prüfen, ob das Objekt auf dem Bildschirm liegt, wird eine inverse Perspektiventransformation auf die Bildschirmbegrenzungen angewandt, und die Sichtfeld- Aussortierung wird im Blickpunktraum ausgeführt. Die maximalen x und y für das Sichtfeld (im Blickpunktraum) werden effektiv an der Stelle berechnet, an der das Z des Objekts maximal ist (Mittelpunkt plus Radius der Begrenzungskugel). Es ist wahrscheinlicher, daß Objekte seitlich des Sichtfeldes liegen als daß sie darüber oder darunter liegen. Die seitliche Sichtfeld-Aussortierung wird daher zuerst ausgeführt. Die x- und y-Werte, welche die Ausdehnung der Begrenzungskugel des Objekts definieren, werden auf die gleiche Weise berechnet, wie Z für die Weiten-Aussortierung berechnet wird. Die berechneten Werte werden mit den Werten der Bildschirmraumbegrenzung verglichen. Jedes Objekt, das ganz außerhalb des Bildschirms liegt, wird aussortiert.
- Für alle nicht wie oben beschrieben aussortierten Objekte müssen dann die an diesen Objekten gespeicherten Merkmale im Objektprozessor verarbeitet werden. Diese Verarbeitung umfaßt fünf grundlegende Vorgänge, nämlich Rückseitenbeseitigung (die Aussortierung aller Merkmale, die vom Blickpunkt aus nicht gesehen werden können, da sie vom Blickpunkt abgewandt sind), Ebenengleichungs-Koeffizientenberechnung (Berechnen der Koeffizienten der Ebene jedes potentiell sichtbaren Merkmals im Blickpunktraum), Sichtfeld-Aussortierung (Aussortieren aller Merkmale, die ganz außerhalb des Bildschirms liegen), Begrenzungskasten-Berechnung (die maximale bzw. minimale x- und y-Ausdehnung jedes Merkmals im Bildschirmraum) und Geradengleichungsberechnungen (die Berechnung im Bildschirmraum von Gleichungen, die Geraden beschreiben, die die grundlegende Geometrie derjenigen Merkmale definieren, die gerade verarbeitet werden). Bevor diese Vorgänge beschrieben werden, ist es sinnvoll, die grundlegenden geometrischen Attribute zu erklären, die den verschiedenen zu verarbeitenden Merkmalen zugeordnet werden.
- Im Welt-Raum-Modell gibt es im wesentlichen drei verschiedene Merkmalstypen, nämlich viereckige Polygone (hierin im folgenden Viereckpolygone), Rasterlichtpunkte (hierin im folgenden RLPs) und kalligraphische Lichtpunkte (hierin im folgenden KLPs). Die geometrischen Attribute dieser Merkmale, die für die vorliegende Beschreibung relevant sind, sind untenstehend ausgeführt:
- 1. Viereckpolygone - das sind Polygone, die durch vier Scheitelpunkte und eine Oberflächennormale beschrieben sind. Dreieckige Viereckpolygone haben einfach einen Nullzscheitelpunkt.
- 2. RLPs - diese sind durch eine Position, zwei Richtungsvektoren für asymmetrische Bündelung und einen Normalenvektor beschrieben.
- 3. KLPs - diese sind mit genau den gleichen Angaben wie RLPs beschrieben, sind aber markiert, um sie von RLPs zu unterscheiden, einfach weil sie als Punkte mit hoher Intensität projiziert werden, nachdem alle anderen Merkmalstypen im normalen Raster-Abtastvorgang angezeigt worden sind.
- RLPs und KLPs sind in vielen Fällen auf einem anderen Merkmal positioniert, zum Beispiel auf einem Viereckpolygon, das die Wand eines Gebäudes beschreibt. In diesem Fall ist die Lichtpunktnormale die gleiche wie die Oberflächennormale des Merkmals, auf welcher der Lichtpunkt positioniert ist. Für Lichtpunkte, die nicht an einem anderen Merkmal angebracht sind, zum Beispiel Lichtpunkte, die freistehende Lichter simulieren, die aus jeder Richtung gesehen werden können, wird ein Rückfall-Normalenvektor definiert, der parallel zur Sichtlinie vom Blickpunkt aus zu diesem Lichtpunkt verläuft.
- Alle Merkmale weisen somit eine definierte Position im Welt-Raum (die vom Objektraum aus auf den Welt-Raum bezogen ist) und einen im Welt-Raum definierten Normalenvektor auf.
- Die Objektprozessoren führen im wesentlichen für alle Merkmalstypen zur Rückseitenbeseitigung und für Ebenengleichungs-Attributberechnungen die gleichen Vorgänge aus, führen jedoch dann für Viereckpolygone und Lichtpunkte (sowohl RLPs als auch KLPs) verschiedene Vorgänge aus.
- Zusätzlich zur Verarbeitung von Objektdaten verarbeiten die Objektprozessoren auch Umgebungsdaten.
- Die Umgebungsdaten werden für jedes Halbbild verarbeitet und fallen in vier Kategorien:
- (a) Daten, die an alle Objektprozessoren gesendet werden (z.B. Systemlastkoeffizienten),
- (b) Daten, die an alle Objektprozessoren gesendet werden, von einem Prozessor transformiert werden und an das BW gesendet werden (z.B. Bildschirmabmessungen),
- (c) Daten, die zur Verarbeitung und Weitersendung an das BW an einen Objektprozessor gesendet werden (z.B. Sonnenvektor),
- (d) Daten, die direkt und ohne Verarbeitung an das BW gesendet werden (z.B. Beschaffenheitskarten).
- Die Verarbeitung von Umgebungsdaten betrifft die vorliegende Erfindung nicht direkt und wird daher hierin nicht näher beschrieben.
- Der Objektprozessor beginnt die Verarbeitung von Merkmalen mit einer Rückseitenbeseitigung. Für jedes Merkmal wird die Oberflächennormale in den Blickpunktraum gedreht, und ein Kontrollscheitelpunkt am Merkmal wird in den Blickpunktraum gedreht und parallelverschoben. Dadurch werden Ebenengleichungskoeffizienten (A, B, C) und Kontrollscheitelpunkt-Koordinaten (xc, yc, zc) erzeugt. Diese werden in die Ebenengleichung.
- Ax + By + Cz = -D
- eingesetzt, was '-D' liefert. Bei nach hinten gewandten Ebenen (die vom Ursprung des Blickpunktraums abgewandt sind) ist der Wert von '-D' positiv, und sie werden aussortiert. Dadurch werden effektiv alle nach hinten gewandten Merkmale ausgeschlossen.
- Für alle übrigbleibenden Merkmale wird '-D' auf -2,0 > D ≥ -1,0
- normiert und wird dazu verwendet, die folgenden Attribute zu erzeugen:
- A/D kx
- B/D ky
- C/D.
- kx und ky sind Konstanten, die die Attribute mit der Größe und dem Längen- und Seitenverhältnis des Bildschirms in Beziehung setzen, auf dem das Bild dargestellt werden soll. Wenn der Bildschirm quadratisch ist, gilt kx = ky.
- Die Attribute der Ebenengleichungen werden zum Abtastumsetzer geleitet und sind für jedes Halbbild konstant.
- Die Geradengleichungskoeffizienten der Kanten eines Viereckpolygons können leicht vom Objektprozessor aus den Bildschirmraum-Scheitelpunkten des Viereckpolygons berechnet werden, wie mit Bezug auf Figur 7 beschrieben wird. Figur 7 stellt die Berechnung der Geradengleichung
- e x + f y = -g
- für eine Gerade 27 dar, die eine Kante eines Viereckpolygons bildet. Das Viereckpolygon ist zwischen den Scheitelpunkten 0, 1, 2 und 3 mit den Bildschirmraumkoordinaten (xo, yo), (x&sub1;, y&sub1;), (x&sub2;, y&sub2;) und (x&sub3;, y&sub3;) definiert. Die Begrenzung der Anzeige (des Bildschirms) ist durch die Linie 28 angedeutet, wobei der Ursprung der Bildschirmkoordinaten (0, 0) im Mittelpunkt des Bildschirms liegt.
- e aus der in Normalform gebrachten Geradengleichung kann wie folgt ermittelt werden:
- f aus der in Normalform gebrachten Geradengleichung kann wie folgt ermittelt werden:
- e und f können somit leicht berechnet werden, und g kann leicht berechnet werden, indem die berechneten Werte für e und f und die Koordinaten eines der beiden Scheitelpunkte in die Geradengleichung eingesetzt werden.
- Für Lichtpunkte werden keine Kantengleichungen berechnet.
- Die Geradengleichungen für Viereckpolygone ermöglichen die Anwendung eines einfachen Tests bezüglich des Bildschirm- Sichtfeldes. Unter der Annahme, daß der Bildschirm rechteckig ist, muß jedes Viereckpolygon, dessen nächstgelegene Kante im Bildschirmraum in der zur Kante senkrechten Richtung weiter vom Bildschirm-Mittelpunkt entfernt ist als die Ecken des Bildschirms, außerhalb des Sichtfeldes liegen. Unter der Annahme, daß die Entfernung vom Bildschirm-Mittelpunkt zu jeder Bildschirmecke gcrit ist und die lotrechte Entfernung zu einer Merkmalsecke g ist, wird das Merkmal aussortiert (nicht weiter verarbeitet), wenn für jede Merkmalskante
- g < - gcrit.
- Die Vorzeichen der Kantengleichungskoeffizienten eines Viereckpolygons sind so formuliert, daß der Satz von Viereckpolygonkanten eine geschlossene Kette miteinander verbundener Vektoren bildet, die im Uhrzeigersinn verlaufen, und die Entfernung g zu jeder Kante wird so berechnet, daß sie negativ ist, wenn der Bildschirm-Mittelpunkt links von der Geradengleichung der Kante liegt. Mit diesen Vorzeichenvereinbarungen kann das Merkmal aussortiert werden, wenn g für eine beliebige Kante des Polygons kleiner ist als minus gcrit. Das vereinfacht die Logik, die dazu benötigt wird, zu entscheiden, ob ein Viereckpolygon aussortiert werden kann.
- Eine Polygon-Bildschirm-Aussortierung wie oben beschrieben setzt voraus, daß der Bildschirm rechteckig ist. Die gleiche Technik kann jedoch dazu eingesetzt werden, zu bestimmen, ob ein Viereckpolygon auf eine Anzeigefläche wirkt, die nicht rechteckig ist. Die Technik benötigt einen Bezugspunkt (im beschriebenen Fall der Bildschirm- Mittelpunkt), eine Grenzentfernung (im beschriebenen Fall die Entfernung vom Bildschirm-Mittelpunkt zur Bildschirmecke) und eine Anordnung zum Vergleichen der Entfernung vom Bezugspunkt zu Kanten des Viereckpolygons mit der Grenzentfernung. Wenn vorausgesetzt wird, daß die Grenzentfernung hinreichend groß gewählt wurde, so daß jede Kante in einer größeren Entfernung außerhalb der Anzeigefläche liegen muß, dann kann der Entfernungsvergleich dazu eingesetzt werden, Viereckpolygone zu identifizieren, die aussortiert werden sollten.
- Es wird erneut auf Figur 7 Bezug genommen, in welcher der Begrenzungskasten die Fläche des Bildschirms ist, die durch die gestrichelte Linie 29 angedeutet ist, und die gesamte Menge von x- und y-Werten im Bildschirmraum darstellt, die auf dem Polygonmerkmal liegen können. Im dargestellten Fall liegen die Kanten des Begrenzungskastens wie folgt:
- Links x = x&sub0;
- Rechts x = x&sub2;
- Oben y = y&sub1;
- Unten y = y&sub3;
- Der Begrenzungskasten wird somit durch vier Geradengleichungen definiert:
- x - x&sub0; = 0
- x&sub2; - x = 0
- y&sub1; - y = 0
- y - y&sub3; = 0
- Bzw. allgemein:
- x - L = 0
- R - x = 0
- T - y = 0
- y - B = 0
- Dabei stehen L, R, T und B jeweils für die linke, die rechte, die obere und die untere Ausdehnung des Begrenzungskastens.
- Lichtpunkte besitzen keine Scheitelpunkte, von denen Begrenzungskästen unmittelbar abgeleitet werden können, sondern vielmehr einen einzigen Punkt (im Welt-Raum), um den der Lichtpunkt zentriert ist. RLPs sind im Bildschirmraum kreisförmig und ihre Größe entspricht ihrer Weite. Ein Begrenzungskasten wird somit als eine Funktion der Größe des Lichtpunktes im Bildschirmraum berechnet. KLPs sind ebenfalls im Bildschirmraum kreisförmig, und ihre Größe sowie ihr Begrenzungskasten werden ebenfalls als eine Funktion der Weite berechnet, mit einer maximalen Größe von zum Beispiel zwei mal zwei Pixeln, um die Art und Weise zu berücksichtigen, in der kalligraphische Lichtpunkte projiziert werden. Fig. 8 stellt den Begrenzungskasten 29 eines Lichtpunktes dar.
- Die Vorzeichen der Kantengleichungskoeffizienten sowohl eines Polygons als auch eines Begrenzungskastens sind so formuliert, daß der Satz von Polygonkanten und der Satz von Begrenzungskastenkanten jeweils eine geschlossene Kette miteinander verbundener Vektoren bildet, die im Uhrzeigersinn verlaufen.
- Wenn der Objektprozessor die Verarbeitung eines Merkmals beendet hat, werden die Attribute (einschließlich der Kantenkoeffizienten und der Begrenzungskästen) an den Abtastumsetzer ausgegeben. Die Funktion des Abtastumsetzers besteht darin, die in Bildschirmkoordinaten gegebenen geometrischen Daten jedes Merkmals, das von den Objektprozessoren empfangen wurde, zu überprüfen und zu entscheiden, ob dieses Merkmal potentiell für eine oder mehrere einer Reihe von Bereichen relevant ist, in die der Bildschirmbereich unterteilt ist. Bevor der Betrieb des Abtastumsetzers beschrieben wird, soll mit Bezug auf Figur 9 beschrieben werden, wie der Bildschirm für Verarbeitungszwecke im Bildaufbereitungswerk in Teilflächen unterteilt ist.
- Das dargestellte Bild setzt sich aus einer regelmäßigen Anordnung von Pixeln zusammen, die sich nicht überlappen und die zusammen den gesamten Bildschirm überdecken. Jedes Pixel wird mittels der Raster-Abtastanzeigeeinrichtung als ein Bereich gleichförmiger Farbe und Intensität projiziert; jedoch können Pixel durch kalligraphische Lichtpunkte überschrieben werden, wie untenstehend beschrieben. Figur 9 enthält vier Darstellungen verschiedener Unterteilungen des Bildschirms, wobei die am weitesten links liegende Darstellung zu einem Viertel des Maßstabs der drei anderen Darstellungen gezeichnet ist.
- In Figur 9 entsprechen die schraffierten Bereiche, die durch die Bezugsziffer 30 gekennzeichnet sind, jeweils einem Pixel. Der Bildschirm ist in Teilflächen bzw. in Zellen unterteilt, die jeweils eine jeweilige rechtwinklige Pixelanordnung überdecken, im dargestellten Fall eine vier- mal-vier-Anordnung. Ziffer 31 in Figur 9 weist auf die Begrenzung einer Zelle. Aneinandergrenzende Zellen überlappen sich nicht. Jeder Zelle ist eine Pseudozelle überlagert, die die jeweilige Zelle und eine Begrenzung von einem halben Pixel um diese Zelle herum überdeckt. Die gestrichelten Linien 32 in Figur 9 entsprechen einer Pseudozellenbegrenzung. Aneinandergrenzende Pseudozellen überlappen sich also. Jede Pseudozelle ist in eine regelmäßige Anordnung aneinanderstoßender Pseudopixel unterteilt, zum Beispiel in eine vier-mal-vier-Anordnung von Pseudopixeln. Die schraffierten Bereiche 33 in Figur 9 entsprechen jeweils einem Pseudopixel. Den Pseudozellen sind Superzellen überlagert, die jeweils eine jeweilige rechtwinklige Anordnung von Pseudozellen überdecken, im dargestellten Fall zum Beispiel eine vier-mal-vier-Anordnung von Pseudozellen. Aneinandergrenzende Superzellen überlappen sich also. Die gestrichelte Linie 34 deutet eine Superzellenbegrenzung an und der schraffierte Bereich 35 eine Pseudozelle innerhalb dieser Superzelle. Jede Superzelle überdeckt somit sechzehn Pseudozellen, und diese sechzehn Pseudozellen überdecken zusammen sechzehn Zellen und eine Begrenzung, die einen halben Pixel breit ist, um den Rand dieser sechzehn Zellen. Zur Erzielung eines Antialiasing ist es, wie weiter unten beschrieben, erforderlich, daß aneinandergrenzende Superzellen, aneinandergrenzende Pseudozellen und aneinandergrenzende Pseudopixel sich überlappen.
- Im dargestellten Fall einer Zelle mit vier mal vier Pixeln und einer Superzelle mit vier mal vier Pseudozellen und unter der Annahme eines Anzeigebereichs mit 1024 mal 1024 Pixeln ergeben sich 64 x 64 Superzellen und 256 x 256 Pseudozellen.
- Für jedes von den Objektprozessoren an den Abtastumsetzer gelieferte Merkmal identifiziert der Abtastumsetzer alle Superzellen, die zumindest teilweise von diesem Merkmal überlappt werden. Der Abtastumsetzer unterscheidet zwischen Viereckpolygonen und anderen Merkmalen. Im Fall von Viereckpolygonen werden sowohl die Geradengleichungen, die die Kante des Polygons definieren, und die Geradengleichungen, die den Begrenzungskasten definieren, verarbeitet. Im Fall anderer Merkmale (Lichtpunkte) werden lediglich die Kanten des Begrenzungskastens verarbeitet.
- Der Abtastumsetzer weist jedem Merkmal eine Identifizierung (ID) zu, lokalisiert die Superzellen, auf die das Merkmal wirkt, und leitet die Viereckpolygons-ID an den Abtastumsetzerspeicher 21 (der hierin im folgenden als Superzellenspeicher bezeichnet wird).
- Figur 10 ist eine schematische Darstellung der Komponenten des Abtastumsetzers 19 und des Superzellenspeichers 21 aus Figur 2. Der Abtastumsetzerspeicher 21 speichert Daten, die für individuelle Superzellen relevant sind. Attribute vom TW werden, Merkmal für Merkmal, am Eingang 18 empfangen (Figur 2), und ein Attributschnittstellenmodul 36 setzt eine Merkmals-ID in den Datenstrom ein, der jedes Merkmal repräsentiert, zur Verteilung an einen Eingabepuffer 37 des Abtastumsetzers und an ein Attributübertragungsmodul 38, das einen Attributbus 39 beliefert, der mit dem Attributspeicher 22 in Verbindung steht (Figur 2).
- Das Schnittstellenmodul 36 leitet nur geometrische Attributdaten an den Puffer 37, die zur Abtastumsetzungsverarbeitung benötigt werden. Der Puffer 37 ermöglicht, daß die empfangenen Daten mit optimaler Geschwindigkeit gespeichert werden, ohne daß es nötig wäre, den Attributdatenfluß vom TW zu verlangsamen. Der Pufferausgang liefert die Attributdaten an eine Anordnung 40 von sieben Geradengleichungsprozessoren, die Ausgaben an eine Zustandsmaschine 41 liefern, die ihrerseits die Geradengleichungsprozessoren steuert. Die Komponenten 40 und 41 entsprechen der Logikeinheit 20 aus Figur 2. Eine Schreib- Koordinaten-Nachschlagetabelle 42 leitet Merkmals-IDs an den entsprechenden Ort im Schreibbereich des doppelt gepufferten Superzellenspeichers. Zu Beginn des nächsten Einzelbilds steuert eine Lesesteuereinheit 43 einen Lesebereich der Koordinatentabelle 42, um Daten aus dem Superzellenspeicher auszulesen.
- Jeder Geradengleichungsprozessor hat die Gestalt einer identischen anwendungsspezifischen integrierten Schaltung (ASIS), die mittels der Zustandsmaschine 41 gesteuert werden kann. Jede dieser ASIS wird hierin als ein D-let bezeichnet und führt je nach dem gewählten Modus mehrere verschiedene Funktionen aus. Die genaue Struktur jedes D-lets ist für ein Verständnis der vorliegenden Erfindung jedoch nicht besonders wichtig und wird daher hier nicht beschrieben. Es wird natürlich mit den Schaltungskomponenten versehen sein, die dazu erforderlich sind, die einfachen untenstehend beschriebenen arithmetischen Operationen auszuführen.
- Drei der D-lets in der Anordnung 40 teilen sich die Aufgabe, zu entscheiden, ob der Begrenzungskasten eines Merkmals auf eine Superzelle wirkt oder nicht. Die anderen vier D-lets teilen sich die Aufgabe, aus den Kantengleichungen eines Viereckpolygons zu entscheiden, ob das Viereckpolygon auf eine Superzelle wirkt. Die ID jedes wirkenden Merkmals wird im Superzellenspeicher gespeichert. Der Superzellenspeicher ist schematisch in Figur 11 dargestellt, und es wird deutlich werden, daß er in bezug auf jede Superzelle einen Speicherstapel umfaßt, wobei jeder Stapel bis zu 256 Merkmal-IDs speichern kann. Für das oben zitierte Beispiel ergeben sich somit 64 x 64 Stapel, und jeder Stapel speichert einen einfachen Datensatz (lediglich IDs) derjenigen Merkmale, die auf die jeweilige Superzelle wirken.
- Die Abtastumsetzung des Begrenzungskastens jedes Merkmals geht vom unteren Ende des Kastens aus, arbeitet sich in x- Richtung quer über den Kasten vor, bis alle Superzellen, die zwischen der rechten und der linken Kante des Kastens liegen bzw. diese überlappen, identifiziert sind, und arbeitet sich dann eine Superzellenzeile nach der anderen durch den Kasten nach oben. Die aktuell verarbeitete Superzelle hat im Bildschirmraum eindeutige Mittelpunktskoordinaten, und diese werden dazu verwendet, die Entfernungen dL, dR und dT des Superzellen-Mittelpunktes (xsc, ysc) von der linken, der rechten und der oberen Kante des Begrenzungskastens zu berechnen:
- dL = xsc- L
- dR = R - xsc
- dT = T - ysc
- Es ist nicht erforderlich, die Entfernung zum unteren Ende des Kastens zu berechnen, da die Abtastumsetzung am unteren Ende beginnt und stets nach oben fortgesetzt wird.
- Jede der drei wie oben beschrieben berechneten Entfernungen wird mit der Entfernung vom Superzellen- Mittelpunkt (xsc, ysc) zu den Superzellenkanten verglichen. Beim oben beschriebenen Beispiel ist die Superzelle quadratisch, und es kann somit angenommen werden, daß die Abmessungen der Superzelle 2a zum Quadrat betragen. Dann gilt, wenn die linke Kante des Begrenzungskastens betrachtet wird, folgendes:
- Wenn dL < -a, dann liegt die Superzelle links von der linken Kante des Begrenzungskastens. Das wird durch die Erzeugung eines Ausgangscodes 01 angezeigt.
- Wenn -a ≤ dL ≤ +a, dann ist die Superzelle die in ihrer Zeile am weitesten links gelegene Superzelle, auf die der Begrenzungskasten wirkt. Das wird durch einen Ausgangscode 10 angezeigt.
- Wenn +a < dL, dann liegt die Superzelle rechts von der linken Kante des Begrenzungskastens. Das wird durch einen Ausgangscode 11 angezeigt.
- Auf diese Weise können Codes 01, 10 und 11 für die linke, die rechte und die obere Kante des Begrenzungskastens abgeleitet werden. Wenn ein beliebiger dieser Codes 01 ist, würde das anzeigen, daß sich die Superzelle außerhalb des Begrenzungskastens befindet. Wenn ein beliebiger dieser Codes 10 ist, würde das eine Superzelle anzeigen, die von einer der Kanten des Begrenzungskastens geschnitten wird. Das wird dazu verwendet, die Richtung der Abtastung des Begrenzungskastens effizient zu steuern. Ein Merkmal könnte zum Beispiel einen Begrenzungskasten aufweisen, wie er durch die Linie 44 in Figur 12 dargestellt ist. Das in Figur 12 dargestellte Gitter zeigt die relative Anordnung der Superzellenbegrenzungen relativ zum Begrenzungskasten 44. Superzellen überlappen sich natürlich geringfügig; dies ist jedoch in Figur 12 nicht gezeigt. Der Abtastumsetzer kann so angeordnet werden, daß er zur Superzelle geht, innerhalb derer die linke untere Ecke des Begrenzungskastens eingeschlossen ist, er in positiver x- Richtung quer über den Begrenzungskasten fortschreitet, bis ein Ausgangscode 10 produziert wird, da die aktuell verarbeitete Superzelle die rechte Kante des Begrenzungskastens überlappt, er einen Schritt in die positive y-Richtung fortschreitet und dann in die negative x-Richtung, bis für die linke Kante des Begrenzungskastens ein Ausgangscode 10 erzeugt wird, und so weiter. In dem in Figur 12 dargestellten Fall wird daher der Abtastumsetzer in der Reihenfolge, die durch die Zahlen 1 bis 20 angezeigt ist, durch die Superzellen fortschreiten, die vom Begrenzungskasten 44 überlappt werden.
- Im Fall von Lichtpunkten werden lediglich Begrenzungskastentests vorgenommen, um die Wirkung auf Superzellen zu bestimmen. Im Fall von Viereckpolygonen werden jedoch sowohl Begrenzungskastentests als auch Tests bezüglich der Polygonkantengleichungen ausgeführt, wobei der Durchquerungsweg der Superzellen dann durch die Kombinierung der Ergebnisse der beiden Tests bestimmt wird.
- Die Abtastumsetzung eines Viereckpolygons beginnt an der Superzelle, innerhalb derer sich der untere Scheitelpunkt des Viereckpolygons befindet. (Wenn es zwei 'untere' Scheitelpunkte mit der gleichen y-Koordinate gibt, dann wird der am weitesten links liegende ausgewählt). Der untere Scheitelpunkt wird durch das Transformationswerk bestimmt und entspricht in dem in Figur 7 dargestellten Fall dem Scheitelpunkt (x&sub3;, y&sub3;). Die vier D-lets, die der Verarbeitung der Kantengleichungen von Viereckpolygonen zugeordnet sind, arbeiten wie mit Bezug auf Figur 13 beschrieben.
- In Figur 13 stellt das Quadrat 45 eine Superzelle dar, und das Viereck 46 stellt ein Viereckpolygon dar. Für jede Kante des Viereckpolygons 46 wird die lotrechte Entfernung d vom Mittelpunkt der Superzelle zur Kante berechnet, ferner die lotrechte Entfernung dcrit vom Mittelpunkt der Superzelle zu einer Geraden, welche die Superzelle lediglich berührt und parallel zur Viereckpolygonkante liegt, und ferner die Differenz zwischen diesen beiden.
- dcrit = e a + f b
- wobei e und f die Koeffizienten der Geradengleichung und a und b die halbe Superzellenbreite bzw. -höhe sind.
- Die lotrechte Entfernung d leitet sich wie folgt ab:
- d = ex + fy + g
- wobei e, f und g die Koeffizienten der Geradengleichung für die Viereckpolygonkante sind.
- Das Vorzeichen von d hängt davon ab, ob der Mittelpunkt der Superzelle links oder rechts von der Geraden liegt. Das Vorzeichen von dcrit ändert sich nicht. Es können somit Ausgangscodes 01, 10 und 11 erzeugt werden, die folgendes bedeuten:
- d < -dcrit (Ausgangscode 01)
- -dcrit ≤ d ≤ dcrit (Ausgangscode 10)
- dcrit < d (Ausgangscode 11)
- Der Ausgangscode 01 zeigt an, daß die Superzelle ganz links von der Viereckpolygonkante liegt. Der Ausgangscode 11 zeigt an, daß die Superzelle ganz rechts von der Viereckpolygonkante liegt. Der Ausgangscode 10 zeigt an, daß die Superzelle die Viereckpolygonkante (bzw. eine Verlängerung dieser Kante) überbrückt. Vier Ausgangscodes 11 zeigen an, daß die Superzelle ganz vom Viereckpolygon überdeckt wird. Es kann jedoch eine vollständige Entscheidung über die Wirkung des Viereckpolygons getroffen werden, indem die vier Ausgangscodes einfach kombiniert werden. Wenn die vier Ausgangscodes auf ein UND-Schaltungspaar angewandt werden, wobei das erste Bit jedes Ausgangscodes auf eine Schaltung angewandt wird und das zweite Bit auf die andere UND-Schaltung, dann ergibt sich eine 2-Bit- Ausgabe, die vier Hilfsausgangscodes anzeigen kann, und zwar wie folgt:
- 00 - Superzelle ganz außerhalb des Viereckpolygons
- 01 - Superzelle ganz außerhalb des Viereckpolygons
- 10 - Superzelle teilweise vom Viereckpolygon überdeckt
- 11 - Superzelle ganz vom Viereckpolygon überdeckt
- Die letzteren beiden Ausgangscodes zeigen unzweideutig an, daß das Viereckpolygon, das gerade verarbeitet wird, auf die Superzelle wirkt, die gerade verarbeitet wird. Die ID des Viereckpolygons wird daher an den entsprechenden Superzellenspeicherstapel geliefert.
- Zwar läßt sich im Fall von Viereckpolygonen eine unzweideutige Ausgabe bereitstellen, um für eine beliebige Superzelle anzuzeigen, ob sie zumindest teilweise von einem Viereckpolygon überdeckt wird, jedoch stellt der Begrenzungskastentest, auf den oben Bezug genommen wurde, weitere Informationen bereit, die dazu nützlich sind, die Durchquerung des Viereckpolygons auf effiziente Weise zu steuern und ferner mit speziellen Fällen umzugehen, zum Beispiel mit einem Begrenzungskasten eines Viereckpolygons, der ganz innerhalb einer Superzelle liegt.
- Ein mögliches Viereckpolygon-Durchquerungsverfahren, das dazu verwendet werden könnte, Viereckpolygone auf effizientere Weise zu durchqueren als einem einfachen Begrenzungskastentest zu folgen, bestände darin, an der Superzelle mit dem tiefsten Scheitelpunkt zu beginnen, nach links fortzuschreiten, bis eine Superzelle erreicht wird, die entweder eindeutig außerhalb des Viereckpolygons liegt oder die am weitesten links liegende Begrenzungskastenkante beinhaltet, dann an den Anfangspunkt zurückzukehren und nach rechts fortzuschreiten, bis eine Superzelle erreicht wird, die entweder eindeutig außerhalb des Viereckpolygons liegt oder die rechte Kante des Begrenzungskastens enthält, dann zur nächsthöheren Superzellenzeile fortzuschreiten und den oben skizzierten Vorgang zu wiederholen. Der Anfangspunkt in jeder Superzellenzeile könnte so ausgewählt werden, daß er etwa dem mittleren Punkt der Superzellen in der unmittelbar darunterliegenden Zeile entspricht, von denen angenommen wird, daß das Viereckpolygon darauf wirkt.
- Es wird nun wieder auf Figur 10 Bezug genommen, in der die Schreib-Koordinaten-Nachschlagetabelle 42 jede Merkmals-ID zum entsprechenden Ort im Schreibbereich des doppelt gepufferten Superzellenspeichers leitet. Nach Empfang des nächsten 'Einzelbild-Austausch'-Signals liest die Lesesteuereinheit 43 Daten aus dem Superzellenspeicher aus, wobei die Daten aus einem Superzellenspeicherstapel nach dem anderen ausgelesen werden. Die Geschwindigkeit der Datenauslesung wird ferner durch eine 'Halt'-Eingabe gesteuert, die vom Vorsortierer empfangen wird, der die nächste Komponente in der Bilderzeuger-Pipeline ist.
- Es versteht sich daher, daß alle Vorgänge, die vom Abtastumsetzer ausgeführt werden, einfach auszuführen sind. Eine Ausführung mit hoher Geschwindigkeit ist natürlich notwendig, um einen für Echtzeitanzeigen hinreichenden Durchsatz zu erzielen, jedoch kann eine solche Geschwindigkeit durch geeignete ASIS erreicht werden. Beim beschriebenen System sind sieben D-let-ASIS vorgesehen, vier zum Verarbeiten von Kantengleichungen von Viereckpolygonen und drei zum Verarbeiten von Begrenzungskastenkanten. Einer Bereitstellung von mehr parallelen Verarbeitungswegen zur Erhöhung des Durchsatzes steht jedoch nichts entgegen. Der Abtastumsetzer stellt daher keinen Engpaß dar, der den maximalen Durchsatz begrenzt. Ferner kann der Algorithmus mit konvexen Polygonen mit einer beliebigen Anzahl von Kanten umgehen.
- Die oben beschriebenen Abtastumsetzungsvorgänge weisen bestimmte Merkmale auf, welche die Leistungsfähigkeit des Systems erhöhen. Diese können wie folgt zusammengefaßt werden:
- a) Das Bringen der Kantengleichungen auf Normalform, so daß jede Kantenfunktion (E(x,y) = ex + fy + g) gleich der Entfernung des Punktes (x,y) von der Kante ist;
- b) die Verwendung von dcrit, um zu beurteilen, ob eine Pseudozelle innerhalb oder außerhalb eines Viereckpolygons liegt oder ob sie die Kante eines Viereckpolygons überbrückt;
- c) die Verwendung von Ausgangscodes, um den Pseudozellenstatus mit Bezug auf die vollständige Merkmalsauswertung zu bestimmen;
- d) die Verwendung von effektiv zwei parallelen Geradengleichungen;
- e) Eine Hardwarerealisierung mit Parallelität.
- Die Geradengleichungskoeffizienten e, f, g werden durch einen Normierungsfaktor n dividiert, wobei
- n ist im übrigen die Distanz entlang der Kante vom Scheitelpunkt (x&sub1;, y&sub1;) zum Scheitelpunkt (x&sub2;, y&sub2;)
- Die Kantenfunktion ex + fy + g stellt dann ein direktes Maß der Entfernung von der Geraden zum Punkt (x, y) dar.
- Dies ist die kritische Entfernung vom Superzellen- Mittelpunkt, mit der die Entfernung d (= ex + fy + g) der Merkmalskante vom Superzellen-Mittelpunkt verglichen wird. Sie stellt die Verschiebung zwischen dem Superzellen-Mittelpunkt und der am weitesten entfernten Superzellenecke entlang einer zur Kante senkrechten Geraden dar. Die Berechnung von dcrit ist oben beschrieben.
- Die Ausgangscodes sind leicht ableitbar und können leicht unter Verwendung einfacher UND-Schaltungen kombiniert werden, um einen endgültigen Ausgangscode zu bilden, der eine eindeutige Beurteilung der Wirkung auf die Superzelle liefert.
- Um herauszufinden, ob die Superzelle innen oder außen liegt oder ob sie die Superzellenkante überbrückt, muß der Wert der Kantenfunktion wie folgt mit dcrit verglichen werden:
- Wenn E(x,y) = d < -dcrit, dann liegt die Superzelle AUSSEN
- (Ausgangscode 01);
- wenn E(x,y) = d > dcrit, dann liegt die Superzelle INNEN
- (Ausgangscode 11);
- anderenfalls ÜBERBRÜCKT die Superzelle
- (Ausgangscode 10)
- [d.h. -dcrit ≤ E(x,y) = d ≤ dcrit].
- Die Notwendigkeit zweier nacheinander ausgeführter Vergleiche mit dcrit kann vermieden werden, wenn die beiden Kantenfunktionen wie folgt vorbereitet werden:
- F(x,y) = E(x,y) + dcrit und G(x,y) = E(x,y) - dcrit.
- Deren Ausgangscodes können mittels eines einfachen parallelen Tests der Vorzeichen bestimmt werden:
- Wenn F(x,y) < 0, dann Ausgangscode 01;
- wenn G(x,y) > 0, dann Ausgangscode 11;
- anderenfalls Ausgangscode 10.
- Diese beiden Kantenfunktionen definieren effektiv zwei Geraden, die von der betreffenden Kante um die lotrechten Entfernungen dcrit bzw. -dcrit versetzt sind.
- Die Hardwarerealisierung wie oben beschrieben, unter Verwendung einer parallelen Anordnung von D-let-ASIS zur Berechnung von Entfernungen, verbessert den Systemdurchsatz.
- Das BW 4 aus Figur 1 wird nun skizzenhaft mit Bezug auf Figur 14 beschrieben. Figur 14 zeigt den Superzellenspeicher 21 und den Attributspeicher 22 aus Figur 2. Es sei daran erinnert, daß sowohl der Superzellenspeicher als auch der Attributspeicher doppelt gepuffert sind, wobei der Inhalt der Speicher ansprechend auf den Empfang eines Signals ausgelesen wird, das den Beginn eines Einzelbilds signalisiert. Der Inhalt des Superzellenspeichers wird Superzelle für Superzelle in einen Vorsortierer 47 ausgelesen, der ferner geometrische Attributdaten aus dem Attributspeicher 22 empfängt. Der Vorsortierer und der Attributspeicher liefern jeweilige Ausgaben 48 und 49 an ein Spezialeffektmodul 50, einen Farbmischer 51, einen Nachsortierer 52 und einen Lichtpunktspeicher 53. Der Nachsortierer führt einem Bildspeicher 54 Raster-Bilddaten zu, und Ausgaben 55 und 56 vom Lichtpunktspeicher und vom Bildspeicher werden an die Anzeigeeinrichtung (die Anzeigeeinrichtung 5 aus Figur 1) geliefert. Die Ausgabe 55 steuert die Projektion kalligraphischer Lichtpunkte.
- Die Funktion des Vorsortierers 47 besteht darin, jede Superzelle in eine Reihe von Pseudozellen zu unterteilen, die effektive Tiefe (Entfernung vom Blickpunkt) jedes Merkmals an jeder Pseudozellenecke zu berechnen, jedes Merkmal zu entdecken, das undurchsichtig ist und eine Pseudozelle vollständig überdeckt, und alle Merkmale von einer Berücksichtigung in bezug auf eine bestimmte Pseudozelle auszuschließen, wenn diese Merkmale hinter einem undurchsichtigen Merkmal liegen, das die Pseudozelle ganz überdeckt. Bei einer gegebenen Pseudozellengröße von vier mal vier Anzeigepixeln zuzüglich einer Begrenzung eines halben Pixels wird somit jede Superzellen-ID-Liste nacheinander für jede der sechzehn Pseudozellen berücksichtigt.
- Die im Superzellenspeicher 21 angesammelten IDs werden Stapel für Stapel zum Vorsortierer 47 heruntergeladen. Entsprechende Attribute werden gleichzeitig vom Attributspeicher 22 zum Vorsortierer heruntergeladen. Der Vorsortierer empfängt also den Inhalt eines Stapels, der einer Superzelle entspricht, und verarbeitet die durch den Stapelinhalt identifizierten Merkmale, bevor der nächste Stapel heruntergeladen wird.
- Wenn der Vorsortierer anzeigt, daß ein Merkmal auf die Pseudozelle wirkt (sie zumindest teilweise überdeckt), die gerade verarbeitet wird, dann wird ein 'Fragment'-Datenpaket erzeugt und auf den fragmenttragenden Ausgabebus 48 angewandt. Dieses Datenpaket umfaßt lediglich die Bildschirmraumkoordinaten der vier Ecken der betreffenden Pseudozelle und die ID des wirkenden Merkmals. Die Fragmente von so identifizierten Merkmalen werden dann im Spezialeffektmodul 50, im Farbmischer 51, im Nachsortierer 52 und im Lichtpunktspeicher 53 verarbeitet.
- Die Einheiten 50 bis 53 arbeiten auf der Grundlage von Pseudopixeln. Im dargestellten Fall überdecken sechzehn Pseudopixel eine jeweilige Pseudozelle ganz (aber erstrecken sich nicht darüber hinaus). Die Ecken der Pseudopixel werden aus den Ecken der betreffenden Pseudozelle interpoliert, die vom Fragmentbus getragen werden. Das Spezialeffektmodul 50 erzeugt für jedes Pseudopixel derjenigen Pseudozelle, die gerade verarbeitet wird, eine Ausgabe entsprechend den Spezialeffekten, die ggf. aufgrund der Attribute des Merkmals, das gerade verarbeitet wird, gefordert sind, wie zum Beispiel Beschaffenheitseffekte, Nebeleffekte und Landelichteffekte. Diese Ausgabe wird auf den Farbmischer 51 angewandt, wo weitere Effekte, wie zum Beispiel die Umgebungsbeleuchtung, verarbeitet werden, wobei der Farbmischer für jedes Pseudopixel eine RGBT-Ausgabe (rot, grün, blau, Transparenz) an den Nachsortierer 52 liefert. Der Lichtpunktspeicher 53 verarbeitet Lichtpunkte in Verbindung mit dem Farbmischer und dem Nachsortierer, wie untenstehend näher beschrieben wird, wobei der Lichtpunktspeicher 53 die Ausgabe 55 bereitstellt und wobei der Nachsortierer eine Ausgabe an den Bildspeicher 54 liefert. Der Bildspeicher liefert die Ausgabe 56 an die Raster-Anzeigeeinrichtung 5 (Figur 1).
- Die Funktion des Nachsortierers 52 ist es, die Effekte von Oberflächen zu entscheiden, die andere Oberflächen verstecken bzw. teilweise verstecken. Er leistet dies, indem er die Wirkung von Merkmalen auf eine Anordnung von Stichprobenpunkten beurteilt, wobei er die Effekte solcher wirkungen summiert und gewichtet und für jedes Anzeigepixel eine endgültige RGB-Ausgabe an den Bildspeicher liefert. Jedes vom Nachsortierer empfangene Pseudopixelfragment überdeckt eine jeweilige Anordnung von Stichprobenpunkten, die über die Pixelanordnung verteilt sind, die jeder Pseudozelle entspricht. Typischerweise sind zum Beispiel zweihundert Stichprobenpunkte vorhanden, d.h. acht pro Pixel. (Es sei daran erinnert, daß beim beschriebenen Beispiel jedes Pseudopixel eine vier-mal-vier-Pixelanordnung zuzüglich einer Begrenzung der Breite eines halben Pixels überdeckt). Die Lage jedes Stichprobenpunktes relativ zu der für jede Pseudozelle definierten vier-mal-vier-Pseudopixelanordnung ist bekannt, und daher ist es erforderlich, für jeden Stichprobenpunkt zu entscheiden, ob ein Merkmal auf diesen Punkt wirkt oder nicht, und nur dann die RGBT-Eingaben vom entsprechenden Pseudopixel zum Nachsortierer zu summieren, wenn eine Wirkung entdeckt wird.
- Jeder Stichprobenpunkt wird u.U. von einer großen Anzahl von Merkmalen überlappt, und es ist erforderlich, diese Merkmale der Tiefe nach zu sortieren, um diejenigen auszuschließen, die an diesem Stichprobenpunkt ganz durch näher (am Blickpunkt) liegende undurchsichtige Merkmale verdeckt werden. Zu diesem Zweck wird an jedem Stichprobenpunkt die Entfernung jedes Merkmals (vom Blickpunkt) berechnet. Der RGBT-Wert und die Tiefe des ersten Merkmals, das auf einen Stichprobenpunkt wirkt, werden in einen jeweiligen Speicher geladen. Nachfolgende Merkmale werden bezüglich ihrer Tiefe mit dem ersten gespeicherten Merkmal verglichen, wobei alle Merkmale bis auf das augenblicklich nächstliegende undurchsichtige Merkmal sowie durchscheinende Merkmale, die näher liegen als das nächstliegende undurchsichtige Merkmal, aus dem Speicher ausgeschlossen werden (bzw. nicht eingelassen werden). Wenn alle Merkmale, die potentiell für eine Zelle wesentlich sind, auf diese Weise verarbeitet worden sind, werden die Gesamteffekte aller in jedem Stapel identifizierter Merkmale berechnet, um für jeden Stichprobenpunkt eine endgültige RGB- Ausgabe zu erzeugen. Diese Ausgaben werden dann gewichtet und summiert, um für jedes Pixel einen einzigen RGB-Wert zu erzeugen. Jedes Pixel spricht auf die Beiträge von den acht Stichprobenpunkten innerhalb seiner eigenen Begrenzung und von Stichprobenpunkten innerhalb einer darum verlaufenden Grenze der Breite eines halben Pixels an, d.h. auf zweiunddreißig Stichprobenpunkte insgesamt (1x8 + 4x4 + 4x2). Die Gesamtfläche, die die zweiunddreißig Stichprobenpunkte überdeckt, ist daher gleich der Fläche einer zwei-mal-zwei- Pixelanordnung, ist aber um den Mittelpunkt eines Anzeigepixels zentriert.
- Der Attributspeicher 22, der Superzellenspeicher 21, der Lichtpunktspeicher 53 und der Bildspeicher 54 sind alle doppelt gepuffert, um die Grenzen zwischen getrennten Stufen im Pipelinesystem zu definieren.
- Bevor näher beschrieben wird, wie das System aus Figur 14 arbeitet, ist es sinnvoll, die Vorteile zu skizzieren, die dem allgemeinen Aufbau des Systems innewohnen. Erstens wird kompromißlos eine echte Eliminierung verdeckter Oberflächen erreicht. Das heißt, für jeden Stichprobenpunkt gründen sich Entscheidungen über die relative Priorität von Modellmerkmalen, die zu einem Bild beitragen, auf direkte Vergleiche zwischen Merkmalsentfernungen (vom Blickpunkt) an diesem Stichprobenpunkt. Das bedeutet ferner, daß der/die Modellersteller/in keine relativen Prioritäten berücksichtigen muß, außer für Merkmale, die in der gleichen Ebene liegen, z.B. Markierungen auf Start- und Landebahnen. Solche Prioritäten bei gemeinsamer Ebene können einfach durch geeignete Anzeiger angezeigt werden. Zweitens wird die Totzeit des Systems während der Zusammenstellung von Daten zur Verarbeitung minimiert, wodurch der Durchsatz verbessert wird. Drittens ist die Systemstruktur so angelegt, daß rechnerisch aufwendige Aufgaben von parallelen Prozessoren erledigt werden können. Die geometrischen Transformationen werden zum Beispiel auf die parallelen Prozessoren im Objektprozessor verteilt, die Vorsortiereraufgabe kann auf parallele Prozessoren verteilt werden, die jeweils für eine jeweilige Pseudozelle bzw. Gruppe von Pseudozellen zuständig sind, und die Nachsortiereraufgabe kann auf parallele Prozessoren verteilt werden, die jeweils für einen jeweiligen Stichprobenpunkt zuständig sind. Der Systemdurchsatz kann eingestellt werden, indem einfach ohne größere Rekonstruktion des Systems grundlegende 'Bausteine' hinzugefügt bzw. weggenommen werden. Viertens können die Funktionen des Spezialeffektmoduls und des Farbmischers jegliche gewünschte Komplexität annehmen, ohne den grundlegenden Systemaufbau zu beeinflussen. Fünftens ist es, wie die folgende Beschreibung verdeutlichen wird, eine Eigenschaft des Systems, zum Ausgleich von Nichtlinearitäten in Anzeigeeinrichtungen in der Lage zu sein. Sechstens wird ein korrektes Antialiasing mit Transparenz und der Beseitigung verdeckter Oberflächen erreicht.
- Das oben skizzierte Bildaufbereitungswerk soll nun näher beschrieben werden.
- Es soll nun der Vorsortierer 47 aus Figur 14 besprochen werden, der nacheinander Merkmals-IDs aus dem Superzellenspeicher empfängt und entscheidet, auf welche Pseudozellen in der jeweiligen Superzelle das identifizierte Merkmal wirkt. Der Vorsortierer empfängt die Kanten- und die Begrenzungskastengleichungen für die identifizierten Merkmale und unterscheidet zwischen Viereckpolygonen und Lichtpunkten.
- Für Viereckpolygone werden sowohl Kanten als auch Begrenzungskästen verwendet, um eine Überlappung des Viereckpolygons mit einer Pseudozelle zu bestimmen. Für Lichtpunkte, sowohl für KLPs als auch für RLPs, werden lediglich Begrenzungskastenkanten verwendet, um eine Überlappung zu bestimmen.
- Der Vorsortierer entscheidet für jede Merkmals-ID und für jede der sechzehn Pseudozellen, die die jeweilige Superzelle bilden, ob das Merkmal auf die Pseudozelle wirkt oder nicht, ob das Merkmal die Pseudozelle ganz überdeckt oder nicht und, wenn es die Pseudozelle ganz überdeckt, ob das Merkmal undurchsichtig ist oder nicht. Ferner wird für jedes Merkmal die Tiefe (die Entfernung vom Blickpunkt) der Ecken der Pseudozelle berechnet, die auf die Ebene des Merkmals projiziert werden. Die Merkmals-IDs werden dann als eine Liste gespeichert, die das nächstliegende undurchsichtige ganz überdeckende Merkmal und ggf. näherliegende teilweise überdeckende undurchsichtige Merkmale bzw. teilweise oder ganz überdeckende durchscheinende Merkmale identifiziert.
- Fur Viereckpolygone berechnet der Vorsortierer die lotrechte Entfernung im Bildschirmraum von jeder Pseudozellenecke zu jeder Kante des Viereckpolygons. Der Vorsortierer berechnet ferner die Entfernung im Bildschirmraum zu jeder Kante des Begrenzungskastens des Merkmals. Für Lichtpunkte können Entfernungen lediglich zu den Begrenzungskastenkanten bestimmt werden, da Lichtpunkte keine anderen Kanten aufweisen, die bei einer Entscheidung darüber helfen können, ob sie auf eine bestimmte Pseudozelle wirken. Die Entfernungen der Begrenzungskastenkanten und die Entfernungen der Viereckpolygonkanten werden gleichzeitig berechnet, um die Wirkung auf Pseudozellen zu bestimmen. Berechnungen von Kantenentfernungen werden von einem D-let- ASIS auf ähnliche Weise ausgeführt wie im Fall des Abtastumsetzers.
- Die Beurteilung der Wirkung von Viereckpolygonen mittels Rückgriff auf Kantenentfernungen wird mit Bezug auf die Figuren 15 bis 18 beschrieben. In Figur 15 hat eine Pseudozelle Ecken 1 bis 4, und ein Viereckpolygon hat Kanten A bis D. Mittels Rückgriff auf die Kantengleichungen werden die folgenden Entfernungen (d-Werte) berechnet:
- d1A, d2A, d3A, d4A
- d1B, d2B, d3B, d4B
- d1C, d2C, d3C, d4C
- d1D, d2D, d3D, d4D
- Die Figuren 15, 16 und 17 zeigen beispielhaft die Entfernungen d1B, d2B, d3B und d4B. In den Figuren 15 und 16 sind alle d-Werte positiv. In Figur 17 ist d2B negativ, aber d1B, d3B und d4B sind positiv. Für alle Merkmale wird bezüglich der Kanten der Begrenzungskästen ein entsprechender Satz von sechzehn Entfernungen berechnet, das heißt die Entfernung von jeder Pseudozellenecke zu jeder Begrenzungskastenkante. Bei dem in Figur 18 dargestellten Beispiel entsprechen somit für Ecke Nummer 2 der Pseudozelle die benötigten d-Werte den lotrechten Entfernungen von dieser Ecke aus zu jeder der vier gestrichelten Linien, die den Begrenzungskasten definieren.
- Bezüglich der vier d-Werte, die mit einer Viereckpolygonkante assoziiert sind, d.h. die Entfernungen von dieser Kante zu den vier Pseudozellenecken, werden die folgenden Zustände unterschieden und durch die assoziierten Ausgangscodes angezeigt:
- Jeder der vier d-Werte ist positiv oder null
- - Ausgangscode 11.
- Alle vier d-Werte sind negativ oder einige sind negativ, einige sind null
- - Ausgangscode 01.
- Jede andere Kombination (anderenfalls)
- - Ausgangscode 10.
- Die Ausgangscodes für die vier Kanten werden dann mittels UND-Schaltungen kombiniert, um Gesamtausgangscodes wie folgt zu erzeugen:
- Die d-Werte von den Kanten des Begrenzungskastens zu den Ecken der Pseudozelle werden auf die gleiche Weise verarbeitet wie die d-Werte für die Viereckpolygonkanten, um Ausgangscodes 11, 01 bzw. 10 für jede Kante des Begrenzungskastens und Gesamtausgangscodes 11, 10, 01 bzw. 00 für die kombinierten Kanten des Begrenzungskastens bereitzustellen. Es werden also zwei Ausgangscodes erzeugt, einer (ACges) für Polygonkanten und einer (ACXges) für die Kanten des Begrenzungskastens. Für Lichtpunkte gibt es keine anderen 'Kanten' als die Begrenzungskastenkanten. Dementsprechend sind die Gesamtausgangscodes, die denen der Kanten von Viereckpolygonen entsprechen, für Lichtpunkte auf einen Vorgabewert von 10 eingestellt.
- Die beiden Gesamtausgangscodes werden kombiniert, um entweder 'einschließen' (Merkmal ist zur weiteren Verarbeitung weiterzuleiten) oder 'ganze Überdeckung' (Merkmal ist zur weiteren Verarbeitung weiterzuleiten und ist undurchsichtig und überdeckt die ganze Pseudozelle) festzustellen. 'Einschließen' wird nur dann festgestellt, wenn:
- ACXges = 1?
- und
- ACges = 1?
- wobei ? gleich 1 oder 0.
- 'Ganze Überdeckung' wird nur dann festgestellt, wenn gilt:
- Das Fragment ist 'eingeschlossen'
- und
- ACges = ?1
- und
- ACXges = ?1
- und
- das Fragment ist weder durchsichtig noch ein Lichtpunkt, wobei wiederum ? gleich 1 oder 0.
- Figur 19 ist ein schematisches Ablaufdiagramm des Betriebs des Vorsortierers. Wie oben erwähnt, führt der Vorsortierer neben der Analyse der Wirkung auf die Pseudozelle auch die anfängliche Aussortierung von Merkmalsfragmenten aus (d.h. er schließt diejenigen Fragmente aus, die mit Sicherheit hinter einem völlig undurchsichtigen Merkmal liegen). Der Vorsortierer berechnet für jede Pseudozellenecke die Tiefe des Merkmals, das gerade verarbeitet wird. Das erfordert eine inverse Perspektiventransformation, die wie unten beschrieben mittels einer standardisierten ASIS ausgeführt werden kann. Die gleiche ASIS wird im ganzen System für inverse Perspektiventransformationen eingesetzt. Als Teil der Merkmalsattribute empfängt der Vorsortierer die Koeffizienten der Polygon-Ebenengleichungen, die wie oben beschrieben im TW berechnet wurden. Diese werden dazu verwendet, an jeder Pseudozellenecke das Inverse von Z zu berechnen (das Inverse der Z-Koordinate im Blickpunktraum desjenigen Punktes in der Merkmalsebene, der von einer Geraden geschnitten wird, die vom Blickpunkt aus durch die betreffende Pseudozellenecke gezogen wird).
- Es werden also für jedes Merkmal vier Z-Tiefen berechnet, für jede Pseudozellenecke eine Tiefe. Jede dieser vier Z- Tiefen wird dann gleichzeitig mit der entsprechenden einen der vier Z-Tiefen des (vom Blickpunkt aus) nächstliegenden zuvor verarbeiteten ganz überdeckenden undurchsichtigen Merkmals verglichen. Wenn alle Z-Tiefen des Merkmals, das gerade verarbeitet wird, größer sind als die des nächstliegenden ganz überdeckenden undurchsichtigen Merkmals, mit denen sie verglichen werden, dann wird das Merkmal, das gerade verarbeitet wird, aussortiert. Wenn alle Z-Tiefen des Merkmals, das gerade verarbeitet wird, kleiner sind als die des nächstliegenden ganz überdeckenden Merkmals, mit denen sie verglichen werden, und wenn das Merkmal, das gerade verarbeitet wird, undurchsichtig ist, dann ersetzt das Merkmal, das gerade verarbeitet wird, das zuvor verarbeitete ganz überdeckende undurchsichtige Merkmal.
- Figur 20 stellt die Tiefensortierung von Merkmalen im Vorsortierer dar. Die Blickrichtung wird durch den Pfeil 57 angezeigt. Die gestrichelten Linien 58 und 59 zeigen die obere und die untere Begrenzung einer Pseudozelle an. Die Linien 60 bis 66 deuten Merkmale an, die in Ebenen senkrecht zur Blattebene liegen. Das Merkmal 60 ist nicht undurchsichtig, während die Merkmale 61 bis 66 undurchsichtig sind. Das Merkmal 62 ist das nächstliegende ganz überdeckende undurchsichtige Merkmal, aber sein Z-Wert an der Linie 58 ist größer als der der Projektion des Merkmals 64 auf die Linie 58, und daher wird das Merkmal 64 nicht aussortiert. Der Z- Wert des Merkmals 62 an der Linie 59 ist größer als der der Projektion des Merkmals 65, und daher wird das Merkmal 65 nicht aussortiert. Die Merkmale 63 und 66 werden aussortiert.
- Figur 21 stellt schematisch den Vorsortierer-Prozessor dar. Der Vorsortierer in Figur 21 empfängt am Eingang 67 eine Reihe von Listen wirkender Merkmale, wobei jede Liste einer jeweiligen Superzelle entspricht. Ferner werden am Eingang 68 die Attributdaten vom Attributspeicher empfangen. Die vier Ecken (im Bildschirmraum) jeder Pseudozelle werden mittels eines Selektors 69 bestimmt. Wie oben beschrieben, entspricht jede Pseudozelle der Fläche nach sechzehn Pixeln zuzüglich einer Grenze der Breite eines halben Pixels. Im Idealfall wäre die Grundzelle quadratisch bzw. rechtwinklig, jedoch machen Verzerrungseffekte, die vielen Anzeigesystemen innewohnen, die Möglichkeit abnormaler Zellformen sehr wünschenswert, so daß Zellen so geformt sein können, daß sie solche Effekte ausgleichen. Eine ausgewählte Pseudozelle könnte daher für ihre vier Ecken vier verschiedene x-Koordinaten und vier verschiedene y-Koordinaten aufweisen. Die Auswahl von Pseudozellenecken, um Nichtlinearitäten des Anzeigesystems zu überwinden, wird untenstehend näher beschrieben.
- Die Ausgabe des Selektors 69 wird auf ein D-let 70 des oben beschriebenen Typs und auf einen Entfernungsrechner 71 angewandt, der die inverse Entfernung (1/Z) der vier Punkte in der Ebene jedes Merkmals berechnet, die den Ecken der Pseudozelle entsprechen. Für diese Berechnung wird angenommen, daß die Merkmalsebene die ganze Pseudozelle überdeckt. Wie oben beschrieben, führen die D-lets für Viereckpolygone zweiunddreißig Berechnungen aus, das heißt, für jede Ecke der Pseudozelle berechnen sie die lotrechte Entfernung von der Ecke zu jeder Kante des Merkmals und die lotrechte Entfernung von dieser Ecke zu jeder Kante des Begrenzungskastens des Merkmals. Lediglich für Lichtpunkte werden sechzehn Entfernungen (zu den Begrenzungskastenkanten) berechnet.
- Ein Analysator 72 entscheidet, ob ein Merkmal auf die jeweilige Pseudozelle wirkt oder nicht, wie oben beschrieben. Wenn ein Merkmal auf die Pseudozelle wirkt, dann wird seine ID mit seiner Entfernung vom Blickpunkt an jeder Pseudozellenecke in einen Speicher 73 geladen. Ein Komparator 74 vergleicht diese Entfernungen mit denen zuvor gespeicherter Merkmale, und verdeckte Merkmale werden aus dem Speicher 73 aussortiert.
- Nach der Verarbeitung jeder Pseudozelle werden die ausgewählten IDs auf den Fragmentbus 48 ausgegeben (Figur 14). Der Fragmentbus trägt die Koordinaten (im Bildschirmraum) der Pseudozellenecken und die Merkmals-IDs, die diese Pseudozelle betreffen. Aus den Koordinaten der Pseudozellenecken werden die Ecken der sechzehn Pseudopixel, die die Pseudozelle bilden, mittels bilinearer Interpolation abgeleitet.
- Wenn lediglich ein Prozessor des in Figur 21 dargestellten Typs bereitgestellt wird, werden die sechzehn Pseudozellen einfach eine nach der anderen verarbeitet. Zur Steigerung des Systemdurchsatzes ist es jedoch vorteilhaft, mehr als einen Pseudozellenprozessor bereitzustellen, zum Beispiel vier. Wenn vier Pseudozellenprozessoren bereitgestellt werden, kann jeder für eine jeweilige Gruppe von vier Pseudozellen zuständig sein, so daß eine vollständige Superzelle in vier Zyklen des Vorsortierers verarbeitet wird.
- Es kann sein, daß irgendeine Zeile bzw. Spalte von Pseudopixeln einen besonders 'unruhigen' Teil der Szene überdeckt, zum Beispiel den Horizont, an dem die Merkmalsdichte oft höher ist als für andere Bereiche des Bildschirms. Wenn zu Veranschaulichungszwecken angenommen wird, daß vier Vorsortierer-Prozessoren bereitgestellt werden, dann wird, falls jedem Prozessor eine Zeile von vier Pseudozellen zugeordnet wird, ein Prozessor im Vergleich zu den anderen u.U. überlastet, wenn dieser Prozessor einen unruhigeren Teil des Bildes bearbeitet als die anderen. Dieses Problem kann jedoch überwunden werden, wenn jedem Vorsortierer-Prozessor Pseudozellen zugeordnet werden, die über die jeweilige Superzelle verteilt sind. Figur 22 stellt eine solche Verteilung dar, wobei das vier-mal-vier-Gitter eine Superzelle darstellt und wobei die sechzehn Teilflächen innerhalb des Gitters jeweils eine jeweilige Pseudozelle darstellen. Ein Lastausgleich kann einfach dadurch erreicht werden, daß die mit Nummer 1 bezeichneten Pseudozellen einem ersten Prozessor zugeordnet werden, die mit Nummer zwei bezeichneten Pseudozellen einem zweiten Prozessor zugeordnet werden und so weiter. Diese einfache Verteilung von Vorsortierer-Verarbeitungsaufgaben verringert die Wahrscheinlichkeit, daß ein bestimmter Prozessor überlastet wird, stark und erreicht damit auf eine einfach realisierbare Art und Weise einen Lastausgleich innerhalb des Vorsortierers. Wenn lediglich zwei Prozessoren bereitgestellt würden, könnte ein Lastausgleich dadurch erreicht werden, daß in jeder Pseudozellenzeile bzw. -spalte unmittelbar benachbarte Pseudozellen in verschiedenen Prozessoren verarbeitet werden.
- Figur 23 stellt die Verteilung von zweiunddreißig Stichprobenpunkten relativ zu einem einzigen Pixel des endgültigen wiedergegebenen Bildes dar. In Figur 23 repräsentiert der quadratische Umriß, der durch die gestrichelte Linie 75 angedeutet ist, die Begrenzung einer einzigen Pseudozelle. Die quadratische gestrichelte Linie 76 repräsentiert den Umfang eines Bereichs, der zweiunddreißig Stichprobenpunkte einschließt, wobei Stichproben von jedem dieser zweiunddreißig Stichprobenpunkte wesentlich sind für den endgültigen RGB-Wert, der dem Pixel zugewiesen wird, das zentral innerhalb des Bereichs liegt, der durch die gestrichelte Linie 76 umrissen ist. Eine Kante des Pixels ist mit der Ziffer 77 angezeigt. Die Punkte innerhalb des Bereichs, der von der Linie 76 eingeschlossen wird, repräsentieren individuelle Stichprobenpunkte. Die Positionen dieser Stichprobenpunkte relativ zu den Pseudozellenbegrenzungen sind für jedes Einzelbild fest, können aber von einem Einzelbild zum nächsten geändert (gezittert) werden, wenn eine zufällige Stichprobennahme gewünscht wird. Es ist ersichtlich, daß acht Stichprobenpunkte innerhalb des Umfangs des betreffenden Pixels, vier Stichprobenpunkte in jedem der anstoßenden Halbpixelbereiche und zwei Stichprobenpunkte in jedem der anstoßenden Viertelpixelbereiche liegen. Die Anzahl der Stichprobenpunkte pro Pixel wird natürlich entsprechend den besonderen Leistungsanforderungen an das System ausgewählt werden. Eine Erhöhung der Anzahl der Stichprobenpunkte erhöht die Qualität des Endbildes.
- Das Spezialeffektmodul 50 (Figur 14) ist schematisch in Fig. 24 gezeigt. Es empfängt Fragmentdaten vom Vorsortierer 47 und Attributdaten vom Attributspeicher 22. Das Modul 50 besteht aus einer Reihe von Teilsystemen 78 bis 81, die jeweils einen Spezialeffekt handhaben. Im dargestellten Fall verarbeit das Teilsystem 78 Beschaffenheitseffekte, das Teilsystem 79 Nebel, das Teilsystem 80 Landelichter und das Teilsystem 81 Schattierungen. Es kann natürlich auch für andere Spezialeffekte gesorgt werden. Jedes der Teilsysteme erzeugt eine jeweilige Ausgabe (B, N, LL, S) für jedes Pseudopixel der Pseudozelle, die gerade verarbeitet wird. Pseudozellen werden eine nach der anderen verarbeitet, wenn sie vom Vorsortierer auf dem Fragmentbus ankommen.
- Betrachtet man zum Beispiel das Beschaffenheits- Teilsystem, dann können hier übliche Beschaffenheitstechniken eingesetzt werden, um bezüglich jedes Pseudopixels Beschaffenheitsausgaben B zu erzeugen. Solche Techniken umfassen im wesentlichen die Projizierung des Pseudopixels in den 'Beschaffenheits'-Raum, der für jedes modellierte Merkmal definiert ist, auf das Beschaffenheit angewandt werden soll, die Berechnung der Beschaffenheitsraum-Koordinaten für jedes projizierte Pseudopixel, das Auslesen der Beschaffenheit aus einer Beschaffenheitskarte, entsprechend den berechneten Beschaffenheitsraum-Koordinaten, und das Ausgeben des Ergebnisses. Der genau Ansatz, der zur Berechnung der Beschaffenheitsausgabe B bzw. der anderen Spezialeffektausgaben gewählt wird, ist für die vorliegende Erfindung jedoch ohne Belang und wird daher hierin nicht näher beschrieben. Es ist lediglich notwendig, zu verstehen, daß für jedes Pseudopixel, auf das diese Effekte angewandt werden sollen, Ausgaben B, N, LL und S erzeugt werden.
- Der Farbmischer 51 (Figur 14) ist in Figur 25 dargestellt. Der Farbmischer empfängt Fragmentdaten vom Vorsortierer 48, Attributdaten vom Attributspeicher 22 und die Ausgaben B, N, LL, S des Spezialeffektmoduls. Innerhalb des Farbmischers befinden sich Teilsysteme, die die verschiedenen Eingaben kombinieren, um gewünschte Effekte zu erzielen. Diese Teilsysteme können eine Anordnung von Prozessoren 82 bis 87 umfassen, denen jeweils eine bestimmte Aufgabe zugewiesen ist. Die genaue Beziehung zwischen den verschiedenen Teilsystemen und den Eingaben in den Farbmischer ist für die vorliegende Erfindung ohne Belang. Es ist lediglich nötig, zu verstehen, daß der Farbmischer eine Ausgabe 88 liefert, die einen RGBT- Wert für jedes Pseudopixel der Pseudozelle einschließt, die gerade verarbeitet wird. Die Ausgabe 88 wird an den Nachsortierer 52 geliefert.
- Es wird nun auf Figur 26 Bezug genommen, in der schematisch die Struktur des Nachsortierers dargestellt ist. Für jeden Stichprobenpunkt (200 pro Pseudozelle) ist ein Nachsortierer-Prozessor vorgesehen. Jeder Nachsortierer umfaßt einen Detektor 89 zum Erkennen der Wirkung auf Stichprobenpunkte, einen Rechner 90 zum Berechnen des Inversen der Tiefe Z, einen Transparenzstapel 91 und einen Summierer 92. Die Ausgaben des Nachsortierer-Prozessors werden mittels Schaltungen 93 gewichtet und summiert, von denen eine pro Pixel vorgesehen ist, das heißt sechzehn pro Pseudozelle. Der Betrieb des Nachsortierers ist in Fig. 27 dargestellt.
- Jeder Nachsortierer-Prozessor empfängt die geometrischen Attribute jedes Merkmals, das als auf die betreffende Pseudozelle wirkend identifiziert worden ist, zuzüglich des RGBT-Werts, der vom Farbmischer für das Pseudopixel erzeugt worden ist, innerhalb dessen der Stichprobenpunkt liegt. Für jeden Stichprobenpunkt werden die entsprechenden Pseudopixeldaten mit Bezug auf die Lage des Stichprobenpunktes relativ zur Pseudozelle ausgewählt. Völlig durchsichtige Stichproben werden ausgeschlossen, um ein übermäßiges Füllen der Transparenzstapel zu vermeiden.
- Für jede Pseudozelle werden sechzehn RGBT-Werte für die sechzehn Pseudopixel, die die Pseudozelle überdecken, vom Farbmischer in den Nachsortierer eingegeben. Jeder Nachsortierer-Prozessor ist dazu eingerichtet, für den Quadranten, der den Stichprobenpunkt enthält, vier Pseudopixelwerte zu empfangen, wobei ein Quadrant ein Viertel einer Pseudozelle ist, das heißt 2x2 Pseudopixel. Jeder Prozessor ist jedoch dazu programmiert, alle RGBT-Werte zu ignorieren außer dem einen für dasjenige Pseudopixel, das den Stichprobenpunkt dieses Prozessors enthält. Jeder Pseudopixelbereich enthält entweder 12 oder 13 Stichprobenpunkte, während jeder Quadrantenbereich 50 Stichprobenpunkte enthält und jedes anstoßende Pseudopixelpaar 25 Stichprobenpunkte enthält
- Im Fall von Viereckpolygonen macht der Wirkungsdetektor von den Geradengleichungen des Merkmals, das gerade verarbeitet wird, Gebrauch, um zu entscheiden, ob es auf den Stichprobenpunkt wirkt. Figur 28 stellt ein Viereckpolygon 94 und zwei Stichprobenpunkte 95 und 96 dar, auf die das Viereckpolygon 94 wirkt bzw. nicht wirkt. Es sei wiederholt, daß die Geradengleichungen, welche die Kanten des Polygons definieren, von D-let-ASIS dazu verwendet werden, die lotrechten Entfernungen von den Ecken der Pseudozelle zu jeder Kante zu bestimmen. Der Prozessor setzt dann bilineare Interpolation ein, um die Entfernungen von den vier Kanten zu seinem eigenen Stichprobenpunkt zu bestimmen. Für jeden Stichprobenpunkt werden vier Entfernungen ausgegeben. Wenn alle vier positiv oder null sind, dann hat eine Wirkung stattgefunden. Wenn eine negativ ist, dann liegt keine Wirkung vor.
- Eine Zweideutigkeit kann entstehen, wenn eine Begrenzung zwischen zwei Merkmalskanten genau durch den Stichprobenpunkt geht (Entfernung gleich null). Wenn von beiden Merkmalen angenommen wird, daß sie auf den Stichprobenpunkt wirken, dann hat das eine Überlappung zur Folge. Wenn von keinem der Merkmale angenommen wird, daß es auf den Stichprobenpunkt wirkt, dann hat das ein 'Loch' zur Folge. Das Problem läßt sich überwinden, wenn eine der zwei Merkmalskanten so markiert wird, daß angezeigt wird, daß sie die gemeinsame Kante 'besitzt', das heißt, daß sie allein auf den Stichprobenpunkt wirkt. Ein möglicher Ansatz zur Erzeugung eines solchen Anzeigers wäre, eine beliebige Kante, die genau durch einen Stichprobenpunkt geht, zu identifizieren (lotrechte Entfernung gleich null) und für diesen Stichprobenpunkt jedes weitere Merkmal, welches das gleiche Kriterium erfüllt, zu sperren. Ähnliche Probleme können auftreten, wenn Scheitelpunkte von Merkmalen auf einen Stichprobenpunkt wirken. Das Problem kann auch hier dadurch gelöst werden, daß zweite und nachfolgende Polygone, die auf einen Stichprobenpunkt wirken, gesperrt werden.
- Im Fall von Lichtpunkten, gleich ob RLPs oder KLPs, ist die Wirkungsbeurteilung relativ einfach und ist untenstehend für Lichtpunkte beschrieben, die im Bildschirmraum Kreise sind, wobei die Bildschirmraumkoordinaten des Mittelpunktes des Lichtpunktkreises und der Lichtpunktradius im TW (Figur 1) berechnet werden. Die Berechnung des Lichtpunktradius und der dem Lichtpunkt eigenen Intensität wird mit Bezug auf Fig. 29 beschrieben. In Fig. 29 zeigt die durchgezogene Linie 97 die Schwankung des Radius mit Z in Blickpunktkoordinaten an. Für Z kleiner als eine erste Grenzentfernung ZMIN wird der Lichtpunktradius an einen maximalen Radius geheftet. Der maximale Radius kalligraphischer Lichtpunkte muß begrenzt werden, um zu verhindern, daß sie größer werden als die maximale Größenkapazität des Projektors für kalligraphische Lichtpunkte, und der maximale Radius von Rasterlichtpunkten muß begrenzt werden, um zu verhindern, daß sie eine unrealistisch große Fläche im Bildschirmraum einnehmen. Für Z größer als eine zweite vorgegebene Grenzentfernung ZGRENZ wird der Radius an einen minimalen Radius geheftet, um ein ungeregeltes 'Funkeln' bzw. eine ungeregelte Szintillation zwischen Einzelbildern zu verhindern, was auftreten würde, wenn der Lichtpunkt zu klein wird. Eine Szintillation könnte selbstverständlich, falls gewünscht, absichtlich eingeführt werden, würde aber dadurch erreicht, daß die einem Lichtpunkt eigene Intensität zwischen aufeinanderfolgenden Einzelbildern variiert würde. Für Lichtpunkte an einer Entfernung zwischen ZMIN und ZGRENZ wird der Radius mit Z verringert, zum Beispiel als eine Funktion von Z Quadrat.
- Die Eigenintensität kann ferner in Abhängigkeit von Z eingestellt werden, wie durch die Linie 98 angezeigt wird. Die Intensität wird demnach für Z kleiner als ZGRENZ konstant gehalten und fällt, wenn Z über ZGRENZ steigt. Auf diese Weise können mittels einer geeigneten Einstellung sowohl des Radius als auch der Intensität realistische Weiteneffekte simuliert werden. Die genaue Beziehung zwischen Z, dem Radius und der Eigenintensität ist nicht von grundlegender Bedeutung, aber das in Fig. 29 dargestellte Beispiel liefert realistische Effekte.
- Es wird nun auf Fig. 30 Bezug genommen, welche die Wirkungsbeurteilung für Lichtpunkte darstellt. In Fig. 30 ist die Begrenzung eines Lichtpunktes durch den Kreis 99 angezeigt. Für die Geraden 100 und 101, die parallel zur x- bzw. y-Achse des Bildschirms liegen, werden auf triviale Weise Geradengleichungen berechnet. Diese Gleichungen sind:
- y - yc = 0
- x - xc = 0,
- wobei (xc, yc) die Koordinaten des Lichtpunkt-Mittelpunktes sind. Beispielhaft sind zwei Stichprobenpunkte 102 und 103 gezeigt. Für jeden Stichprobenpunkt werden die lotrechten Entfernungen d1 und d2 zu den Geraden 100 und 101 berechnet. Auf einen Stichprobenpunkt wird eine Wirkung ausgeübt, wenn:
- (d1)² + (d2)² ≤ R²
- Auf diese Weise ist die Wirkungsbeurteilung für alle Merkmalstypen beschrieben.
- Für jedes Merkmal wird die inverse Tiefe (1/Z) eines Merkmals, das auf einen Stichprobenpunkt wirkt, mittels des Z-Tiefenrechners 90 berechnet. Fig. 31 stellt die grundlegende Geometrie dar. Ein Merkmal 104 wird vom Blickpunkt 106 aus durch eine Betrachtungsebene 105 betrachtet. Die Ebenengleichung des Merkmals ist aus den empfangenen Attributen bekannt, und somit können die (x, y, z)-Koordinaten eines beliebigen Punktes P am Merkmal im Blickpunktraum aus der Gleichung
- berechnet werden, wobei A, B, C und D die Ebenengleichungskoeffizienten des Merkmals sind,
- dx und dy Funktionen des Halbwinkels der Anzeige sind,
- xs und ys die Bildschirmraumkoordinaten einer vom Blickpunkt zum Punkt P gezogenen Linie sind, und
- xo und yo die Koordinaten des Ursprungs des Bildschirmraums sind.
- Die x- und y-Koordinaten im Blickpunktraum können ferner leicht wie folgt berechnet werden:
- x = zxs/dx y = zys/dy.
- Es ist zu beachten, daß diese inverse Perspektiventransformation dieselbe Transformation ist, die ggf. im gesamten System verwendet wird, zum Beispiel im Vorsortierer zum Sortieren von Merkmalen gemäß der Z-Tiefe, und daß sie von einer dedizierten ASIS ausgeführt werden kann.
- Die inverse Tiefe des wirkenden Fragments wird mit den RGBT-Werten an den Transparenzstapel geleitet. Der Stapel kann zum Beispiel acht Einträge speichern, die jeweils den RGBT- Wert und 1/Z für ein Merkmalsfragment enthalten. Wenn dem Stapel ein (an dem bestimmten Stichprobenpunkt) durchscheinendes Merkmalsfragment vorgelegt wird, dann wird sein 1/Z-Wert mit allen bestehenden Einträgen im Stapel verglichen. Angenommen, es gibt keine früheren Einträge, dann wird das erste durchscheinende Merkmal in Position acht im Stapel gespeichert, wobei seine Position durch einen Zeiger 'Spitze-des-Stapels' angezeigt wird, der auf die Position acht zeigt. Das nächste (zweite) durchscheinende Fragment wird der Tiefe nach mit dem in Position acht verglichen. Die beiden Fragmente werden in den Positionen sieben und acht gespeichert, und zwar das nächstgelegene Fragment in Position sieben. Der Stapelzeiger zeigt dann auf Position sieben. Wenn ein Fragment empfangen wird, das am Stichprobenpunkt undurchsichtig ist, wird das Fragment korrekt der Tiefe nach im Stapel positioniert und dann den Stapel hinunter auf Position acht bewegt (wenn es sich nicht schon in Position acht befindet). Alle Einträge im Stapel darunter werden ausgeschlossen, und alle Einträge darüber werden mit ihm nach unten bewegt, so daß die Tiefenordnung aufrechterhalten wird. Der Stapelzeiger folgt dem nächstgelegenen Fragment (an der Spitze des Stapels).
- Im Fall von RLPs wird der gleiche Vorgang eingesetzt, aber die Anzahl von RLPs, die zu einem bestimmten Zeitpunkt speicherresident sein können, ist zum Beispiel auf eins begrenzt. Der erste RLP, der näher liegt als das aktuell nächstliegende undurchsichtige Merkmal im Stapel, wird somit an der zutreffenden Stelle in den Stapel eingefügt. Wenn ein zweiter RLP empfangen wird, dann wird er entweder ausgeschlossen (wenn er weiter vom Blickpunkt entfernt ist als der speicherresidente RLP), oder er wird an der zutreffenden tiefensortierten Position in den Stapel eingesetzt (wenn er näher am Blickpunkt liegt als der speicherresidente RLP). Wenn der zweite RLP in den Stapel eingesetzt wird, wird der zuvor speicherresidente RLP ausgeschlossen. Bei einigen Realisierungen kann zwar mehr als ein RLP im Stapel aufgenommen werden, im allgemeinen wird jedoch angesichts der Tatsache, daß die RLP-Intensität auf die relativ niedrige maximale Intensität, die bei der Rasterprojektion von Pixeln möglich ist, begrenzt ist, ein RLP für ein realistisches Endbild ausreichen.
- KLPs werden nicht in den Stapel eingegeben, sondern werden verarbeitet, wie untenstehend nach einer Diskussion der weiteren Verarbeitung von Merkmalen, die in den Transparenzstapel geladen werden, beschrieben wird.
- Jeder Nachsortierer-Prozessor produziert somit eine Liste von Fragmenten in Tiefenordnung, mit denen jeweils ein RGB- und ein T-Wert assoziiert ist. Der endgültige Farbbeitrag jedes Stichprobenpunktes wird dann im Summierer 92 berechnet. Angenommen, es liegen sieben durchscheinende Fragmente mit Transparenzwerten T0, T1 ... T6 vor und die sieben durchscheinenden und ein undurchsichtiges Fragment haben Farben R0G0B0, R1G1B1 ... R7G7B7, dann beträgt die Gesamttransparenz vor dem n-ten durchscheinenden Fragment:
- cTn = T&sub0; x T&sub1; x .. .. x Tn-1,
- Jede endgültige Farbkomponente (R, G, B) wird dann wie folgt berechnet:
- R = cT0 x R0 + cT1 x R1 + ... cT7 x R7
- G = cT0 x G0 + cT1 x G1 + ... cT7 x G7
- B = cT0 x B0 + cT1 x B1 + ... cT7 x B7
- Jeder Stichprobenpunkt-Prozessor produziert somit einen einzigen RGB-Wert, und die endgültigen Pixel-RGB-Werte werden aus einer gewichteten Summierung dieser Werte gebildet.
- Für jedes Pixel des endgültigen Bildes sind zweiunddreißig Stichprobenpunkte von Bedeutung, das heißt die acht Stichprobenpunkte innerhalb dieses Pixels zuzüglich der vierundzwanzig Stichprobenpunkte in einer Begrenzung der Breite eines halben Pixels um das Pixel herum. Den Stichprobenpunkten werden verschiedene Gewichtungen zugewiesen, da Stichprobenpunkte nahe am Pixelmittelpunkt wirksamer sein sollten als Stichprobenpunkte nahe am Rand der Pixelbegrenzung. Jeder Stichprobenpunkt leistet einen Beitrag zu vier verschiedenen Pixeln und hat für jedes Pixel, zu dem er einen Beitrag leistet, eine andere Gewichtung, wobei die Gewichtung eine Funktion der Entfernung vom Stichprobenpunkt zum betreffenden Pixelmittelpunkt ist.
- Jede Gewichtungs- und Summiereinrichtung 93 empfängt die Ausgaben von zweiunddreißig Nachsortierer-Prozessoren, wendet die entsprechenden Gewichtungen an, summiert die Ergebnisse und gibt die Summe an die jeweilige Pixeladresse im Bildspeicher aus. Alle sechzehn Pixel in der Zelle werden gleichzeitig von den sechzehn Gewichtungs- und Summiereinrichtungen verarbeitet, und dann werden die Daten, die die nächste Zelle mit sechzehn Pixeln betreffen, an den Nachsortierer freigegeben. Der Vorgang wird dann wiederholt, bis alle Zellen aller Superzellen verarbeitet sind. Das fertiggestellte Einzelbild kann dann zur Anzeige heruntergeladen werden.
- Der Lichtpunktspeicher führt zwei Funktionen aus, und zwar Transparenzberechnungen für RLPs und Transparenzberechnungen für KLPs sowie deren weitere Verarbeitung.
- Die Transparenz von Lichtpunkten wird als eine Funktion der Lichtpunktintensität berechnet. Die Intensität von RLPs und KLPS wird im Lichtpunktspeicher berechnet, wobei anfangs die Abwesenheit dazwischenliegender Merkmale angenommen wird; die berechnete Intensität ist dabei im wesentlichen eine Funktion der Weite, der Bündelung, der atmosphärischen Dichte usw. Die Transparenz wird so berechnet, daß ein Lichtpunkt hoher Intensität einen geringen Transparenzwert aufweist, während ein Lichtpunkt geringer Intensität einen hohen Transparenzwert aufweist. Die genaue Beziehung zwischen Intensität und Transparenz ist nicht besonders wichtig, aber die Beziehung könnte zum Beispiel darin bestehen, daß an einem ersten gegebenen Intensitätsniveau oder darunter ein minimaler Tranzparenzwert vorgegeben wird und an einem zweiten gegebenen Intensitätsniveau oder darüber der Lichtpunkt als undurchsichtig angesehen wird, wobei die Transparenz zwischen den beiden gegebenen Intensitätsniveaus auf nichtlineare Weise variiert. Die Intensität wird aus den Attributen berechnet, die an den Lichtpunktspeicher geliefert werden, und die RLP- Intensität wird entlang des Weges, der in Figur 14 zwischen dem Lichtpunktspeicher und dem Farbmischer angedeutet ist, zurück zum Farbmischer gespeist.
- KLPs werden nach der Raster-Abtastprojektion des Inhalts des Bildspeichers projiziert. Die KLPs werden dem Rasterbild überlagert. Die Intensität eines kalligraphischen Lichtpunktes muß durchscheinende Merkmale zwischen diesem KLP und dem Blickpunkt berücksichtigen, und daher werden KLPs verarbeitet, nachdem alle Merkmale in den zutreffenden Transparenzstapel eingegeben worden sind. KLPs werden im wesentlichen vom Vorsortierer zurückgehalten, bis alle anderen Merkmale verarbeitet sind. Ferner ist es für die Qualität des endgültigen Bildes sehr wichtig, daß überlappende KLPs sich nicht ansammeln. Wenn kein Anti-Ansammlungsmechanismus vorgesehen ist, dann scheint sich zum Beispiel die Intensität von Start- und Landebahnlichtern, die in Bodennähe von einem Ende der Start- bzw. der Landebahn betrachtet werden, mit der Weite zu erhöhen. Das hat zur Folge, daß das entfernte Ende der Start- bzw. Landebahn bergauf zu gehen scheint.
- Für jeden Stichprobenpunkt wird die Z-Tiefe jedes KLP, der auf den Stichprobenpunkt wirken würde, mit den Z-Tiefen von Merkmalen im jeweiligen Stapel verglichen. Kalligraphische Lichtpunkte werden als Lichtpunktketten modelliert, wobei jede Kette von einem Objektprozessor verarbeitet wird, und werden von diesem Objektprozessor in der Reihenfolge 'nah am Blickpunkt' zu 'fern vom Blickpunkt' ausgegeben. Jeder Stichprobenpunkt empfängt somit den nächstgelegenen auf ihn wirkenden KLP einer beliebigen Kette zuerst.
- An jedem Stichprobenpunkt wird die Dämpfung eines KLP, der auf diesen Stichprobenpunkt wirkt, als eine Funktion der Transparenz der Merkmale berechnet, die im Transparenzstapel als näher am Blickpunkt liegend identifiziert sind als der KLP. Ferner wird eine nffnung' für den KLP berechnet, wobei die nffnung für jeden Stichprobenpunkt entweder 1 oder 0 ist, wobei '1' eine Wirkung auf den Stichprobenpunkt anzeigt und '0' keine Wirkung anzeigt. Die Öffnung und die Dämpfung für jeden Stichprobenpunkt werden in der Gewichtungs- und Summiereinrichtung (Komponente 93 in Fig. 26) kombiniert, und die kombinierten Dämpfungen und Öffnungen für jedes Pixel in der jeweiligen Zelle werden an den Lichtpunktspeicher ausgegeben.
- Die Transparenz des ersten KLP, der an einem Stichprobenpunkt empfangen wird, wird in einem Schleierspeicher gespeichert, wobei zu dem Transparenzstapel jedes Nachsortierer-Prozessors ein Schleierspeicher gehört. Wenn ein zweiter KLP auf den gleichen Stichprobenpunkt wirkt, dann wird seine Dämpfung wie für den ersten berechnet, jedoch wird dabei zusätzlich der nähergelegene KLP berücksichtigt, der bereits im Schleierspeicher gespeichert ist. Die berechnete Dämpfung und die berechnete Öffnung werden mit denen der anderen Stichprobenpunkte, auf die eine Wirkung ausgeübt wird, kombiniert und wie zuvor an den Lichtpunktspeicher ausgegeben. Die Transparenz des ersten (im Schleierspeicher gespeicherten) KLP wird dann mit der Transparenz des zweiten KLP multipliziert, um eine kombinierte Transparenz zu bilden, die dann als ein neuer Wert in den betreffenden Schleierspeicher geschrieben wird. Der Schleierspeicher speichert somit eine summierte Transparenz für alle KLPs, die auf den jeweiligen Stichprobenpunkt wirken, was somit den Effekt berücksichtigt, daß ein KLP einen weiter entfernten KLP effektiv verdeckt. Die Vorbedingung dafür ist, daß alle KLPs, für die ein Anti-Ansammlungsmechanismus benötigt wird, dem Nachsortierer in einer Reihenfolge von 'nah' zu 'fern' vorgelegt werden müssen. Für einige Effekte, zum Beispiel die Simulierung von Lichtquellen mit sehr hoher Intensität, kann eine Ansammlung von KLPs wünschenswert sein. Das kann einfach dadurch erreicht werden, daß der Anti-Ansammlungsmechanismus für die betreffenden KLPs gesperrt wird.
- Die Projektionstechniken für KLPs bedeuten, daß jeder KLP als ein kreisförmiger Fleck mit einer Gaußschen Intensitätsverteilung projiziert wird. Eine Intensitätsmodulation innerhalb eines KLP ist nicht möglich. Die Intensität des KLP muß daher als eine Funktion seiner summierten Öffnung und Dämpfung berechnet werden.
- Die summierte Öffnung ist die Anzahl von Stichprobenpunkten in der jeweiligen Zelle, auf die der KLP potentiell wirkt. Die summierte Dämpfung stellt einen Dämpfungsfaktor dar, der ein Maß für den sichtbaren Anteil des KLP innerhalb der Zelle ist, nachdem eine Verdeckung (durch näherliegende undurchsichtige Merkmale) und eine Dämpfung (durch näherliegende durchscheinende Merkmale) berücksichtigt worden ist. Wenn zum Beispiel berechnet wird, daß ein KLP ganz in eine Zelle fällt und seine Größe so berechnet wird, daß er zwanzig Stichprobenpunkte in der jeweiligen Zelle überdeckt, dann ist seine Öffnung 20. Wenn es ein näherliegendes undurchsichtiges Merkmal gibt, daß zehn dieser Stichprobenpunkte überdeckt, dann wird der Dämpfungsfaktor als berechnet. Wenn es, um ein anderes Beispiel zu nehmen, ein näherliegendes durchlässiges Merkmal gibt, daß zehn jener zwanzig Stichprobenpunkte überdeckt und einen Transparenzwert von 0,5 aufweist, dann wird der Dämpfungsfaktor als 15 berechnet. Im ersten Fall wird die endgültige Intensität des KLP um den Faktor 0,5 modifiziert (Dämpfungsfaktor (10) dividiert durch Öffnung (20)). Im zweiten Fall wird die endgültige Intensität des KLP um den Faktor 0,75 modifiziert (Dämpfungsfaktor (15) dividiert durch Öffnung (20)).
- Da KLPs mehr als eine benachbarte Zelle überlappen können, muß die endgültige Berechnung der Intensität verschoben werden, bis alle Zellen, die von dem KLP überdeckt werden, vom Nachsortierer verarbeitet worden sind. Die endgültige Intensität ergibt sich durch Summierung der Öffnungsbeiträge von allen überlappten Zellen, Summierung der Dämpfungsbeiträge von allen überlappten Zellen und Quotientenbildung der beiden gebildeten Summen.
- Fig. 32 ist eine schematische Darstellung des Lichtpunktspeichers. Lichtpunktattributdaten werden von den Objektprozessoren empfangen und in einem Attributspeicher 107 gespeichert. Für jede KLP-Kette wird ferner von den Objektprozessoren eine Liste zur Zeichnungsreihenfolge für KLPs empfangen und in einem Speicher 108 für Zeichnungsreihenfolgen-Listen gespeichert. Die gespeicherten Listen werden von einer Zeichnungsreihenfolgen-Steuerung 109 dazu verwendet, einen KLP-Speicher 110 zu adressieren, so daß eine KLP-Anzeigeschnittstelle 111 KLP-Anzeigedaten in einer zutreffenden Reihenfolge empfängt.
- Ein Bündelungsprozessor 112 empfängt am Ausgang 113 von den Objektprozessoren einen Blickrichtungsvektor und am Eingang 114 einen KLP-Richtungsvektor. Der Bündelungsprozessor 112 gibt eine Intensität, die seiner Eingabe entspricht, an einen Intensitäts- und Größenprozessor 115 aus. Der Prozessor 115 erzeugt am Ausgang 116 einen Undurchsichtigkeitswert für den Lichtpunkt (RLP oder KLP), der an den Farbmischer zurückgegeben wird. Der Prozessor 115 erzeugt ferner eine Ausgabe 117, welche die Größe und die Intensität des KLP anzeigt.
- Der Speicher 110 empfängt am Eingang 118 Positions- und Farbattribute vom Attributspeicher 107 und die Eingabe 117. Ein Öffnungs- und Dämpfungssummierer 119 empfängt Öffnungs- und Dämpfungsdaten vom Nachsortierer am Eingang 120 und liefert eine summierte Öffnungs- und Dämpfungsausgabe an den Speicher 110. Der Speicher 110 liefert eine Eingabe an den Summierer 119, um die Summierung von Öffnungs- und Dämpfungsdaten von benachbarten Zellen zu ermöglichen, die vom gleichen KLP überlappt werden. Gesteuert durch die Zeichnungsreihenfolgen-Steuerung 109 summiert der Speicher auf diese Weise die endgültigen KLP-Anzeigedaten zur Ausgabe an die Anzeigeschnittstelle 111.
- Ein bei Bilderzeugern oft angetroffenes Problem ist das der nichtlinearen Abbildung. Wenn ein Bild auf einen nichtebenen Anzeigebildschirm projiziert wird, wie zum Beispiel einen Rückproschirm, der durch einen sphäroidischen Spiegel betrachtet wird, treten Nichtlinearitäten auf, zum Beispiel aufgrund der achsenversetzten Position von Projektoren. Die Folge ist, daß die angezeigten Pixel weder rechteckig noch von gleicher Gestalt oder Größe sind. Wenn das gezeigte Bild nicht verzerrt erscheinen soll, ist eine Korrektur erforderlich.
- Beim oben beschriebenen System ist der Anzeigebildschirm in quadratische Pseudozellen unterteilt, die jeweils aus einer regelmäßigen Anordnung quadratischer Pixel durchweg gleicher Größe zusammengesetzt sind. Die Wirkung von Merkmalen auf Pseudozellen wird mit Bezug auf die Pseudozellenecken bestimmt, und die Wirkung von Merkmalen auf Stichprobenpunkte wird mit Bezug auf die Position der Stichprobenpunkte relativ zu den Pseudozellenbegrenzungen bestimmt. Diese allgemeine Struktur macht es möglich, eine nichtlineare Abbildung zu korrigieren, indem einfach die Pseudozellenbegrenzungen so gesetzt werden, daß sie der verzerrten Rasterabtastung entsprechen, die sich aus Unvollkommenheiten im visuellen System ergibt.
- Ausführlicher heißt das, daß im Vorsortierer die Wirkung von Merkmalen dadurch entschieden wird, daß die Entfernung jeder Ecke einer Pseudozelle von den Kanten des Merkmals berechnet wird. In Figur 33 wirkt das Polygon 122 nicht auf die quadratische Pseudozelle 121, und somit würde das Polygon 122 von der Betrachtung ausgeschlossen, was die Pseudozelle 121 angeht. Wenn jedoch das optische System, das dazu verwendet wird, die Informationen anzuzeigen, die der Pseudozelle 121 entsprechen, die Fläche der Pseudozelle so verzerrt, daß ihre verzerrten Ecken so liegen, wie mit den Ziffern 123 bis 126 angedeutet, dann ist ersichtlich, daß sich die Ecke 124 bis in das Polygon 122 erstreckt. Das Polygon 122 muß somit in die zur Pseudozelle gehörende Merkmalsliste aufgenommen werden.
- Das wird einfach dadurch erreicht, daß verzerrte Pseudozellen verwendet werden, deren Ecken der wirklichen Position von Pseudozellenecken entsprechen, wenn sie projiziert werden. Unter der Annahme, daß eine Zelle vier Ecken (x&sub0;y&sub0;), (x&sub1;,y&sub1;), (x&sub2;,y&sub2;), (x&sub3;,y&sub3;) aufweist, dann ist also im Fall einer quadratischen Zelle x&sub0; = x&sub2;, y&sub0; = y&sub1;, y&sub2; = y&sub3; und x&sub1; = x&sub3;. Bei einer verzerrten Zelle sind dagegen u.U. keine zwei Koordinatenwerte gleich. Der Anzeigebildschirm ist zwar daher nominell in eine rechteckige Anordnung von Pseudozellen unterteilt, die Pseudozellenecken sind jedoch verzerrt, um Verzerrungen im optischen Projektionssystem zu berücksichtigen. Alle Berechnungen im Vorsortierer bleiben gültig, gleich ob es sich um eine rechteckige oder um eine verzerrte Pseudozelle handelt. Pseudopixelbegrenzungen lassen sich leicht ableiten, z.B. durch Interpolation aus den Eckenkoordinaten. Bei der beschriebenen Realisierung sind die vier Ecken jeder verzerrten Pseudozelle gerade. In dem in Figur 33 dargestellten Fall würde die Ecke 124 der Pseudozelle als innerhalb des Polygons 122 liegend identifiziert, und die ID des Polygons 122 würde als für diese Pseudozelle relevant weitergeleitet. Die Bestimmung einer Wirkung erfolgt auf der Grundlage der gleichen Gleichungen wie oben für quadratische Pseudozellen beschrieben. Innerhalb des Spezialeffektmoduls werden die Pseudopixel verarbeitet, wie oben beschrieben, wobei die Pseudopixelecken durch Interpolation aus den Pseudozellenecken abgeleitet werden. Die Eingabe an den Nachsortierer ist somit, wie bei einer nichtverzerrten Pseudozellenanordnung, eine Reihe von Merkmals-IDs, die jeweils von sechzehn Pseudopixel-RGBT-Werten begleitet werden.
- Die Stichprobenpunkte und Pixelbegrenzungen werden mittels Interpolation relativ zu den Pseudozellenecken in ihrer Position fixiert, das heißt relativ zum gleichen Koordinatensystem wie die Pseudopixel. Somit ist jede Gruppe von zweiunddreißig Stichprobenpunkten, die ein bestimmtes Pixel betreffen, bekannt. Figur 33 zeigt ein Pixel, das durch die schraffierte Fläche 127 angezeigt ist und eine Begrenzung der Breite eines halben Pixels aufweist, die durch die Linie 128 gezeigt ist. Es ist ersichtlich, daß das Pixel selbst nicht quadratisch ist, da die Begrenzungen von Pseudopixeln und Pixeln aus den Pseudozellenecken interpoliert werden. Die Verteilung von Stichprobenpunkten entspricht der Verzerrung des zugehörigen Pixels. Der in den Bildspeicher geladene RGB- Wert bezüglich des Pixels, das dann, wenn es projiziert wird, die schraffierte Fläche 127 überdeckt, entspricht somit genau der Bildinformation, die für die Fläche 122 zutrifft.
- Beim oben beschriebenen System führt der Abtastumsetzer einen einleitenden Merkmalssortiervorgang aus, um Listen von Merkmalen zu definieren, die für Superzellen relevant sind. Wenn Pseudozellen verzerrt sind, um mit einer Projektorverzerrung umzugehen, dann sollten Schritte ergriffen werden, um zu gewährleisten, daß die Superzellenstapel alle Merkmale identifizieren, die die jeweilige Pseudozellengruppe betreffen. Das kann zum Beispiel dadurch erreicht werden, daß der Abtastumsetzer so ausgelegt wird, daß er im verzerrten Raum arbeitet, oder dadurch, daß Superzellenlisten kombiniert werden, wenn die Position einer Pseudozelle anzeigt, daß eine verzerrte Pseudozelle die Kombination dieser Superzellen überlappen wird.
- Der oben skizzierte Ansatz der nichtlinearen Abbildung gewährleistet, daß die Anzeige auf keine Weise geometrisch kompromittiert wird. Gerade Polygonkanten werden glatt verzerrt, ohne daß Diskontinuitäten an Zellenbegrenzungen auftreten. An Zellenbegrenzungen werden keine stückweisen Annäherungen durchgeführt. Es ist ferner nicht erforderlich, Polygon-Geradengleichungen neu zu berechnen oder Merkmale aufzubrechen, damit sie zu verzerrten Pixeln 'passen'. Effekte wie zum Beispiel Beschaffenheit und Nebel werden auf ähnliche Weise verzerrt. Die gesamte Kapazität des Systems steht somit dazu zur Verfügung, Merkmalsdaten, die von der Modelldatenbank heruntergeladen werden, zu verarbeiten. Schließlich kann die nichtlineare Abbildung dynamisch sein (und Pseudozellenecken variieren), wenn sich eine Projektor-Austrittspupille relativ zum Anzeigebildschirm und zum Blickpunkt bewegen kann. Das ist bei einigen Projektionssystemen der Fall, zum Beispiel bei Anzeigen mit 'interessierender Fläche', bei denen ein Projektor in die Richtung, in die ein/e Pilot/in schaut 'gesteuert' wird.
Claims (43)
1. Vorrichtung zum Erzeugen eines Bildes, das auf einem
Anzeigebildschirm gezeigt werden soll, aus Daten, die ein
Modell definieren, das eine Mehrzahl undurchsichtiger und
durchscheinender Merkmale umfaßt, wobei das Bild eine Ansicht
des Modells von einem vorgegebenen Blickpunkt aus darstellen
soll und aus einer Anordnung von Bildschirmraumpixeln
zusammengesetzt ist, die mittels eines Rasterabtastverfahrens
angezeigt werden soll, wobei jedes Pixel eine gleichförmige
Farbe und Intensität aufweist und wobei die Pixel zusammen
eine Bildfläche definieren, wobei die Vorrichtung folgendes
umfaßt:
a. Mittel (47) zum Unterteilen der Bildfläche in eine
Anordnung von Teilflächen, die jeweils mindestens ein
Pixel überdecken,
b. Mittel (19), um für jedes Merkmal in dem Modell, das vom
Blickpunkt aus potentiell sichtbar ist, zu bestimmen,
welche der Teilflächen zumindest teilweise von diesem
Merkmal überdeckt werden,
c. Mittel (19), um bezüglich jeder Teilfläche eine Liste
von Merkmalsidentifizierern zu erzeugen, wobei die Liste
einer jeden Teilfläche Merkmale identifiziert, die diese
Teilfläche zumindest teilweise überdecken,
d. Mittel (19, 52), um die Position im Bildschirmraum
mindestens eines Stichprobenpunktes innerhalb jeder
Teilfläche zu bestimmen,
e. Mittel (19, 52), um nacheinander für jede Teilfläche und
für jeden Stichprobenpunkt zu bestimmen, welche der
Merkmale in der Liste dieser Teilfläche diesen
Stichprobenpunkt überdecken,
f. Mittel (47), um für jedes Merkmal, das einen
Stichprobenpunkt überdeckt, eine Funktion der Entfernung
vom Blickpunkt zu diesem Merkmal am Stichprobenpunkt zu
bestimmen,
g. Mittel (52), um für jedes Pixel innerhalb einer
Teilfläche eine Ausgabe zu erzeugen, wobei die
Pixelausgabe den kombinierten Auswirkungen der
Stichprobenpunktausgaben für alle Stichprobenpunkte
entspricht, die zu diesem Pixel beitragen, und
h. Mittel (5) zum Anzeigen der Pixelausgaben,
wobei die genannte Vorrichtung gekennzeichnet ist durch:
i. Mittel (47) zum Speichern merkmalsbeschreibender Daten
für jeden Stichprobenpunkt innerhalb einer Teilfläche,
wobei die gespeicherten Daten zumindest die Entfernung
des undurchsichtigen Merkmals, das den Stichprobenpunkt
überdeckt und dem Blickpunkt am nächsten liegt, und die
Entfernung und die Transparenz mindestens eines näher
liegenden durchscheinenden Merkmals, das den
Stichprobenpunkt überdeckt, anzeigen,
j. Mittel (50, 51, 52) zum Erzeugen einer Ausgabe für jeden
Stichprobenpunkt innerhalb einer Teilfläche, wobei die
Stichprobenpunktausgabe den kombinierten Auswirkungen
des genannten nächstgelegenen undurchsichtigen Merkmals
und des genannten mindestens einen nähergelegenen
durchscheinenden Merkmals entspricht, die durch die
Daten identifiziert sind, die im Datenspeichermittel
gespeichert sind.
2. Vorrichtung nach Anspruch 1, bei der jede Teilfläche eine
Mehrzahl von Pixeln überdeckt.
3. Vorrichtung nach Anspruch 1 oder 2, die eine Mehrzahl
paralleler Stichprobenpunktprozessoren umfaßt, die jeweils ein
genanntes Mittel zum Bestimmen der
Stichprobenpunktüberdeckung, ein genanntes Mittel zum
Bestimmen der Entfernung, ein genanntes Speichermittel und ein
genanntes Mittel zum Erzeugen der Stichprobenpunktausgaben
umfassen.
4. Vorrichtung nach Anspruch 3, die für den bzw. jeden
Stichprobenpunkt innerhalb einer Teilfläche einen
Stichprobenpunktprozessor umfaßt.
5. Vorrichtung nach einem der vorhergehenden Ansprüche, die
eine Mehrzahl paralleler Pixelprozessoren umfaßt, die jeweils
ein genanntes Mittel zum Erzeugen von Pixelausgaben umfassen.
6. Vorrichtung nach Anspruch 5, die für das bzw. jedes Pixel
innerhalb einer Teilfläche einen Pixelprozessor umfaßt.
7. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Erzeugen von Pixelausgaben bezüglich jedes
Pixels von dem bzw. jedem Stichprobenpunkt, der innerhalb des
Pixels liegt, und von dem bzw. jedem Stichprobenpunkt, der
innerhalb einer vorgegebenen Fläche liegt, die sich um das
Pixel herum erstreckt, Eingaben empfängt.
8. Vorrichtung nach Anspruch 7, bei der die genannte
vorgegebene Fläche ein Streifen der Breite eines halben Pixels
ist, der sich um das Pixel herum erstreckt.
9. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Bestimmen der Stichprobenpunktüberdeckung
bezüglich jedes Stichprobenpunktes folgendes umfaßt: Mittel
zum Berechnen der lotrechten Entfernung dieses
Stichprobenpunktes von den Kanten jedes polygonalen Merkmals,
das die jeweilige Teilfläche zumindest teilweise überdeckt,
und Mittel zum logischen Kombinieren der Ergebnisse der
Entfernungsberechnungen, um zu bestimmen, ob der
Stichprobenpunkt innerhalb des Polygons liegt.
10. Vorrichtung nach Anspruch 9, bei der jede Polygonkante
durch eine Kantengleichung definiert ist, wobei die
Koeffizienten der Kantengleichungen so ausgewählt sind, daß
die Polygonkanten eine geschlossene Kette verbundener Vektoren
bilden, die alle in der gleichen Richtung um das Polygon
laufen, das Mittel zur Entfernungsberechnung bezüglich jeder
Kantengleichung eine Ausgabe erzeugt, dessen Vorzeichen die
Seite der Kante anzeigt, auf welcher der Stichprobenpunkt
liegt, und das Mittel zum logischen Kombinieren Mittel umfaßt,
um mit Bezug auf die Vorzeichen der Entfernungen zu den
Polygonkanten anzuzeigen, ob der Stichprobenpunkt innerhalb
des Polygons liegt.
11. Vorrichtung nach Anspruch 10, bei der das Polygon konvex
ist und seine Kanten eine geschlossene Kette verbundener
Vektoren bilden, die alle im Uhrzeigersinn um das Polygon
herum laufen, das Mittel zur Entfernungsberechnung bezüglich
einer jeden Kantengleichung eine negative Ausgabe erzeugt,
wenn der Stichprobenpunkt links von der durch diese
Kantengleichung dargestellten Polygonkante liegt, und das
Mittel zum logischen Kombinieren eine Ausgabe erzeugt, die
anzeigt, daß der Stichprobenpunkt nicht überdeckt wird, wenn
irgendeine Ausgabe des Mittels zur Entfernungsberechnung
negativ ist.
12. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Bestimmen der Stichprobenpunktüberdeckung
bezüglich jedes Stichprobenpunktes folgendes umfaßt: Mittel
zum Berechnen der lotrechten Entfernung dieses
Stichprobenpunktes von der großen und der kleinen Achse jedes
elliptischen Merkmals im Bildschirmraum, das die jeweilige
Teilfläche zumindest teilweise überdeckt, und Mittel zum
Einsetzen der berechneten Entfernungen in eine
Bildschirmraumgleichung der Ellipse, um zu bestimmen, ob der
Stichprobenpunkt von dem elliptischen Merkmal überdeckt wird.
13. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zur Entfernungsbestimmung Mittel zum Ausführen
einer inversen Perspektiventransformation umfaßt, um aus den
Bildschirmraumkoordinaten des jeweiligen Stichprobenpunktes
zumindest eine Blickpunktraumkoordinate eines Punktes auf dem
Merkmal zu berechnen, der auf einer Geraden liegt, die vom
Blickpunkt durch den Stichprobenpunkt gezogen wird.
14. Vorrichtung nach Anspruch 13, bei der die genannte
Blickpunktraumkoordinate die Z-Koordinate ist, wobei sich die
Z-Achse des Blickpunktraums vom Blickpunkt durch den
Mittelpunkt des Anzeigebildschirms erstreckt.
15. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Speichermittel folgendes umfaßt: einen Transparenz-
Stapelspeicher, Mittel, um am Stichprobenpunkt die Entfernung
jedes empfangenen Merkmals vom Blickpunkt mit den Entfernungen
aller ggf. zuvor vom Speichermittel empfangenen Merkmale vom
Blickpunkt zu vergleichen, und Mittel zum Speichern jedes
empfangenen Merkmals im Stapel in einer solchen Position im
Stapel, daß die Merkmale der Entfernung vom Blickpunkt nach
gespeichert sind.
16. Vorrichtung nach Anspruch 15, die Mittel umfaßt, um zu
verhindern, daß ein völlig durchsichtiges Merkmal im Stapel
gespeichert wird.
17. Vorrichtung nach Anspruch 15 bzw. 16, die Mittel umfaßt,
um koplanare Merkmale gemäß Merkmalsattributdaten im Stapel
zu positionieren, welche die relative Sichtbarkeit koplanarer
Merkmale definieren.
18. Vorrichtung nach Anspruch 15, 16 oder 17, bei der das
Speichermittel folgendes umfaßt: Mittel zum Speichern von
Daten, die das zuerst empfangene undurchsichtige Merkmal
identifizieren, an der letzten Position im Stapel und Mittel
zum Ersetzen der Daten, die das zuerst empfangene
undurchsichtige Merkmal identifizieren, durch Daten, die ein
nachfolgend empfangenes undurchsichtiges Merkmal
identifizieren, dann und nur dann, wenn das nachfolgend
empfangene undurchsichtige Merkmal näher am Blickpunkt liegt
als das zuvor in der letzten Position im Stapel gespeicherte
Merkmal.
19. Vorrichtung nach Anspruch 18, bei der das Speichermittel
folgendes umfaßt: Mittel zum Speichern von Daten, die
durchscheinende Merkmale im Stapel identifizieren, an
Positionen, die der Entfernung vom Blickpunkt nach geordnet
sind, wobei durchscheinende Merkmale, die weiter vom
Blickpunkt entfernt sind als ein undurchsichtiges Merkmal, das
durch Daten identifiziert ist, die in der letzten Position im
Stapel gespeichert sind, ausgeschlossen werden.
20. Vorrichtung nach einem der Ansprüche 15 bis 19, bei der
Merkmale, die Rasterlichtpunkte darstellen sollen, die in die
Rasterpixel des Bildes aufgenommen werden sollen, markiert
werden, um sie von anderen Merkmalen zu unterscheiden, und bei
der das Speichermittel Mittel zum Begrenzen der maximalen
Anzahl von Rasterlichtpunktmerkmalen umfaßt, die im
Transparenzstapel gespeichert werden können.
21. Vorrichtung nach Anspruch 20, bei der das
Begrenzungsmittel dazu angeordnet ist, die Anzahl der
Rasterlichtpunktmerkmale im Transparenzstapel auf eins zu
begrenzen.
22. Vorrichtung nach einem der Ansprüche 15 bis 21, bei der
Merkmale, die kalligraphische Lichtpunkte darstellen sollen,
die im Bild als kalligraphisch projizierte Lichtpunkte
aufgenommen werden sollen, markiert werden, um sie von anderen
Merkmalen zu unterscheiden, wobei die Vorrichtung ferner
folgendes umfaßt: Mittel zum Auslesen kalligraphischer
Lichtpunktmerkmale an das Speichermittel nach der Nähe bzw.
Ferne vom Blickpunkt, nachdem alle nichtkalligraphischen
Merkmale ausgelesen worden sind, Mittel bezüglich jedes
Stichprobenpunktes zum Berechnen der Dämpfung kalligraphischer
Lichtpunkte, die diesen Stichprobenpunkt überdecken, wobei die
Dämpfung so berechnet wird, daß zumindest die Transparenz von
im Transparenzstapel gespeicherten Merkmalen berücksichtigt
wird, die näher am Blickpunkt liegen als der kalligraphische
Lichtpunkt, Mittel, um für jeden kalligraphischen Lichtpunkt
die berechneten Dämpfungen für alle Stichprobenpunkte
aufzusummieren, die von dem Lichtpunkt überdeckt werden, und
Mittel, um bezüglich jedes kalligraphischen Lichtpunktes eine
Intensitätsausgabe für kalligraphische Lichtpunkte zu
erzeugen, die eine Funktion der aufsummierten Dämpfung ist,
wobei die Intensitätsausgabe an einen Speicher für
kalligraphische Lichtpunkte geliefert wird, der eine
Projiziereinrichtung für kalligraphische Lichtpunkte steuert.
23. Vorrichtung nach Anspruch 22, die folgendes umfaßt:
Mittel zum Bestimmen einer Öffnung für einen kalligraphischen
Lichtpunkt, wobei die Öffnung der Anzahl von
Stichprobenpunkten entspricht, die potentiell von dem
kalligraphischen Lichtpunkt überdeckt werden, Mittel zum
Bestimmen eines Dämpfungsfaktors für einen kalligraphischen
Lichtpunkt, wobei der Dämpfungsfaktor die Summe der Dämpfungen
des kalligraphischen Lichtpunktes an jedem überdeckten
Stichprobenpunkt ist und die Dämpfung an jedem
Stichprobenpunkt eine Funktion desjenigen Anteils des Lichtes
ist, das vom Merkmal, das als der kalligraphische Lichtpunkt
dargestellt ist, ausgestrahlt wird, der in der modellierten
Welt den Blickpunkt erreicht, und Mittel, um für den
kalligraphischen Lichtpunkt eine Anzeigeintensität zu
berechnen, indem eine dem Lichtpunkt eigene Intensität mit
einem Bruch multipliziert wird, der als die Division des
Dämpfungsfaktors durch die Öffnung berechnet wird.
24. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Speichermittel bezüglich jedes Stichprobenpunktes
Daten speichert, die Rot-, Grün-, Blau- und
Transparenzattribute von Merkmalen identifizieren, die diesen
Stichprobenpunkt überdecken.
25. Vorrichtung nach Anspruch 24, bei der das Mittel zum
Erzeugen der Stichprobenpunktausgaben Mittel zum Erzeugen von
Rot-, Grün- und Blau-Ausgaben umfaßt, die aus den folgenden
Gleichungen abgeleitet sind:
R = cTo Ro + cT&sub1; R&sub1; + ... cTN RN
G = cTo Go + cT&sub1; G&sub1; + ... cTN GN
B = cTo Bo + cT&sub1; B&sub1; + ... cTN BN
wobei R, G und B die Rot-, Grün- bzw. Blau-Ausgaben sind,
cTN die kumulative Transparenz des N-ten vom
Speichermittel gespeicherten Merkmals der Entfernung vom
Blickpunkt nach ist,
RN die Rot-Komponente des N-ten vom Speichermittel
gespeicherten Merkmals der Entfernung vom Blickpunkt nach ist,
GN die Grün-Komponente des N-ten vom Speichermittel
gespeicherten Merkmals der Entfernung vom Blickpunkt nach ist
und
BN die Blau-Komponente des N-ten vom Speichermittel
gespeicherten Merkmals der Entfernung vom Blickpunkt nach ist.
26. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Erzeugen der Pixelausgaben eine
Gewichtungs- und Aufsummierungsschaltung umfaßt, die bezüglich
jedes Pixels vom Mittel zum Erzeugen von
Stichprobenpunktausgaben für jeden Stichprobenpunkt, der als
für dieses Pixel relevant beurteilt wird, Ausgaben empfängt,
wobei die Gewichtungs- und Aufsummierungsschaltung jeder
empfangenen Ausgabe des Mittels zum Erzeugen von
Stichprobenpunktausgaben eine Gewichtung zuordnet, die der
Position jedes Stichprobenpunktes relativ zu diesem Pixel
entspricht, und die gewichteten Ausgaben des Mittels zum
Erzeugen von Stichprobenpunktausgaben aufsummiert, um die
genannte Pixelausgabe zu erzeugen.
27. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Bestimmen der Stichprobenpunktposition
folgendes umfaßt: Mittel, um für jede Teilfläche
Eckkoordinaten im Bildschirmraum zu bestimmen, und Mittel, um
mittels Interpolation aus den Eckkoordinaten
Stichprobenpunktkoordinaten zu bestimmen.
28. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der jede Teilfläche so geformt ist, daß ihre Begrenzung im
Bildschirmraum der Begrenzung derjenigen Bildschirmraumfläche
entspricht, die eine Abbildung einer Fläche des
Anzeigebildschirms, die von dem jeweiligen Pixel bzw. der
Mehrzahl von Pixeln überdeckt wird, vom Blickpunktraum in den
Bildschirmraum darstellt.
29. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der jede Teilfläche das mindestens eine Pixel und eine weitere
Begrenzungsfläche überdeckt, die sich um eine vorgegebene
Entfernung daherum erstreckt.
30. Vorrichtung nach Anspruch 29, bei der die
Begrenzungsfläche der Breite nach einer halben Pixelbreite
entspricht.
31. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Bestimmen der Teilflächenüberdeckung
folgendes umfaßt: Mittel zum Erfassen undurchsichtiger
Merkmale, welche die Teilfläche ganz überdecken, und Mittel
zum Ausschließen von Merkmalen, die weiter weg vom Blickpunkt
liegen als das ganz überdeckende undurchsichtige Merkmal.
32. Vorrichtung nach Anspruch 31, die folgendes umfaßt:
Mittel, um an jeder Ecke der Teilfläche die Entfernung einer
Ebene, die durch jedes Merkmal definiert wird, vom Blickpunkt
zu berechnen, und Mittel zum Vergleichen der berechneten
Entfernungen, wobei das Ausschließungsmittel ein Merkmal nur
dann ausschließt, wenn die berechneten Entfernungen für dieses
Merkmal größer sind als die entsprechenden berechneten
Entfernungen für das dem Blickpunkt nächstgelegene
undurchsichtige Merkmal.
33. Vorrichtung nach Anspruch 32, bei der das
Ausschließungsmittel einen Speicher umfaßt, in den Daten
eingelesen werden, die Merkmale identifizieren, die die
jeweilige Teilfläche zumindest teilweise überdecken, wobei das
Vergleichsmittel vom Speicher eine Ausgabe empfängt und an den
Speicher eine Eingabe liefert, um zu veranlassen, daß Daten,
die Merkmale identifizieren, die hinter dem nächstgelegenen
undurchsichtigen Merkmal liegen, aus dem Speicher gelöscht
werden.
34. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Bestimmen der Teilflächenüberdeckung
folgendes umfaßt: Mittel zum Berechnen der lotrechten
Entfernung von jeder Ecke der Teilfläche zu den Kanten eines
Begrenzungskastens, der für jedes Merkmal in
Bildschirmraumkoordinaten so definiert ist, daß er das ganze
Merkmal in sich enthält, und Mittel, um die berechneten
lotrechten Entfernungen logisch zu kombinieren, um eine
Ausgabe bereitzustellen, welche die Teilflächenüberdeckung
anzeigt.
35. Vorrichtung nach Anspruch 34, bei der der
Begrenzungskasten durch Kanten definiert ist, die eine
geschlossene Kette verbundener Vektoren bilden, die alle in
der gleichen Richtung um den Kasten herum laufen, und das
Kombinierungsmittel bezüglich jeder Teilflächenecke einen
Ausgangscode erzeugt, wobei der Ausgangscode für eine
beliebige Ecke ein erster Ausgangscode ist, wenn alle
Entfernungen der Begrenzungskastenkanten das gleiche
Vorzeichen aufweisen oder null sind, ein zweiter Ausgangscode
ist, wenn alle Entfernungen der Begrenzungskastenkanten das
entgegengesetzte Vorzeichen aufweisen oder einige das
entgegengesetzte Vorzeichen aufweisen und einige null sind,
und ein dritter Ausgangscode ist, wenn irgendeine andere
Kombination von Entfernungen der Begrenzungskastenkanten
erzeugt wird, wobei die Ausgangscodes für die Ecken mittels
Gattern kombiniert werden, um Gesamtausgangscodes zu bilden,
von denen ein erster anzeigt, daß der Begrenzungskasten die
Teilfläche ganz überdeckt, ein zweiter anzeigt, daß der
Begrenzungskasten die Teilfläche teilweise überdeckt, und der
Rest anzeigt, daß der Begrenzungskasten außerhalb der
Teilfläche liegt.
36. Vorrichtung nach einem der vorhergehenden Ansprüche, bei
der das Mittel zum Bestimmen der Teilflächenüberdeckung
folgendes umfaßt: Mittel zum Berechnen der lotrechten
Entfernung von jeder Ecke der Teilfläche zu Kanten polygonaler
Merkmale und Mittel zum logischen Kombinieren der berechneten
lotrechten Entfernungen, um ein Ausgabe bereitzustellen,
welche die Teilflächenüberdeckung anzeigt.
37. Vorrichtung nach Anspruch 36, bei der die polygonalen
Merkmale durch Kanten definiert sind, die eine geschlossene
Kette verbundener Vektoren bilden, die alle in der gleichen
Richtung um das Polygon herum laufen, und das
Kombinierungsmittel bezüglich jeder Teilflächenecke einen
Ausgangscode erzeugt, wobei der Ausgangscode für eine
beliebige Ecke ein erster Ausgangscode ist, wenn alle
Entfernungen der Polygonkanten das gleiche Vorzeichen
aufweisen oder null sind, ein zweiter Ausgangscode ist, wenn
alle Entfernungen der Polygonkanten das entgegengesetzte
Vorzeichen aufweisen oder einige das entgegengesetzte
Vorzeichen aufweisen und einige null sind, und ein dritter
Ausgangscode ist, wenn irgendeine andere Kombination von
Entfernungen der Polygonkanten erzeugt wird, wobei die
Ausgangscodes für die Ecken mittels Gattern kombiniert werden,
um Gesamtausgangscodes zu bilden, von denen ein erster
anzeigt, daß das Polygon die Teilfläche ganz überdeckt, ein
zweiter anzeigt, daß das Polygon die Teilfläche teilweise
überdeckt, und der Rest anzeigt, daß das Polygon außerhalb der
Teilfläche liegt.
38. Vorrichtung nach der Kombination der Ansprüche 35 und 37,
die folgendes umfaßt: Mittel zum Kombinieren der
Gesamtausgangscodes, um endgültige Ausgangscodes zu erzeugen,
wobei ein erster endgültiger Ausgangscode anzeigt, daß die
Teilfläche zumindest teilweise überdeckt wird, wenn die
Ausgangscodes der Begrenzungskastenkanten und der
Polygonkanten beide entweder der erste oder der zweite
Gesamtausgangscode sind, und ein zweiter endgültiger
Ausgangscode anzeigt, daß die Teilfläche ganz durch ein
undurchsichtiges Merkmal überdeckt wird, wenn die
Gesamtausgangscodes der Begrenzungskastenkanten und der
Polygonkanten beide der erste Gesamtausgangscode sind und das
Merkmal undurchsichtig ist.
39. Vorrichtung nach einem der vorhergehenden Ansprüche, die
folgendes umfaßt: Mittel zum Unterteilen der Bildfläche in
eine Anordnung von Superteilflächen, die jeweils eine Mehrzahl
der genannten Teilflächen überdecken, Mittel zum Speichern von
Daten, die Merkmale identifizieren, die jede Superteilfläche
zumindest teilweise überdecken, und Mittel zum Auslesen von
Daten vom Speichermittel an das Mittel zum Bestimmen der
Teilflächenüberdeckung, und zwar eine Superteilfläche nach der
anderen.
40. Vorrichtung nach Anspruch 39, bei der das Mittel zum
Bestimmen der Teilflächenüberdeckung jede Teilfläche der
Superteilfläche gesondert verarbeitet.
41. Vorrichtung nach Anspruch 40, bei der das Mittel zum
Bestimmen der Teilflächenüberdeckung mindestens zwei
Prozessoren umfaßt und Mittel bereitgestellt werden, um
Verarbeitungsaufgaben so an die Prozessoren zu verteilen, daß
nebeneinanderliegende Teilflächen von verschiedenen
Prozessoren verarbeitet werden.
42. Vorrichtung nach den Ansprüchen 39, 40 oder 41, die
folgendes umfaßt: Mittel zum Berechnen der lotrechten
Entfernung von einem Bezugspunkt innerhalb einer
Superteilfläche zu jeder Kante eines Merkmals, Mittel zum
Berechnen einer Grenzentfernung von diesem Bezugspunkt, wobei
die Grenzentfernung eine solche ist, das dann, wenn eine
Merkmalskante eine größere Entfernung vom Bezugspunkt aufweist
als die Grenzentfernung, diese Kante die Superteilfläche nicht
durchqueren kann, Mittel zum Vergleichen der berechneten
lotrechten Entfernungen mit der Grenzentfernung und Mittel zum
Beurteilen der Superteilflächenüberdeckung durch ein Merkmal
auf der Grundlage einer logischen Kombination der Ergebnisse
des Vergleichs der berechneten lotrechten Entfernungen mit der
Grenzentfernung.
43. Vorrichtung nach Anspruch 42, bei der jede
Superteilfläche rechtwinklig ist und Mittel bereitgestellt
werden, um für jede Kante eines Merkmals bezüglich jeder Ecke
der Superteilfläche eine Grenzentfernung zu berechnen, wobei
die Grenzentfernung die lotrechte Entfernung vom Mittelpunkt
der Superteilfläche zu einer Geraden ist, die parallel zur
jeweiligen Merkmalskante gezogen wird und durch die jeweilige
Superteilflächenecke geht.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB888828342A GB8828342D0 (en) | 1988-12-05 | 1988-12-05 | Image generator |
PCT/GB1989/001451 WO1990006561A1 (en) | 1988-12-05 | 1989-12-05 | Image generator |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68928181D1 DE68928181D1 (de) | 1997-08-21 |
DE68928181T2 true DE68928181T2 (de) | 1997-12-18 |
Family
ID=10647967
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68928941T Expired - Fee Related DE68928941T2 (de) | 1988-12-05 | 1989-12-05 | Bilderzeugungsgerät |
DE68928391T Expired - Fee Related DE68928391T2 (de) | 1988-12-05 | 1989-12-05 | Bildgenerator |
DE68928966T Expired - Fee Related DE68928966T2 (de) | 1988-12-05 | 1989-12-05 | Bilderzeugungsgerät |
DE68928181T Expired - Fee Related DE68928181T2 (de) | 1988-12-05 | 1989-12-05 | Bilderzeugungsgerät |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68928941T Expired - Fee Related DE68928941T2 (de) | 1988-12-05 | 1989-12-05 | Bilderzeugungsgerät |
DE68928391T Expired - Fee Related DE68928391T2 (de) | 1988-12-05 | 1989-12-05 | Bildgenerator |
DE68928966T Expired - Fee Related DE68928966T2 (de) | 1988-12-05 | 1989-12-05 | Bilderzeugungsgerät |
Country Status (10)
Country | Link |
---|---|
US (1) | US5363475A (de) |
EP (5) | EP0611022B1 (de) |
JP (1) | JPH04502368A (de) |
KR (1) | KR0166066B1 (de) |
AT (4) | ATE159367T1 (de) |
AU (1) | AU4660089A (de) |
CA (1) | CA2004539A1 (de) |
DE (4) | DE68928941T2 (de) |
GB (2) | GB8828342D0 (de) |
WO (1) | WO1990006561A1 (de) |
Families Citing this family (175)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2228849B (en) * | 1989-03-03 | 1993-08-18 | Sun Microsystems Inc | Method and apparatus for optimized depth cueing using short vectors |
GB2243520A (en) * | 1990-04-11 | 1991-10-30 | Afe Displays Ltd | Image creation system |
GB9009127D0 (en) * | 1990-04-24 | 1990-06-20 | Rediffusion Simulation Ltd | Image generator |
GB9012273D0 (en) * | 1990-06-01 | 1990-07-18 | Rediffusion Simulation Ltd | Image generator |
GB2245805A (en) * | 1990-06-29 | 1992-01-08 | Philips Electronic Associated | Generating an anti-aliased image |
US5175805A (en) * | 1990-10-30 | 1992-12-29 | Sun Microsystems, Inc. | Method and apparatus for sequencing composite operations of pixels |
GB2251772B (en) * | 1991-01-09 | 1994-08-10 | Du Pont Pixel Systems | Programmable computer graphics system with parallelized clipper operations |
US5640496A (en) * | 1991-02-04 | 1997-06-17 | Medical Instrumentation And Diagnostics Corp. (Midco) | Method and apparatus for management of image data by linked lists of pixel values |
GB2256567B (en) * | 1991-06-05 | 1995-01-11 | Sony Broadcast & Communication | Modelling system for imaging three-dimensional models |
JP2956319B2 (ja) * | 1991-11-07 | 1999-10-04 | 富士電機株式会社 | 電圧駆動形スイッチング素子の逆バイアス制御回路 |
US5469535A (en) * | 1992-05-04 | 1995-11-21 | Midway Manufacturing Company | Three-dimensional, texture mapping display system |
JPH087799B2 (ja) * | 1992-06-19 | 1996-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ視覚化装置および方法 |
GB2271260A (en) * | 1992-10-02 | 1994-04-06 | Canon Res Ct Europe Ltd | Processing image data |
EP0605945B1 (de) | 1992-12-15 | 1997-12-29 | Sun Microsystems, Inc. | Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern |
US5359526A (en) * | 1993-02-04 | 1994-10-25 | Hughes Training, Inc. | Terrain and culture generation system and method |
US5517193A (en) * | 1993-04-30 | 1996-05-14 | International Business Machines Corporation | Meteorological workstation |
US5583974A (en) * | 1993-05-10 | 1996-12-10 | Apple Computer, Inc. | Computer graphics system having high performance multiple layer Z-buffer |
GB2278524B (en) * | 1993-05-28 | 1997-12-10 | Nihon Unisys Ltd | Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency |
US5684939A (en) * | 1993-07-09 | 1997-11-04 | Silicon Graphics, Inc. | Antialiased imaging with improved pixel supersampling |
GB9315852D0 (en) * | 1993-07-30 | 1993-09-15 | Video Logic Ltd | Shading three-dimensional images |
US5583972A (en) * | 1993-08-02 | 1996-12-10 | Miller; Richard L. | 3-D weather display and weathercast system |
US5719598A (en) * | 1993-08-23 | 1998-02-17 | Loral Aerospace Corporation | Graphics processor for parallel processing a plurality of fields of view for multiple video displays |
SG73964A1 (en) * | 1993-09-01 | 2000-07-18 | Nippon Telegraph & Telephone | Methods and apparatus for image synthesis |
US5598359A (en) * | 1993-10-29 | 1997-01-28 | Southwest Research Institute | Weather effects generator for simulation systems |
JP3313221B2 (ja) * | 1993-12-28 | 2002-08-12 | 松下電器産業株式会社 | 画像生成方法及び画像生成装置 |
US5596686A (en) * | 1994-04-21 | 1997-01-21 | Silicon Engines, Inc. | Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer |
NO942080D0 (no) * | 1994-06-03 | 1994-06-03 | Int Digital Tech Inc | Bildekoder |
JP3603285B2 (ja) * | 1994-07-21 | 2004-12-22 | 株式会社セガ | 画像処理装置 |
EP0728343A1 (de) * | 1994-08-08 | 1996-08-28 | Koninklijke Philips Electronics N.V. | Bildverarbeitungssystem zur behandlung von tiefeninformationen |
US5668940A (en) * | 1994-08-19 | 1997-09-16 | Martin Marietta Corporation | Method and apparatus for anti-aliasing polygon edges in a computer imaging system |
AUPM822394A0 (en) * | 1994-09-16 | 1994-10-13 | Canon Inc. | Object based rendering system |
US5613049A (en) * | 1994-10-26 | 1997-03-18 | The Boeing Company | Method for creating spatially balanced bounding volume hierarchies for use in a computer generated display of a complex structure |
US5572634A (en) * | 1994-10-26 | 1996-11-05 | Silicon Engines, Inc. | Method and apparatus for spatial simulation acceleration |
US6236408B1 (en) | 1995-01-10 | 2001-05-22 | Evans & Sutherland Computer Corporation | Computer graphics pixel rendering system with multi-level scanning |
US5598517A (en) * | 1995-01-10 | 1997-01-28 | Evans & Sutherland Computer Corp. | Computer graphics pixel rendering system with multi-level scanning |
GB9513895D0 (en) * | 1995-07-07 | 1995-09-06 | Thomson Training & Simulation | Atmospheric effects simulation |
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US5999189A (en) | 1995-08-04 | 1999-12-07 | Microsoft Corporation | Image compression to reduce pixel and texture memory requirements in a real-time image generator |
US6008820A (en) * | 1995-08-04 | 1999-12-28 | Microsoft Corporation | Processor for controlling the display of rendered image layers and method for controlling same |
US5990904A (en) * | 1995-08-04 | 1999-11-23 | Microsoft Corporation | Method and system for merging pixel fragments in a graphics rendering system |
US5852443A (en) * | 1995-08-04 | 1998-12-22 | Microsoft Corporation | Method and system for memory decomposition in a graphics rendering system |
US5870097A (en) * | 1995-08-04 | 1999-02-09 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
US5808617A (en) * | 1995-08-04 | 1998-09-15 | Microsoft Corporation | Method and system for depth complexity reduction in a graphics rendering system |
US5886701A (en) * | 1995-08-04 | 1999-03-23 | Microsoft Corporation | Graphics rendering device and method for operating same |
US5880737A (en) * | 1995-08-04 | 1999-03-09 | Microsoft Corporation | Method and system for accessing texture data in environments with high latency in a graphics rendering system |
US5949428A (en) * | 1995-08-04 | 1999-09-07 | Microsoft Corporation | Method and apparatus for resolving pixel data in a graphics rendering system |
US5864342A (en) * | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US5867166A (en) * | 1995-08-04 | 1999-02-02 | Microsoft Corporation | Method and system for generating images using Gsprites |
US5940067A (en) * | 1995-12-18 | 1999-08-17 | Alliance Semiconductor Corporation | Reduced memory indexed color graphics system for rendered images with shading and fog effects |
US6108460A (en) * | 1996-01-02 | 2000-08-22 | Pixelfusion Limited | Load balanced image generation |
US5694532A (en) * | 1996-01-26 | 1997-12-02 | Silicon Graphics, Inc. | Method for selecting a three-dimensional object from a graphical user interface |
EP0789482B1 (de) * | 1996-02-09 | 2001-12-19 | Xeikon Nv | Gleichmässige Belichtung eines lichtempfindlichen Mediums mit quadratischen Intensitätsprofilen für Druckzwecke |
US6023302A (en) * | 1996-03-07 | 2000-02-08 | Powertv, Inc. | Blending of video images in a home communications terminal |
US5818456A (en) * | 1996-04-30 | 1998-10-06 | Evans & Sutherland Computer Corporation | Computer graphics system with adaptive pixel multisampler |
GB2353686B (en) * | 1996-04-30 | 2001-05-02 | Evans & Sutherland Computer Co | Computer graphics system with adaptive pixel multisampler |
US5870105A (en) * | 1996-05-31 | 1999-02-09 | Hewlett-Packard Company | System and method for local storage of image data during object to image mapping |
US6167296A (en) * | 1996-06-28 | 2000-12-26 | The Board Of Trustees Of The Leland Stanford Junior University | Method for volumetric image navigation |
JP2957511B2 (ja) * | 1997-03-28 | 1999-10-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | グラフィック処理装置 |
IL120889A (en) | 1997-05-22 | 1998-10-30 | Eshed Robotec 1982 Ltd | Method and facility for direct learning of vending machines |
US6683609B1 (en) | 1997-10-20 | 2004-01-27 | Baron Services, Inc. | Real-time three-dimensional weather data processing method and system |
US6266063B1 (en) | 1997-10-20 | 2001-07-24 | Baron Services, Inc. | Real-time three-dimensional weather display method and weathercast system |
US5980084A (en) * | 1997-11-24 | 1999-11-09 | Sandia Corporation | Method and apparatus for automated assembly |
US6326963B1 (en) | 1998-01-22 | 2001-12-04 | Nintendo Co., Ltd. | Method and apparatus for efficient animation and collision detection using local coordinate systems |
US6064392A (en) * | 1998-03-16 | 2000-05-16 | Oak Technology, Inc. | Method and apparatus for generating non-homogenous fog |
AUPP265098A0 (en) * | 1998-03-27 | 1998-04-23 | Canon Kabushiki Kaisha | Opacity based colour interference texture |
US6163320A (en) * | 1998-05-29 | 2000-12-19 | Silicon Graphics, Inc. | Method and apparatus for radiometrically accurate texture-based lightpoint rendering technique |
US7616200B1 (en) | 1998-06-12 | 2009-11-10 | 3Dlabs Inc. Ltd. | System for reducing aliasing on a display device |
WO2000004484A2 (en) | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Wide instruction word graphics processor |
WO2000004495A1 (en) | 1998-07-17 | 2000-01-27 | Intergraph Corporation | System for processing vertices from a graphics request stream |
WO2000004443A1 (en) | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Byte reordering apparatus and method |
WO2000004436A1 (en) | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Graphics processing with transcendental function generator |
US7518616B1 (en) | 1998-07-17 | 2009-04-14 | 3Dlabs, Inc. Ltd. | Graphics processor with texture memory allocation system |
US6476816B1 (en) | 1998-07-17 | 2002-11-05 | 3Dlabs Inc. Ltd. | Multi-processor graphics accelerator |
US6459453B1 (en) | 1998-07-17 | 2002-10-01 | 3Dlabs Inc. Ltd. | System for displaying a television signal on a computer monitor |
WO2000004494A1 (en) | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Graphics processing system with multiple strip breakers |
WO2000004527A1 (en) * | 1998-07-17 | 2000-01-27 | Intergraph Corporation | Apparatus and method of directing graphical data to a display device |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
WO2000011603A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
JP4399910B2 (ja) * | 1998-09-10 | 2010-01-20 | 株式会社セガ | ブレンディング処理を含む画像処理装置及びその方法 |
US6163756A (en) * | 1998-10-20 | 2000-12-19 | Baron Services, Inc. | System and method for detecting and displaying wind shear |
GB2343603B (en) * | 1998-11-06 | 2003-04-02 | Videologic Ltd | Shading 3-dimensional computer generated images |
GB2343598B (en) * | 1998-11-06 | 2003-03-19 | Videologic Ltd | Image processing apparatus |
GB2343600B (en) * | 1998-11-06 | 2003-03-12 | Videologic Ltd | Depth sorting for use in 3-dimensional computer shading and texturing systems |
FR2790113B1 (fr) * | 1999-02-19 | 2003-07-25 | Thomson Csf | Dispositif de projection a haute luminosite et faible poids, en particulier pour simulateurs de pilotage |
US6320596B1 (en) | 1999-02-24 | 2001-11-20 | Intel Corporation | Processing polygon strips |
US6674440B1 (en) | 1999-04-05 | 2004-01-06 | 3Dlabs, Inc., Inc. Ltd. | Graphics processor for stereoscopically displaying a graphical image |
US6731296B2 (en) * | 1999-05-07 | 2004-05-04 | Broadcom Corporation | Method and system for providing programmable texture processing |
US6898692B1 (en) | 1999-06-28 | 2005-05-24 | Clearspeed Technology Plc | Method and apparatus for SIMD processing using multiple queues |
US6795072B1 (en) * | 1999-08-12 | 2004-09-21 | Broadcom Corporation | Method and system for rendering macropixels in a graphical image |
GB9921777D0 (en) * | 1999-09-16 | 1999-11-17 | Koninkl Philips Electronics Nv | Method and apparatus for handling translucency in 3d graphics |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
GB2359230B (en) * | 1999-11-11 | 2004-02-11 | Canon Kk | Computer graphics apparatus |
GB2359229B (en) * | 1999-11-11 | 2003-12-24 | Canon Kk | Three-dimensional computer graphics apparatus |
US6476813B1 (en) | 1999-11-30 | 2002-11-05 | Silicon Graphics, Inc. | Method and apparatus for preparing a perspective view of an approximately spherical surface portion |
US7505046B1 (en) | 2000-05-02 | 2009-03-17 | Adobe Systems Incorporated | Preserving opaque-like rendering in transparent 2D graphics using knockout groups |
US7151546B1 (en) | 1999-12-22 | 2006-12-19 | Adobe Systems Incorporated | Restricting scope of blending modes in 2-D compositing using isolated groups |
US7102651B1 (en) * | 1999-12-22 | 2006-09-05 | Adobe Systems Incorporated | Hierarchical 2-D color compositing with blending mode and opacity controls at all levels |
US6771841B1 (en) * | 1999-12-29 | 2004-08-03 | Intel Corporation | Determining a bounding shape for a collection of points |
IL136430A0 (en) * | 2000-05-29 | 2001-06-14 | Zviaguina Natalia | Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes |
US7119813B1 (en) | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
US7405734B2 (en) * | 2000-07-18 | 2008-07-29 | Silicon Graphics, Inc. | Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units |
US6735343B2 (en) * | 2000-08-07 | 2004-05-11 | Electro Scientific Industries Inc. | Polygon finder and pruned tree geometric match method |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US7576748B2 (en) | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US7061502B1 (en) | 2000-08-23 | 2006-06-13 | Nintendo Co., Ltd. | Method and apparatus for providing logical combination of N alpha operations within a graphics system |
US6980218B1 (en) | 2000-08-23 | 2005-12-27 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US6825851B1 (en) | 2000-08-23 | 2004-11-30 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping in a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US6999100B1 (en) | 2000-08-23 | 2006-02-14 | Nintendo Co., Ltd. | Method and apparatus for anti-aliasing in a graphics system |
US6580430B1 (en) | 2000-08-23 | 2003-06-17 | Nintendo Co., Ltd. | Method and apparatus for providing improved fog effects in a graphics system |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US7184059B1 (en) | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
US6867781B1 (en) | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US6978230B1 (en) * | 2000-10-10 | 2005-12-20 | International Business Machines Corporation | Apparatus, system, and method for draping annotations on to a geometric surface |
US20020149599A1 (en) * | 2001-04-12 | 2002-10-17 | Honeywell International Inc. | Methods and apparatus for displaying multiple data categories |
GB0109720D0 (en) * | 2001-04-20 | 2001-06-13 | Koninkl Philips Electronics Nv | Display apparatus and image encoded for display by such an apparatus |
US20030002729A1 (en) * | 2001-06-14 | 2003-01-02 | Wittenbrink Craig M. | System for processing overlapping data |
US6670908B2 (en) | 2001-07-31 | 2003-12-30 | Baron Services, Inc. | Automated system and method for processing meteorological data |
JP3949109B2 (ja) * | 2001-10-15 | 2007-07-25 | 富士通株式会社 | 仮想3次元空間におけるリンクされた複数のオブジェクトの階層的ソート |
JP3792149B2 (ja) * | 2001-11-12 | 2006-07-05 | 任天堂株式会社 | 画像処理装置および画像処理プログラム |
US7343566B1 (en) | 2002-07-10 | 2008-03-11 | Apple Inc. | Method and apparatus for displaying a window for a user interface |
US7095423B2 (en) * | 2002-07-19 | 2006-08-22 | Evans & Sutherland Computer Corporation | System and method for combining independent scene layers to form computer generated environments |
AU2002336859A1 (en) * | 2002-11-01 | 2004-05-25 | Cae Inc. | Method and apparatus for providing calligraphic light point display |
US7269794B2 (en) * | 2003-09-11 | 2007-09-11 | International Business Machines Corporation | Method and apparatus for viewpoint collaboration |
JP2005100040A (ja) * | 2003-09-24 | 2005-04-14 | Fuji Photo Film Co Ltd | テクスチャの生成システムおよびその生成方法 |
US7077749B1 (en) * | 2003-11-20 | 2006-07-18 | Microsoft Corporation | Dynamic weather simulation |
US20060036162A1 (en) * | 2004-02-02 | 2006-02-16 | Ramin Shahidi | Method and apparatus for guiding a medical instrument to a subsurface target site in a patient |
US7606688B2 (en) * | 2004-07-27 | 2009-10-20 | The Boeing Company | Object oriented finite element modeling tools |
US7599044B2 (en) | 2005-06-23 | 2009-10-06 | Apple Inc. | Method and apparatus for remotely detecting presence |
US7577930B2 (en) | 2005-06-23 | 2009-08-18 | Apple Inc. | Method and apparatus for analyzing integrated circuit operations |
US9298311B2 (en) | 2005-06-23 | 2016-03-29 | Apple Inc. | Trackpad sensitivity compensation |
GB2429142A (en) * | 2005-08-10 | 2007-02-14 | Thales Holdings Uk Plc | Simulator display using raster and calligraphic image generation |
US7433191B2 (en) | 2005-09-30 | 2008-10-07 | Apple Inc. | Thermal contact arrangement |
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
US7598711B2 (en) | 2005-11-23 | 2009-10-06 | Apple Inc. | Power source switchover apparatus and method |
JP5025950B2 (ja) * | 2005-12-12 | 2012-09-12 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法 |
US20070139430A1 (en) * | 2005-12-21 | 2007-06-21 | Microsoft Corporation | Rendering "gadgets" with a browser |
US9076265B2 (en) * | 2006-06-16 | 2015-07-07 | Ati Technologies Ulc | System and method for performing depth testing at top and bottom of graphics pipeline |
US9965886B2 (en) | 2006-12-04 | 2018-05-08 | Arm Norway As | Method of and apparatus for processing graphics |
US7891818B2 (en) | 2006-12-12 | 2011-02-22 | Evans & Sutherland Computer Corporation | System and method for aligning RGB light in a single modulator projector |
JP4793933B2 (ja) * | 2007-03-12 | 2011-10-12 | 任天堂株式会社 | 画像処理プログラムおよび画像処理装置 |
US8839142B2 (en) | 2007-06-08 | 2014-09-16 | Apple Inc. | Desktop system object removal |
US20090003528A1 (en) | 2007-06-19 | 2009-01-01 | Sankaralingam Ramraj | Target location by tracking of imaging device |
US9883818B2 (en) * | 2007-06-19 | 2018-02-06 | Accuray Incorporated | Fiducial localization |
US8056086B2 (en) * | 2008-05-19 | 2011-11-08 | International Business Machines Corporation | Load balancing for image processing using multiple processors |
US8358317B2 (en) | 2008-05-23 | 2013-01-22 | Evans & Sutherland Computer Corporation | System and method for displaying a planar image on a curved surface |
US8702248B1 (en) | 2008-06-11 | 2014-04-22 | Evans & Sutherland Computer Corporation | Projection method for reducing interpixel gaps on a viewing surface |
US8077378B1 (en) | 2008-11-12 | 2011-12-13 | Evans & Sutherland Computer Corporation | Calibration system and method for light modulation device |
US8310482B1 (en) * | 2008-12-01 | 2012-11-13 | Nvidia Corporation | Distributed calculation of plane equations |
GB0900700D0 (en) | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US8686999B2 (en) * | 2009-02-02 | 2014-04-01 | Microsoft Corporation | Dynamic fragment coverage antialiasing |
JP5004986B2 (ja) * | 2009-03-19 | 2012-08-22 | キヤノン株式会社 | スキャン変換装置及び画像符号化装置、並びにそれらの制御方法 |
GB2471708A (en) * | 2009-07-09 | 2011-01-12 | Thales Holdings Uk Plc | Image combining with light point enhancements and geometric transforms |
US8643701B2 (en) * | 2009-11-18 | 2014-02-04 | University Of Illinois At Urbana-Champaign | System for executing 3D propagation for depth image-based rendering |
US9658732B2 (en) | 2010-10-19 | 2017-05-23 | Apple Inc. | Changing a virtual workspace based on user interaction with an application window in a user interface |
US9292196B2 (en) | 2010-10-19 | 2016-03-22 | Apple Inc. | Modifying the presentation of clustered application windows in a user interface |
US10740117B2 (en) | 2010-10-19 | 2020-08-11 | Apple Inc. | Grouping windows into clusters in one or more workspaces in a user interface |
US9542202B2 (en) | 2010-10-19 | 2017-01-10 | Apple Inc. | Displaying and updating workspaces in a user interface |
US10152192B2 (en) | 2011-02-21 | 2018-12-11 | Apple Inc. | Scaling application windows in one or more workspaces in a user interface |
US9300946B2 (en) | 2011-07-08 | 2016-03-29 | Personify, Inc. | System and method for generating a depth map and fusing images from a camera array |
GB2494903B (en) | 2011-09-22 | 2017-12-27 | Advanced Risc Mach Ltd | Graphics processing systems |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
GB2553744B (en) | 2016-04-29 | 2018-09-05 | Advanced Risc Mach Ltd | Graphics processing systems |
CA2949383C (en) * | 2016-11-22 | 2023-09-05 | Square Enix, Ltd. | Image processing method and computer-readable medium |
US10997781B1 (en) * | 2017-12-27 | 2021-05-04 | Disney Enterprises, Inc. | Systems and methods of real-time ambient light simulation based on generated imagery |
US11377231B2 (en) * | 2019-02-06 | 2022-07-05 | Honeywell International Inc. | Automatically adjustable landing lights for aircraft |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE423834B (sv) * | 1979-02-08 | 1982-06-07 | Lennart Gustaf Berg | For tryckfluidumdledningar avsedd snabbkoppling |
US4694404A (en) * | 1984-01-12 | 1987-09-15 | Key Bank N.A. | High-speed image generation of complex solid objects using octree encoding |
US4897806A (en) * | 1985-06-19 | 1990-01-30 | Pixar | Pseudo-random point sampling techniques in computer graphics |
US4731606A (en) * | 1985-08-02 | 1988-03-15 | International Business Machines Corporation | Method for rapid windowing of display information in computer graphics |
US4811245A (en) * | 1985-12-19 | 1989-03-07 | General Electric Company | Method of edge smoothing for a computer image generation system |
US5010515A (en) * | 1987-07-28 | 1991-04-23 | Raster Technologies, Inc. | Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload |
US4873515A (en) * | 1987-10-16 | 1989-10-10 | Evans & Sutherland Computer Corporation | Computer graphics pixel processing system |
US4949280A (en) * | 1988-05-10 | 1990-08-14 | Battelle Memorial Institute | Parallel processor-based raster graphics system architecture |
-
1988
- 1988-12-05 GB GB888828342A patent/GB8828342D0/en active Pending
-
1989
- 1989-12-04 CA CA002004539A patent/CA2004539A1/en not_active Abandoned
- 1989-12-05 AU AU46600/89A patent/AU4660089A/en not_active Abandoned
- 1989-12-05 GB GB8927448A patent/GB2226937B/en not_active Expired - Fee Related
- 1989-12-05 AT AT94201378T patent/ATE159367T1/de not_active IP Right Cessation
- 1989-12-05 DE DE68928941T patent/DE68928941T2/de not_active Expired - Fee Related
- 1989-12-05 JP JP2501112A patent/JPH04502368A/ja active Pending
- 1989-12-05 AT AT94201376T patent/ATE177228T1/de not_active IP Right Cessation
- 1989-12-05 EP EP94201379A patent/EP0611022B1/de not_active Expired - Lifetime
- 1989-12-05 EP EP94201377A patent/EP0611021A3/de not_active Withdrawn
- 1989-12-05 EP EP90900934A patent/EP0446293B1/de not_active Expired - Lifetime
- 1989-12-05 DE DE68928391T patent/DE68928391T2/de not_active Expired - Fee Related
- 1989-12-05 EP EP94201376A patent/EP0611020B1/de not_active Expired - Lifetime
- 1989-12-05 AT AT90900934T patent/ATE155595T1/de not_active IP Right Cessation
- 1989-12-05 AT AT94201379T patent/ATE178421T1/de not_active IP Right Cessation
- 1989-12-05 US US07/689,924 patent/US5363475A/en not_active Expired - Fee Related
- 1989-12-05 WO PCT/GB1989/001451 patent/WO1990006561A1/en active IP Right Grant
- 1989-12-05 DE DE68928966T patent/DE68928966T2/de not_active Expired - Fee Related
- 1989-12-05 DE DE68928181T patent/DE68928181T2/de not_active Expired - Fee Related
- 1989-12-05 KR KR1019900701681A patent/KR0166066B1/ko not_active IP Right Cessation
- 1989-12-05 EP EP94201378A patent/EP0621548B1/de not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68928181T2 (de) | Bilderzeugungsgerät | |
DE69126611T2 (de) | Bilderzeugungsgerät | |
DE3854543T2 (de) | Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung. | |
DE3650129T2 (de) | Verfahren zur Kantenglättung für Rechnerbilderzeugungssystem. | |
DE69120407T2 (de) | Bildgenerator | |
DE69130545T2 (de) | System zur Erzeugung einer texturierten Perspektivsicht | |
DE3782160T2 (de) | Digitales simulationssystem zur erzeugung von realistischen szenen. | |
DE3881416T2 (de) | Verfahren zur Darstellung eines Perspektivbildes eines Gebiets und System zur Durchführung des Verfahrens. | |
DE3689271T2 (de) | Verfahren zur Bildanzeige. | |
DE69224499T2 (de) | Dreidimensionale graphische Verarbeitung | |
DE69123739T2 (de) | Bildgenerator | |
DE3022454A1 (de) | Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator | |
EP0137109A1 (de) | System zur Erzeugung eines zweidimensionalen Bildes einer Linie, so wie es von einem Beobachter gesehen wird, ausgehend von vorgegebenen Endpunktkoordinaten | |
DE69531536T2 (de) | Synthetisches bilderzeugungsverfahren mit sphärischem puffer | |
DE69514820T2 (de) | Verfahren zum steuern des levels von details in einer rechnergenerierten bildschirmanzeige einer komplexen struktur | |
DE69230774T2 (de) | Anti-aliasing Tiefenpuffer | |
DE19708679A1 (de) | Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens | |
DE19549096A1 (de) | Simulationsvorrichtung und -verfahren | |
DE3854619T2 (de) | Quadratische interpolation zur schattierten bilderzeugung. | |
DE69617626T2 (de) | Wiedergabe eines graphischen bildes | |
DE4209936C2 (de) | Gelände-Bildsimulator | |
DE69526919T2 (de) | Verfahren und Vorrichtung zur Schattierung dreidimensionaler Bilder | |
DE69811052T2 (de) | Verfahren zum anzeigen einer ausgabedarstellung einer szene von einem frei zu wählenden blickwinkel | |
DE60201909T2 (de) | Zoom-verfahren | |
DE102015120927A1 (de) | Verfahren zur Darstellung einer Simulationsumgebung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |