DE69020780T2 - Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung. - Google Patents
Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung.Info
- Publication number
- DE69020780T2 DE69020780T2 DE69020780T DE69020780T DE69020780T2 DE 69020780 T2 DE69020780 T2 DE 69020780T2 DE 69020780 T DE69020780 T DE 69020780T DE 69020780 T DE69020780 T DE 69020780T DE 69020780 T2 DE69020780 T2 DE 69020780T2
- Authority
- DE
- Germany
- Prior art keywords
- depth
- buffer means
- solid
- intensity
- stored
- 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
- 239000000872 buffer Substances 0.000 title claims description 208
- 239000007787 solid Substances 0.000 title claims description 161
- 238000006073 displacement reaction Methods 0.000 claims description 94
- 238000000034 method Methods 0.000 claims description 80
- 238000012545 processing Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 5
- 238000005286 illumination Methods 0.000 claims 1
- 239000000047 product Substances 0.000 description 120
- 230000008569 process Effects 0.000 description 27
- 238000004422 calculation algorithm Methods 0.000 description 21
- 230000014509 gene expression Effects 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005520 cutting process Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005304 joining Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012854 evaluation process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003754 machining Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
- Diese Erfindung bezieht sich allgemein auf Rechnergraphik und Festkörpermodellerzeugung und insbesondere auf eine Vorrichtung und ein Verfahren zur Erzeugung realistisch schattierter Bilder oder Abbildungen, die mit "Konstruktions-Festkörpergeometrie" (Constructive Solid Geometry - CSG) als boolesche Kombinationen einfacher Elementarkörper definiert wurden.
- Systeme für die Festkörpermodellierung spielen eine immer wichtigere Rolle beim Entwurf von Werkstücken und Fertigungsprozessen. Diese Systeme bieten Anwendern sowohl interaktive Entwicklungswerkzeuge, die die Kosten der Entwurfstätigkeit erheblich senken, als auch Simulations- und Analysewerkzeuge, die den Entwicklungszyklus verkürzen und die Qualität des Endproduktes sowie die Effizienz von Fertigungsprozessen verbessern.
- Ein Festkörper kann im Hinblick auf seine Begrenzung als Liste der Arten, Positionen und Abmessungen aller Außenflächen des Festkörpers beschrieben werden. Eine derartige Beschreibung ist jedoch für den Menschen, der Festkörper bevorzugt auf hierarchische und inkrementelle Weise durch Kombinieren oder Ändern zuvor definierter Teilfestkörper entwickelt, in der Regel zu "ausführlich". Viele solche Kombinationen von Teilfestkörpern werden durch boolesche Operationen der Mengenlehre genau definiert. Die Zusammenfügung zweier Teile zu einem einzelnen Festkörper kann beispielsweise in der Mengenlehre mathematisch als Vereinigung modelliert werden. Weitere Modifikationen der Form, die spezifische geometrische Merkmale wie Schlitze, Löcher und Vorsprünge erzeugen, werden häufig mittels der Mengenlehre als Vereinigungen und Differenzen zwischen dem zu verändernden Festkörper und einfachen Elementarkörpern wie Zylindern oder Quadern formuliert, die zu dem Festkörper hinzuzufügen bzw. davon zu entfernen sind.
- Häufig wird ein Festkörpermodell verwendet, um die geometrischen Auswirkungen bestimmter Fertigungsvorgänge wie des Abtragens von Werkstoff durch Fräsen und Bohren darzustellen und zu analysieren. Solche geometrischen Auswirkungen können auch mit Operatoren der Mengenlehre ausgedrückt werden, z. B. als die Differenzmenge zwischen einem Werkstück und einem von einer Schneide überstrichenen Bereich. Die Anwendung mehrerer solcher Operationen in Folge ist ein wirksames Verfahren zur Simulation eines spanenden Bearbeitungsvorgangs. Wenn die Geometrie einer Schneide bekannt ist, kann eine Festkörper-Modelliersoftware eingesetzt werden, um zu gewährleisten, daß die Schneide nicht mit Spannvorrichtungen zusammenstößt, und auch, um zu berechnen, wieviel Werkstoff bei jeder Bewegung der Schneide abgetragen wird. Eine derartige Analyse ist wichtig, um effiziente, fehlerfreie Fertigungsverfahren planen zu können. Für die Analyse ist es erforderlich, boolesche Schnittmengen zwischen Festkörpern berechnen sowie prüfen zu können, ob eine solche Schnittmenge leer ist oder nicht.
- In ähnlicher Weise kann die Wahrscheinlichkeit, ob sich verschiedene Werkstücke zusammenfügen lassen, mit einem Festkörper- Modellierprogramm analysiert werden, indem eine große Zahl von Modellen für jedes zusammenzufügende Werkstück unter Berücksichtigung festgelegter Form- und Positionstoleranzen erzeugt und anschließend ermittelt wird, in welchen Fällen sich die Modelle überschneiden. Im allgemeinen wird davon ausgegangen, daß sich zwei Festkörper genau dann überschneiden, wenn gemäß der Mengenlehre ihre Schnittmenge eine nichtleere, dreidimensionale Menge bildet.
- In vielen Anwendungen einschließlich der Simulation von spanenden Fertigungsprozessen muß ermittelt werden, ob zwei Darstellungen identische Systeme definieren. Beispielsweise ist es wichtig, sicherzustellen, daß ein Festkörpermodell, das durch Simulation der Auswirkungen spanender Metallbearbeitungsgänge an einem Rohling gewonnen wurde, mit einem Festkörpermodell des gewünschten fertiggestellten Werkstücks übereinstimmt.
- Bei all diesen wichtigen Anwendungen läßt sich ein Festkörpermodell, das Werkstücke oder Werkzeuge darstellen oder die Auswirkungen von Fertigungsoperationen beschreiben kann, durch Kombinieren von Teilfestkörpern oder Elementarkörpern mittels boolescher Operationen der Mengenlehre wie Vereinigen, Schneiden und Differenzbilden von Mengen bezeichnen. Ein solcher Festkörper wird durch einen booleschen Ausdruck der Mengenlehre dargestellt, der in einem Rechnerspeicher in Form eines Binärbaumes effizient gespeichert werden kann. Ein solches Festkörper-Modellierverfahren wird beispielsweise beschrieben in COMPUTER & GRAPHICS, Bd. 10, Nr. 4, 1986, S. 333 bis 339, Pergamons Journals Ltd, Oxford, GB; M. GERVAUTZ: "Three improvements of the ray tracing algorithm for CGS trees". Fig. 1 zeigt zur Verdeutlichung die Binärbaumdarstellung eines Festkörpers (1), der aus der Vereinigungsmenge zweier Teilfestkörper (2) und (3) besteht. Teilfestkörper (3) besteht aus der Differenzmenge zwischen dem Elementarquader (4) und dem Elementarzylinder (5). Die Form eines solchen Baumes ergibt sich direkt durch Ableitung aus dem booleschen Ausdruck (2) + ((4) - (5)) . Die Wurzel des Baums (Festkörper (1) ) ist dem durch den booleschen Ausdruck definierten Festkörper zugeordnet. Die inneren Knoten des Baumes entsprechen booleschen Operationen und sind Teilfestkörpern zugeordnet. Die Blätter des Baumes sind Elementarkörpern zugeordnet, die häufig die Schnittmenge relativ einfacher algehraischer Halbräume bilden, d. h. Raumbereiche, in denen eine einfache Polynomfunktion aus drei Raumkoordinaten einen nichtpositiven Wert hat. Beispiel: Eine Kugel mit Radius R und dem Mittelpunkt im Ursprung ist ein durch die Funktion x² + y² + z² - R² ≤ 0 definierter Halbraum. Ein beliebig positionierter und ausgerichteter Elementarkörper kann durch eine präzise Bewegungstransformation, eine Kombination aus einer Drehung und einer Verschiebung, sowie durch einen kongruenten, in einem geeigneten lokalen Koordinatensystem definierten Elementarkörper beschrieben werden. Einfache Elementarkörper können durch ihren Typ, z. B. Kugel, Zylinder oder Kegel, sowie durch relativ wenige interne Parameter wie Radius, Länge und Spitzenwinkel dargestellt werden. Ein solcher Baum ist als Darstellung in Form der Konstruktions-Festkörpergeometrie (Constructive Solid Geometry) bekannt und wird im folgenden mit CSG abgekürzt.
- Die Positionen und Abmessungen oder eigenen Parameter der Elementarkörper können durch einige wenige Elementarparameter ausgedrückt werden, die ein bestimmtes Mitglied in einer ganzen Familie von Festkörpern kennzeichnen, die durch den CSG-Baum dargestellt werden. Die hierbei entstehende parametrische CSG- Darstellung kann daher zweckmäßig eingesetzt werden, um beispielsweise eine Baugruppe aus Teilen zu modellieren, deren Abmessungen innerhalb von Toleranzgrenzen veränderlich sind, und kann so dazu dienen, die weiter oben beschriebenen Probleme zu modellieren und zu lösen.
- Häufig ist es bequem, die Entwurfstätigkeit in eine Folge von Schritten zu zerlegen, die das endgültige Festkörpermodell inkrementell aufbauen, indem Teilfestkörper entweder zusammengefügt oder durch Zufügen von Einzelheiten wie die Erstellung von geometrischen Merkmalen, von Übergängen und Abschrägungen modifiziert werden. Ein so komplexer Prozeß kann jedoch kaum ohne menschliche Fehler durchgeführt werden und entwickelt sich häufig zu einem Versuch-und-Irrtum-Vorgehen, wobei der Entwickler jeden Schritt durchführt, das Ergebnis überprüft und erforderlichenfalls Anpassungen vornimmt. Solche Anpassungen können sich auf die Änderung eines Parameterwertes beschränken oder aber die Modifizierung des Aufbaus des betreffenden CSG-Baumes erfordern.
- Folglich ist die Effizienz des interaktiven Prozesses beim Entwurf geometrischer Formen stark von visueller Überprüfung abhängig. Der Entwickler muß in der Lage sein, das Ergebnis eines konkreten Entwurfs- oder Korrekturschrittes sofort visuell auf einem Bildschirmgerät zu überprüfen. Änderungen an CSG-Parametern und -Aufbau müssen nicht nur sofort auf einem Bildschirm wiedergegeben werden, sondern der Entwickler muß außerdem die Möglichkeit haben, das angezeigte Objekt zu drehen und interaktiv auf Einzelheiten zu zoomen. Um brauchbar zu sein, müssen die angezeigten Bilder klar und eindeutig sein. In dieser Hinsicht werden die Ergebnisse durch schattierte Bilder verbessert, bei denen wichtige Form- und Ausrichtungsinformationen durch Anzeige der Intensität des von den Außenflächen des Festkörpers reflektierten Lichts vermittelt werden. Die korrekte Modellierung von Schatten trägt unbestritten zum Realismus bei und liefert visuelle Hinweise. Die Modellierung von Schatten gilt jedoch nicht allgemein als unentbehrlich für den Entwurf von Werkstücken und für die Analyse von Fertigungsprozessen und wird hier nicht weiter erörtert.
- Wie weiter oben ausgeführt, beruhen die Baugruppenanalyse und die Simulation von Fertigungsprozessen auf der wiederholten Erkennung von Festkörperüberschneidungen, so daß geprüft werden muß, ob die Schnittmenge von zwei Festkörpern einer leeren Menge entspricht, sowie von Unterschieden zwischen Festkörpern, so daß geprüft werden muß, ob die symmetrische Differenzmenge zweier Festkörper einer leeren Menge entspricht. Diese Prüfungen können in Fällen, in denen die Festkörper komplex sind, nicht als Sichtprüfung durchgeführt werden, und auch bei einfachen Festkörpern macht der stark repetitive Charakter der Analyse ihre Automatisierung unabdingbar. Es ist daher wichtig, daß die Aufgaben, Unterschiede und Überschneidungen zu erkennen, von einem Rechnersystem effizient und automatisch durchgeführt werden.
- Ein Problem in Zusammenhang mit der Erzeugung eines schattierten Bildes aus einem komplizierten CSG-Modell besteht darin, daß der Prozeß eine gewaltige Menge von Berechnungen und Datenmanipulationen beinhaltet. Schattierprogramme, die auf Mehrzweckrechnern ausgeführt werden, arbeiten zu langsam für interaktive Entwicklungsaufgaben, und ihre Anwendung bewirkt eine nicht-optimale Nutzung der Arbeitszeit des Entwicklers. Eine spezialisierte Hardware für die Ausführung eines Teils der Anzeigeaufgabe ist bekanntlich handelsüblich, für die Verarbeitung von CSG-Modellen aber nicht hinreichend. In den meisten Fällen muß eine solche spezialisierte Hardware mit Vorverarbeitungs-Operationen der Software kombiniert werden, wodurch sich in der Regel die Leistungsfähigkeit der spezialisierten Hardware bis unter die für interaktive Entwurfsarbeiten akzeptablen Grenzen vermindert.
- Um die von der Erfindung ermöglichten Vorzüge deutlicher zu machen, folgt nun eine Beschreibung einiger bekannter Techniken, die für die Erzeugung schattierter Bilder von Festkörpermodellen entwickelt wurden. Dabei wird deutlich werden, daß eine Implementierung dieser Verfahren auf einem Mehrzweckrechner zu einer Rechenleistung führt, die für eine interaktive Entwurfsarbeit nicht hinreichend ist. Ebenso werden die Unzulänglichkeiten bekannter Ansätze beschrieben, die auf Hardware für spezielle Einsatzzwecke gestützt sind.
- Möglichkeiten zur Erzeugung schattierter Bilder von ebenen oder gekrümmten Außenflächen stehen auf graphischen Datenstationen zur Verfügung, die eine Polygon-Fülltechnik mit Gouraud- oder Phong-Schattierung bieten. Eine Festkörper-Modelliersoftware liefert eine kompakte Beschreibung jeder Außenfläche des Festkörpers, beispielsweise die Koordinaten der Eckpunkte eines Polygons im Raum, und die Datenstation zeichnet auf einem Anzeigebildschirm ein schattiertes Bild der Außenfläche. Die Farben und Intensitäten werden so gewählt, daß die Lichtmenge dargestellt wird, die von der Fläche unter Berücksichtigung der vom Benutzer definierten Position(en) einer bzw. mehrerer Lichtquellen sowie der vom Benutzer definierten Position des Blickpunktes im Modellraum reflektiert würde. Durch Ändern der Position des Blickpunktes kann der Benutzer beispielsweise die Rückseite des angezeigten Objekts sehen oder auf bestimmte Einzelheiten zoomen.
- In einem solchen System ist der Anzeigebildschirm in eine große Zahl von Pixeln oder Bildelementen aufgelöst. Um ein schattiertes Bild einer Außenfläche auf dem Bildschirm anzuzeigen, müssen die durch die Projektion der Außenfläche abgedeckten Pixel entsprechend eingefärbt werden. Diese Bildelemente werden ermittelt, indem ein Modell des Bildschirms im Objektraum verwendet und in kleine Rechtecke aufgeteilt wird, von denen jeweils eines einem Pixel des realen Bildschirms zugeordnet ist. Wie in Fig. 2 dargestellt, "bedeckt" ein Punkt einer Außenfläche ein Pixel bzw. wird dadurch betrachtet, wenn im Modellraum die Gerade, die den entsprechenden Punkt mit dem Blickpunkt verbindet, das Modell des Bildschirms im entsprechenden Rechteck schneidet. Wenn eine Außenfläche angezeigt wird, wird die vorherige Einfärbung der abgedeckten Bildelemente verworfen. Ein gegebenes Bildelement kann durch die Projektionen mehrerer Außenflächen eines Festkörpermodells abgedeckt werden; es dürfen aber nur diejenigen sichtbaren Außenflächen angezeigt werden, die dem Blickpunkt am nächsten liegen, während die "verborgenen Außenflächen" gelöscht werden müssen. Es sind mehrere Verfahren für die Eliminierung solcher verborgenen Außenflächen oder Oberflächen bekannt.
- Hinsichtlich der Vorder- und Rückflächen und in bezug auf Fig. 3a bis 3d geht ein Verfahren davon aus, daß eine Normale an jedem Innenpunkt einer Außenfläche zur Außenseite des Festkörpers gerichtet ist. Von einem gegebenen Blickpunkt aus lassen sich die Außenflächen eines Modells in zwei getrennte Mengen aufteilen, nämlich in eine aus Vorderflächen bestehende Menge und eine aus Rückflächen bestehende Menge. Diese Aufteilung kann es erforderlich machen, einige gekrümmte Außenflächen, z. B. eine Kugel, in getrennte Teilmengen zu zerlegen. An jedem Punkt einer Vorderfläche zeigt die Normale vom Blickpunkt weg, so daß der Winkel zwischen der Normalen und der Richtung zum Blickpunkt größer oder gleich 90 Grad ist. Bei einem Festkörpermodell ist eine Rückfläche nicht eine sichtbare Außenfläche. Für Polyedermodelle, bei denen alle Außenflächen eben sind, können die meisten konventionellen Systeme automatisch zwischen Vorder- und Rückflächen unterscheiden und angewiesen werden, nur die Vorderflächen anzuzeigen. Bei einem konvexen Festkörper ist jedes Bildelement durch mindestens eine Vorderfläche abgedeckt. Korrekt schattierte Bilder von konvexen Festkörpern lassen sich folglich gewinnen, indem einfach die Vorderflächen angezeigt werden.
- Bei nicht-konvexen Festkörpern jedoch, wie in Fig. 4 gezeigt, können sich die Projektionen mehrerer Vorderflächen auf dem Anzeigebildschirm überlappen, und eine Außenfläche, die momentan verarbeitet wird, kann auf dem Bildschirm angezeigt werden, obwohl sie durch andere, zuvor bearbeitete Außenflächen teilweise oder ganz verborgen ist.
- Das einfachste Verfahren, nur sichtbare Außenflächen anzuzeigen, besteht darin, zu gewährleisten, daß die sichtbaren Außenflächen erst nach den von ihnen verdeckten Außenflächen angezeigt werden. Bei diesem Verfahren werden die Flächen so geordnet, daß sie in der Reihenfolge von hinten nach vorne angezeigt werden können, wie in Fig. 4 dargestellt, so daß die sichtbaren Flächen, die sich näher am Blickpunkt befinden als die von ihnen verdeckten Flächen, zuletzt angezeigt werden. Eine solche Ordnung kann aus einem Baum mit binärer Raumaufteilung (Binary Space Partition - BSP) abgeleitet werden, der blickpunktunabhängig ist. Der Aufbau eines BSP-Baumes ist jedoch rechenintensiv und erfordert von der Software einen Vorverarbeitungsschritt, der eventuell die Aufspaltung von Flächen erfordert. Daher ist dieses Verfahren für interaktive Echtzeit-Modellierungssysteme nicht geeignet.
- Um diesen Vorverarbeitungsschritt mit einem BSP-Baum zu umgehen, kann ein Tiefenpuffer oder 'z-Puffer' verwendet werden, um für jedes Pixel automatisch die sichtbare Fläche zu wählen. Beim z- Puffer-Ansatz ist jedes Pixel einer Speicherstelle innerhalb des z-Puffers zugeordnet, die die Tiefe des momentan angezeigten Punktes enthält, wobei die Tiefe in der Regel als Abstand zwischen dem Blickpunkt und dem angezeigten Punkt dargestellt wird. Für jeden neuen Punkt, der auf ein gegebenes Anzeigebildelement projiziert wird, wird die Tiefe des Projektionspunkts mit der in der Speicherstelle für das betreffende Bildelement gespeicherten Tiefe verglichen. Wenn der neue Punkt vorne liegt, das heißt, wenn seine Tiefe kleiner ist als die in dem Speicher für das Pixel gespeicherte Tiefe, wird der neue Punkt angezeigt und der Speicher für das Pixel aktualisiert, um die neue Tiefe des Punktes wiederzugeben. Andernfalls wird der neue Punkt ignoriert, da er hinter einem bereits angezeigten Punkt liegt und somit nicht sichtbar ist.
- Der Prozeß, durch den die Tiefenwerte von Punkten, die auf Bildelemente projiziert werden, für eine Außenfläche erzeugt werden, wird als 'rasternde Konvertierung' bezeichnet. Diese Tiefenwerte werden in der Regel in der Reihenfolge von Abtastzeilen erzeugt, wobei eine konstantes Inkrement der Tiefe von einem Bildelement zum nächsten verwendet wird. Bei den weiter unten in bezug auf die Erfindung beschriebenen Verfahren wird Pixeln, die nicht von einer Außenfläche abgedeckt werden, eine Standardtiefe zugewiesen, die je nach der durch die Außenfläche wahrgenommenen Rolle der im z-Puffer darstellbaren Maximal- bzw. Minimaltiefe entspricht.
- Dieses Verfahren wird in Fig. 5a bis 5d für eine mit a, b und c bezeichnete Mehrzahl von Punkten beschrieben. In Fig. 5a wird die Intensität jedes Pixels mit einer Hintergrundintensität gleichgesetzt, und der im z-Puffer gespeicherte Abstand wird anfangs mit unendlich oder einem großen Zahlenwert gleichgesetzt. In Fig. 5b wird ein Punkt "a" verarbeitet. Die Intensität wird mit der vom Punkt "a" reflektierten Intensität gleichgesetzt, und der im z-Puffer des entsprechenden Bildelements gespeicherte Abstand wird mit dem Abstand vom Blickpunkt zum Punkt "a" gleichgesetzt. In Fig. 5c wird der Punkt "h" verarbeitet. Dadurch, daß der Abstand zu "h" kleiner ist als der Abstand zu "a", wird der Punkt "b" angezeigt und die Intensität mit der von Punkt "b" reflektierten gleichgesetzt. Darüber hinaus wird die Tiefe von "b" im z-Pufferspeicher gespeichert. In Fig. 5d wird ein Punkt "c" verarbeitet. Dadurch, daß der Abstand zu Punkt "c" entlang der z-Achse größer ist als der momentan im z- Pufferspeicher gespeicherte Abstand zum Punkt "b", wird der Punkt "c" ignoriert, und die endgültige Intensität des Punktes ist die des Punktes "b", der der durch das entsprechende Pixel sichtbare Punkt ist.
- Ein wesentliches Problem in Zusammenhang mit der Anwendung eines BSP-Baumes oder eines konventionellen z-Puffers besteht darin, daß die Außenflächen des Festkörpers bekannt sein müssen. Da die Außenflächen des Festkörpers im CSG-Baum nicht explizit dargestellt sind, müssen sie abgeleitet werden, bevor sie dargestellt werden können. Eine solche Ableitung wird als "Begrenzungsauswertung" bezeichnet und ist ein komplexer Prozeß, der eine große Zahl zeitaufwendiger geometrischer Berechnungen erfordert. In der Regel schneidet der Begrenzungs-Auswertungsprozeß die Außenflächen der Elementarkörper durch Berechnung der Kanten des Festkörpers zu. Kanten werden berechnet, indem zunächst Kurven (oder paarweise Schnittmengen von Oberflächen) berechnet werden und dann diese Kurven entsprechend in ihre Schnittmengen mit allen anderen Elementarkörper-Außenflächen aufgeteilt werden. Die Kanten des endgültigen Festkörpers werden aus diesem Anteil anhand des booleschen Ausdrucks ausgewählt, der im CSG-Baum erfaßt ist. Wenn eine Kurve auf mehr als zwei Elementarkörper-Außenflächen liegt, kann diese Auswahl eine aufwendige Bewertung von "Kanten-Nachbarschaften" erfordern. Es dürfte verständlich sein, daß für Objekte, die Hunderte von Elementarkomponenten enthalten, ein auf einem typischen Mehrzweckrechner implementierter Begrenzungs-Auswertungsprozeß für interaktive Anwendungen zu langsam ist. Darüber hinaus kann die Änderung eines einzelnen Parameters, z. B. einer Abmessung oder der Position eines einzelnen Elementarkörpers, die Neuberechnung der gesamten Begrenzungsdarstellung erforderlich machen. Die für eine solche Berechnung erforderliche Zeit bedeutet für den Benutzer eine ernstliche Einschränkung seiner Möglichkeit, ein Objekt auf einfache Weise zu manipulieren, so wie dies für die Korrektur von Fehlern bei einem Entwurf häufig erforderlich ist.
- Dieses Problem der Begrenzungs-Auswertung kann umgangen werden, indem, wie in Fig. 6 dargestellt, ein Strahlenquellen-Algorithmus verwendet wird, der Geraden oder Strahlen berechnet, die durch den Blickpunkt und die Pixel des Bildschirmmodells verlaufen. Anschließend berechnet der Algorithmus den Schnittpunkt jedes solchen Strahls mit dem Festkörper. Entlang jedes Strahls wird ein erster Schnittpunkt A gewählt, der dem Blickpunkt am nächsten liegt, und die an diesem Punkt vom Strahl getroffene Oberfläche wird verwendet, um die zugehörige Pixelelementfarbe zu berechnen. Die Berechnung des Schnittpunkts des Strahls mit dem Festkörper kann erfolgen, indem zunächst der Strahl anhand der einzelnen Elementarkörper klassifiziert wird, wobei der Strahl in Abschnitte aufgeteilt wird, die vollständig innerhalb, auf oder außerhalb des Elementarkörpers liegen, und anschließend die Ergebnisse dieser Klassifizierungen entlang des Baumes in Richtung nach oben gemäß den booleschen Operatoren zusammengefügt werden, die den Verzweigungen dieses Baumes zugeordnet sind. Diese Zusammenfügungsoperationen beinhalten in der Regel nur numerische Vergleiche und logische Operationen. Der Prozeß der Aufteilung der Strahlen auf die Elementarkomponenten erfordert jedoch Berechnungen von Schnittpunkten zwischen Geraden und Oberflächen, die mit zunehmender Komplexität der Oberflächen zeitaufwendiger werden; diese komplexeren Oberflächen entsprechen Nullstellen von Polynomen höherer Ordnung. Daher sind die bekannten Software-Implementierungen von Strahlenquellen-Algorithmen für interaktive Anwendungen zu langsam.
- Beim Abtastzeilenverfahren werden für jedes Pixel alle Strahlen für eine bestimmte Pixelreihe gruppiert und entsprechen gemeinsam einer horizontalen Zeile oder Linie des Anzeigebildschirms. Alle Strahlen für eine bestimmte Zeile müssen nur mit Elementarkomponenten geschnitten werden, deren Bilder sich mit der betreffenden Zeile überlappen. Das Abtastzeilenverfahren verfolgt die "aktiven" Elementarkomponenten für die aktuelle Zeile, wobei die aktiven Elementarkomponenten diejenigen sind, deren Projektion sich mit der Zeile überlappt. Die Zeilen auf dem Bildschirm werden von oben nach unten entweder einzeln oder in relativ kleinen Gruppen aufeinanderfolgender Zeilen verarbeitet. Eine Elementarkomponente gelangt in die aktive Liste, wenn ihr höchster Punkt sich in der momentan verarbeiteten Zeile befindet. Die Elementarkomponente verläßt die aktive Liste, wenn sich ihr niedrigster Punkt auf der zuvor verarbeiteten Zeile befindet. Der höchste und niedrigste Punkt wird aus den Koordinaten der Projektionen der jeweiligen Endpunkte auf dem Bildschirm ermittelt. Für durch ebene Außenflächen begrenzte Festkörper kann der höchste und niedrigste Punkt relativ einfach berechnet werden. Auch können wirksame inkrementelle Verfahren verwendet werden, um die Schnittpunkte aufeinanderfolgender Strahlen mit einer aktiven Außenfläche zu berechnen. Solche Abtastzeilenverfahren wurden für die Anzeige der Begrenzungen von Polyedern bereits implementiert. Die Berechnung der Begrenzungen des Festkörpers und seine Zerlegung oder Näherung mit ebenen Flächen ist jedoch zu langsam, um mit den bekannten Verfahren bei Interaktionsgeschwindigkeit durchgeführt zu werden.
- Zur Beschleunigung des Anzeigeprozesses wurden spezialisierte Hardwaresysteme entwickelt. Anfangs implementierten solche spezialisierten Systeme Teile der Anzeigetransformation und des rasternden Konvertierungsprozesses mit spezialisierter Hardware. Zur weiteren Verbesserung der Leistungsfähigkeit wurden Systeme konstruiert, die eine parallele Hardwarearchitektur besitzen und pixelparallele Algorithmen einsetzen, wobei mehrere Prozessoren unterschiedliche Abbildungssegmente parallel bearbeiten. Das Extrem dieses Ansatzes bildet ein System, das für jedes Pixel der Anzeige einen kleinen Prozessor zur Verfügung stellt. Sogenannte 'Abtastzeilensysteme' bilden einen dazwischenliegenden Ansatz, indem sie eine Reihe von Prozessoren für eine virtuelle Abtastzeile zur Verfügung stellen. Nach der Erzeugung der Bild- Pixelwerte können die Werte direkt in die Videoanzeige geschrieben werden, wodurch es erforderlich ist, daß die Werte mit der Video-Wiederholfrequenz erzeugt oder in einem Bildrahmenpuffer gespeichert werden.
- Solche spezialisierten Hardwaresysteme sind im allgemeinen erheblich teurer und komplexer als ein Mehrzweckrechner. Darüber hinaus bieten diese spezialisierten Systeme naturgemäß keine Lösung für das Problem, ein schnelles und effizientes Verfahren für die Schattierung von CSG-Festkörpern zur Verfügung zu stellen. Ebenso beeinträchtigen selbst bei diesen spezialisierten Systemen die bereits erwähnten Schwierigkeiten bei der Ermittlung der Außenflächen und Begrenzungen eines Festkörpers und bei der Verarbeitung einer CSG-Festkörperdarstellung die Geschwindigkeit des Systems.
- Um die komplexen und aufwendigen Berechnungen zu umgehen, die beim Zusammenfügungsschritt des oben erwähnten Strahlenquellen- Algorithmus beteiligt sind, und um die Hardwareunterstützung für die rasternde Konvertierung von Außenflächen und für die Anzeige von Transformationen bei der Anzeige von CSG-Festkörpern vollständig auszunutzen, wurden Tiefenpuffer-Algorithmen vorgestellt (Goldfeather et al., Jansen). Diese Algorithmen wandeln den CSG-Baum in eine (disjunktive) Produktsummenform um, wobei jedes Produkt der Schnittmenge von Festkörper-Elementarkomponenten oder ihrer Komplemente entspricht. Bei diesen Algorithmen werden Punkte auf den Außenflächen jeder Elementarkomponente mit Hilfe eines Tiefenpuffers mit allen anderen Elementarkomponenten in dem Produkt verglichen. Punkte, die sich nicht auf dem Produkt befinden, werden im Anschluß an einen dieser Vergleiche verworfen. Die verbleibenden Punkte werden für die Anzeige aufbereitet, wobei ein Tiefenpuffer für die Auswahl der sichtbaren Punkte verwendet wird.
- Dieser Ansatz leidet an einem erheblichen Mangel, da Produkte wiedergegeben werden, indem die Punktetiefen jeder Elementarkomponente mit allen anderen Elementarkomponenten im Produkt verglichen werden. Solche Vergleiche erfordern eine mehrfache rasternde Konvertierung jeder Elementarkomponente in jedem Produkt. Wenn beispielsweise eine Elementarkomponente A eines Produktes ABCDE rasternd konvertiert wird, müssen die Außenflächen von B, C, D und E rasternd konvertiert werden, um A auf seinen sichtbaren Anteil am Produkt ABCDE zuzuschneiden. Anschließend müssen zur rasternden Konvertierung von B die übrigen Elementarkomponenten C, D und E ebenfalls wieder rasternd konvertiert werden, um B auf seinen sichtbaren Anteil zuzuschneiden. Dieser Vorgang wird wiederholt, bis alle Elementarkomponenten des Produktes verarbeitet sind. In diesem Beispiel wird E fünfmal rasternd konvertiert.
- Somit ist ein Verfahren, das die wiederholte Abtastung der Elementarkomponenten in einem Produkt vermeidet, zum Beispiel ein Verfahren, bei dem die Elementarkomponenten in einem Produkt nur einmal abgetastet werden müssen, um ein Produkt darzustellen, ein wünschenswertes Ziel. Darüber hinaus besteht, wie verdeutlicht wurde, Bedarf an einem System und einem Verfahren zur schnellen und effizienten Erstellung einer realistischen Schattierung von mit CSG dargestellten Festkörpern, wobei das Verfahren darüber hinaus auf einfache Weise die Unterschiede und Überschneidungen zwischen solchen Festkörpern erkennen können soll.
- Die vorgenannten Probleme werden gemäß der Erfindung gelöst, und andere Vorteile werden verwirklicht, durch eine Vorrichtung und ein Verfahren zur Erzeugung realistisch schattierter Bilder oder Abbildungen von Festkörpern. Die Festkörper entsprechen dem in CSG definierten Typ als boolesche Kombinationen einfacher Elementarkörper. Die Erfindung erkennt problemlos Überschneidungen und Unterschiede zwischen Festkörpern. Eine Architektur eines Systems gemäß der Erfindung verwendet mindestens ein Paar vordere und hintere Tiefenpuffer, die mit pixelparallelen Rechnersystemen realisiert oder auf Abtastzeilen-Rechnersystemen, die für Rechnergraphiken verwendet werden, wirksam simuliert werden können. Das Verfahren gemäß der Erfindung extrahiert aus CSG- Darstellungen eine bestimmte Form boolescher Ausdrücke, die als 'z-verbundene Produkte' bezeichnet werden. Die Anwendung z-verbundener Produktausdrücke in Verbindung mit vorderen und hinteren Tiefenpufferpaaren vermindert in hohem Maße den Verarbeitungsaufwand, der zur Erzeugung realistischer schattierter Bilder von in CSG definierten Festkörperobjekten oder zur Erkennung von Überschneidungen oder Unterschieden zwischen solchen Festkörpern erforderlich ist. Die Anwendung der Erfindung verbessert deutlich die Leistung von Rechnersystemen, die für die Festkörpermodellierung und für CAD/CAM-Anwendungen eingesetzt werden.
- Insbesondere wird die Erfindung vorteilhaft eingesetzt, um schattierte Bilder von in CSG dargestellten Festkörpern zu erzeugen und um Überschneidungen und Differenzen zwischen zwei solchen Festkörpern zu erkennen. Die Erfindung nutzt ein neuartiges Konzept mit z-verbundenen Verschiebungskörpern sowie verwandte Konzepte. Zu diesen verwandten Konzepten gehört die Erkenntnis, daß ein durch einen beliebigen CSG-Baum dargestellter Festkörper auch als Vereinigung z-verbundener Produkte dargestellt werden kann und daß diese z-verbundenen Produkte jeweils als Schnittmengen zweier z-verbundener Verschiebungskörper dargestellt werden können. Darüber hinaus wird gezeigt, daß aus z- verbundenen Produkten gebildete Ausdrücke bezüglich Verschiebungskörpern direkt und wirksam aus einem CSG-Baum extrahiert werden können.
- Die Erfindung besteht darin, daß das durch ein beliebiges z-verbundenes Produkt beanspruchte Volumen durch zwei Tiefenpuffer vollständig dargestellt wird und daß die Intensität von durch ein z-verbundenes Produkt reflektiertem Licht in einem Intensitätspuffer gespeichert wird. Eine Dreifachpuffer-Darstellung eines z-verbundenen Produktes, die zwei Tiefenpuffer und einen Intensitätspuffer enthält, wird erzeugt, indem jeder z-verhundene Verschiebungskörper, der dieses Produkt definiert, nur einmal rasternd konvertiert wird. Darüber hinaus werden bei der rasternden Konvertierung leere Produkte und leere Schnittmengen von Produkten mit einer konkreten Gerade auf einfache Weise erkannt.
- Die Erfindung besteht weiter darin, daß ein endgültiges Bild oder eine endgültige Abbildung auf einfache Weise erzielt werden kann, indem ein vorderer Puffer für jedes z-verbundene Produkt mit einem konventionellen Tiefenpuffer zusammengeführt wird, und daß mehrere Sätze von Dreifachpuffern eingesetzt werden können, um Zwischenprodukte zu speichern und die Gesamtleistung zu verbessern.
- Gemäß einem Aspekt der Erfindung werden mehrere Prozessoren, die jeweils über einen Dreifachpuffer verfügen, parallel betrieben, um Produkte auszuwerten und ihre jeweiligen Ergebnisse in einem einzelnen z-Puffer zusammenzuführen. Die Prozesse durchlaufen den CSG-Baum und erzeugen, ohne einen erweiterten Produktsummenbaum aufzubauen, eine Beschreibung jedes z-verbundenen Produktes. Diese Beschreibung ist eine Liste von Verweisen auf die vorderoder rückseitigen Elementarflächen, die jeden Verschiebungskörper definieren. Die z-Puffer-Darstellung jedes z-verbundenen Produktes wird unmittelbar erzeugt, wobei jede Elementarfläche eines Produktes nur einmal rasternd konvertiert werden muß.
- Für die Erkennung von Überschneidungen oder Unterschieden endet der Prozeß, wenn ein nichtleeres, z-verbundenes Produkt gefunden wird.
- Zur Erzeugung eines schattierten Bildes wird ein Intensitätspuffer gemeinsam mit der Tiefenpufferdarstellung jedes z-verbundenen Produktes berechnet. Der Intensitätspuffer enthält die Abbildung des durch das z-verbundene Produkt dargestellten Festkörpers. Die Darstellung jedes Produktes wird inkrementell in die Darstellung des endgültigen Bildes integriert. Während dieser Kombinationsoperationen wird ein allgemeiner Tiefenpuffer verwendet, um den sichtbaren Beitrag jedes z-verbundenen Produktes auszuwählen, indem für jedes Pixel die Tiefe der Vorderfläche des am nächsten beim Blickpunkt gelegenen z-verbundenen Produktes gespeichert wird. Ein allgemeiner Intensitätspuffer wird ebenfalls verwendet, um die Abbildung der sichtbaren Teilmengen der Vorderflächen z-verhundener Produkte zu speichern.
- Das Verfahren gemäß der Erfindung kann für alle Pixel parallel - auf eine Weise, die dem vorgenannten pixelparalleien Algorithmus ähnelt - oder nur für einige Pixelzeilen gleichzeitig unter Verwendung einer Abtastzeilen-Architektur eingesetzt werden.
- Weiterhin sieht die Erfindung zusätzliche Tiefenpuffer und Intensitätspuffer vor, die in Dreiergruppen gruppiert sind, die jeweils einen vorderen Tiefenpuffer, einen hinteren Tiefenpuffer und einen Intensitätspuffer enthalten, um in einem Durchgang boolesche Ausdrücke zu verarbeiten, die nicht vollständig zu einer Vereinigungsmenge aus z-verbundenen Produkten erweitert werden.
- Der Einsatz mehrfacher Puffer-Dreiergruppen vermindert die Gesamtzahl der Durchgänge, in denen jede Elementarfläche verarbeitet wird, und erhöht die Gesamtwirksamkeit und -geschwindigkeit der Vorrichtung und des Verfahrens gemäß der Erfindung sogar noch weiter.
- Statt für jedes Produkt drei Puffer (einen vorderen Tiefenpuffer, einen hinteren Tiefenpuffer und einen Intensitätspuffer) zu verwenden, benötigen manche der hier beschriebenen Algorithmen nur zwei Puffer (einen vorderen Tiefenpuffer und einen Intensitätspuffer) sowie eine Ein-Bit-Maske. Der hintere Tiefenpuffer, der in der Regel mindestens 24 Bit Speicherplatz pro Bildelement benötigt, kann daher durch einen kleineren Puffer mit nur einem Bit Speicherplatz pro Pixel ersetzt werden. Diese Einsparung ist erheblich, wenn Tiefenpuffer für einen Vollbildschirm verwendet werden.
- Ein gemäß der Erfindung aufgebautes Abtastzeilen-Architektursystem weist z-verbundene Produkte automatisch zurück, ohne alle Elementarflächen oder Halbräume zu verarbeiten. Diese Zurückweisung erfolgt, wenn ein z-verbundener Verschiebungskörper, der bei der Definition eines z-verbundenen Produktes verwendet wird, eine Pixelzeile, für die die Anzeige berechnet wird, nicht schneidet. Die Zurückweisung erfolgt auch, wenn die in einer Zeile befindlichen Projektionen der Außenflächen aller z-verbundenen Verschiebungskörper, die in einem gegebenen z-verbundenen Produkt bereits verarbeitet wurden, sich nicht schneiden. Diese Schnittmengen werden durch einen Abtastreihen-Anzeigealgorithmus inkrementell ermittelt.
- Die oben dargelegten sowie weitere Eigenschaften der Erfindung werden in der nachfolgenden ausführlichen Beschreibung der Erfindung besser verdeutlicht, wenn sie in Verbindung mit der beigefügten Zeichnung gelesen werden, wobei:
- Fig. 1 die exemplarische Darstellung eines CSG-Binärbaumes eines Festkörpers 1 bildet;
- Fig. 2a einen Punkt A auf einer Außenfläche eines Festkörpers 1 zeigt, der durch ein Pixel B eines Bildschirmmodells C betrachtet wird;
- Fig. 2b eine Bildschirmabbildung des Punktes A bei Betrachtung durch das Pixel B zeigt;
- Fig. 3a bis 3d erläutern, daß die Klassifizierung von Außenflächen eines nicht-konvexen Festkörpers eine Funktion des Blickpunkts ist;
- Fig. 4 eine von hinten nach vorne verlaufende Anordnung für die Anzeige der Vorderflächen eines nicht-konvexen Festkörpers illustriert;
- Fig. 5a bis 5d einen konventionellen Tiefenpuffer-Algorithmus illustriert, wobei für ein gegebenes Pixel der sichtbare Punkt auf einem Festkörper A durch Tiefenvergleiche ausgewählt wird;
- Fig. 6 einen konventionellen Strahlenquellen-Algorithmus illustriert, der einen sichtbaren Punkt A auswählt;
- Fig. 7a einen nicht-konvexen Festkörper zeigt, der eine erste Ausrichtung auf einen Blickpunkt besitzt, wobei der Festkörper z-verbunden ist;
- Fig. 7b den nicht-konvexen Festkörper von Fig. 7a in einer zweiten Ausrichtung zeigt, wobei der Festkörper nicht z-verbunden ist;
- Fig. 8a bis 8c eine z-verbundene Menge S und einen vorderen Verschiebungskörper Sf bzw. einen hinteren Verschiebungskörper Sb von S zeigen;
- Fig. 9 illustriert, daß ein z-verbundener Festkörper die Schnittmenge des vorderen und des hinteren Verschiebungskörpers des Festkörpers ist;
- Fig. 10 illustriert, daß die vorderen Außenflächen eines z-verbundenen Produktes P demjenigen Abschnitt der vorderen Außenflächen eines vorderen Verschiebungskörpers Pf entsprechen, der vor den hinteren Außenflächen des hinteren Verschiebungskörpers Pb liegt;
- Fig. 11a und 11b jeweils ein Blockdiagramm eines Festkörper-Modellierungssystems 10 ist, das gemäß der Erfindung aufgebaut wurde und somit eine Mehrzahl von z-Puffern und Intensitätspuffern besitzt;
- Fig. 12 ein Flußdiagramm ist, das ein Verfahren gemäß der Erfindung zur Verarbeitung z-verbundener Produkte eines CSG-Baumes illustriert;
- Fig. 13 ein Flußdiagramm ist, das ein Verfahren illustriert, das einen CSG-Baum so transformiert, daß ein CSG-Baum erzeugt wird, der eine Vereinigungsmenge z-verbundener Produkte bildet;
- Fig. 14 ein Flußdiagramm ist, das ein Verfahren zur Verarbeitung von Produkten aus positiven und negativen (komplementären) Elementarkomponenten illustriert;
- Fig. 15 ein Flußdiagramm ist, das ein Verfahren zur Verarbeitung einer Operation 'Elementarkomponente A minus Produkt P' illustriert; und
- Fig. 16 ein Flußdiagramm ist, das ein Verfahren zur Verarbeitung einer Operation 'Produkt A minus Produkt P' mit Hilfe von drei z-Puffern illustriert.
- In der folgenden Beschreibung der Erfindung wird eine CSG-Darstellung als Vereinigungsmenge von Produkten ausgedrückt, so daß jedes Produkt die Schnittmenge von vorderen oder hinteren Verschiebungskörpern ist und eine Menge darstellt, die eine bestimmte Konnektivitätseigenschaft besitzt. Es wird gezeigt werden, wie eine solche Zerlegung aus einer beliebigen CSG-Darstellung abgeleitet wird, und es werden Verfahren vorgestellt, die eine solche Zerlegung einsetzen. Es wird gezeigt, daß die Anwendung dreifacher Tiefenpuffer (oder z-Puffer) korrekt schattierte Bilder oder Abbildungen erzeugt und direkt vom CSG aus auf Überlagerungen und Unterschiede prüft. Darüber hinaus wird die Anwendung eines solchen dreifachen Tiefenpuffers in einer Abtastzeilen-Architektur beschrieben.
- Wie zuvor bereits dargestellt, kann, wenn die Außenflächen eines Festkörpers bekannt sind, ein schattiertes Bild des Festkörpers erzeugt werden, indem jede Außenfläche angezeigt und ein z-Puffer verwendet wird, um verborgene Außenflächen zu eliminieren. Die Reihenfolge, in der die Außenflächen angezeigt werden, ist nicht von Bedeutung, da der z-Puffer die sichtbaren Außenflächen automatisch auswählt. Darüber hinaus hat bei Verwendung eines z- Puffers ein Versuch, eine zusätzliche Außenfläche anzuzeigen, die innerhalb eines Festkörpers liegt, keine Auswirkungen auf das Bild, da jeder Punkt der zusätzlichen Außenfläche hinter mindestens einem Punkt einer Vorderfläche des Festkörpers liegt.
- Unter Ausnutzung dieser Eigenschaft und gemäß der Erfindung wird die Anwendung eines z-Puffers auf die Schattierung von Festkörpern erweitert, wobei die Festkörper als Vereinigungsmenge einer finiten Zahl sich potentiell schneidender Teilfestkörper definiert werden, die hier als Produkte bezeichnet werden. Die Außenflächen des Festkörpers bilden eine Teilmenge der Außenflächen aller Produkte. Darüber hinaus befindet sich jeder Punkt auf der Außenfläche eines Produktes entweder auf dem Festkörper oder innerhalb des Festkörpers.
- Von allen Punkten, die auf ein gegebenes Pixel projiziert werden, wird nur der eine Punkt angezeigt, der sich am nächsten beim Blickpunkt befindet. Der z-Puffer-Speicher dieses Bildelements enthält die Tiefe des nächstliegenden Punktes. Diese Tiefe ist das Minimum der Tiefenwerte aller Punkte, die auf das Bildelement projiziert werden. Es ist zu beachten, daß sogar nur Punkte auf den Vorderflächen jedes Produktes berücksichtigt werden müssen.
- Folglich erzeugt der z-Puffer, wenn die Vorderflächen der Produkte bekannt sind, ein korrekt schattiertes Bild für den gesamten Festkörper. Es folgt eine Erläuterung, wie ein durch einen CSG-Baum dargestellter Festkörper als Vereinigungsmenge von Produkten so ausgedrückt wird, daß die Vorderflächen jedes Produktes gemäß der Erfindung unter Verwendung zweier zusätzlicher z- Puffer und eines temporären Intensitätspuffers ermittelt werden.
- Es wird ein für rechnergenerierte Graphiken eingesetztes Standard-Koordinatensystem so definiert, daß das Bildschirmmodell senkrecht zur z-Achse steht. Ein Festkörper wird nur dann als 'z-verbunden' bezeichnet, wenn seine Schnittmenge mit einer beliebigen, zur z-Achse parallelen Gerade zusammenhängend ist (leere Menge, einzelner Punkt oder zusammenhängendes Liniensegment). In diesem Zusammenhang ist zu beachten, daß konvexe Festkörper unabhängig von ihrer Ausrichtung z-verbunden sind, daß aber nicht-konvexe Festkörper je nach ihrer Form und dem Blickpunkt entweder z-verbunden sein können oder nicht. Wie in Fig. 7a zu erkennen, ist ein nicht-konvexer Festkörper z-verbunden, der gleiche nicht-konvexe Festkörper in Fig. 7b dagegen nicht, da der konkave Abschnitt der Oberfläche gegenüber dem Blickpunkt verborgen ist. Darüber hinaus können die allgemeinen Elementarkörper stets in z-verbundene Mengen zerlegt werden. Quader, Kugeln, Zylinder und Kegelhälften sind konvexe Festkörper und daher stets z-verbunden. Ein Ring dagegen ist ein Beispiel für einen nicht-konvexen Elementarkörper, der z-verbunden ist, wenn seine Symmetrieachse einen hinreichend kleinen Winkel mit der z-Achse bildet. Sobald dieser Winkel jedoch einen bestimmten Wert überschreitet, ist der Torus nicht mehr z-verbunden. Er kann jedoch in zwei getrennte z-verbundene Körper zerlegt werden. Es ist zwar möglich, eine solche Zerlegung zu erzielen, ohne neue Vorder- oder Rückflächen einzuführen; es ist aber im allgemeinen viel einfacher, den Torus in zwei gleiche Hälften aufzuteilen, die z-verbunden sind.
- In Fig. 8a ist eine z-verbundene Menge S dargestellt. Fig. 8b zeigt, daß der vordere Verschiebungskörper Sf des Festkörpers S derjenige Raumbereich ist, der von S überstrichen wird, während sich dieser in positiver z-Richtung bzw. vom Blickpunkt weg bewegt, wobei die Bewegung an der Ausgangsposition beginnt und sich bis ins Unendliche erstreckt. In ähnlicher Weise zeigt Fig. 8c, daß ein hinterer Verschiebungskörper Sb von S derjenige Raumbereich ist, der von S überstrichen wird, während sich dieser in negativer z-Richtung bzw. auf den Blickpunkt zu bewegt, wobei die Bewegung an der Ausgangsposition beginnt und sich bis ins Unendliche erstreckt. Sf und Sb sind unbeschränkte, z-verbundene Mengen.
- Wie in Fig. 9 zu erkennen, ist S gleich der Schnittmenge von Sf und Sb, wenn S z-verbunden ist. Weiter läßt sich erkennen, daß Komplemente vorderer oder hinterer Verschiebungskörper z-verbunden sind und daß die Schnittmenge P beliebig vieler vorderer oder hinterer Verschiebungskörper z-verbunden ist. Folglich kann die Schnittmenge als Schnitt von nur zwei Verschiebungskörpern Pf und Pb (vorderer bzw. hinterer Verschiebungskörper von P) dargestellt werden. Pf wird durch seine vorderen Außenflächen vollständig dargestellt, da er keine hinteren Außenflächen besitzt. Demgegenüber wird Pb durch seine hinteren Außenflächen vollständig dargestellt. Folglich können Pf und Pb innerhalb der durch die Auflösung (oder Pixelzahl) bestimmten Genauigkeit des Anzeigebildschirms jeweils durch einen einzelnen z-Puffer Zf bzw. Zb dargestellt werden.
- Hinsichtlich der Ermittlung der Produktdarstellung kann ein beliebiger CSG-Baum als Vereinigungsmenge von Produkten so ausgedrückt werden, daß jedes Produkt P die Schnittmenge einer bestimmten Zahl vorderer Verschiebungskörper mit einer bestimmten Zahl hinterer Verschiebungskörper ist. Gemäß der Erfindung verwenden die Prozesse zur Schattierung und zur Erkennung von Überschneidungen und Unterschieden die z-Puffer-Darstellung eines solchen Produktes, das durch den Einsatz der beiden z-Puffer F und B gebildet wird. Der Inhalt von F wird ermittelt, indem für jedes Pixel die minimale Tiefe aller Punkte der Vorderflächen der Pf definierenden Verschiebungskörper gespeichert wird, die auf das betreffende Bildelement projiziert werden. Der Inhalt von B wird ermittelt, indem für jedes Bildelement die maximale Tiefe aller Punkte der Rückflächen der Pb definierenden Verschiebungskörper gespeichert wird, die auf das betreffende Bildelement projiziert werden. Somit ist es zur Berechnung von F nur erforderlich, die Außenflächen der vorderen Verschiebungskörper von P zu durchlaufen. Darüber hinaus muß jede Vorderfläche nur einmal durchlaufen werden. In ähnlicher Weise müssen zur Berechnung von B lediglich die Außenflächen der hinteren Verschiebungskörper einmal durchlaufen werden.
- Nachdem F und B auf die oben angegebene Weise ermittelt wurden, stellen sie die Schnittmenge aller vorderen bzw. hinteren Verschiebungskörper dar, die P definieren. Es wurde jedoch zuvor gezeigt, daß P die Schnittmenge von Pb mit Pf ist. Somit sind die Vorderflächen von P in den in F gespeicherten Vorderflächen enthalten, aber nicht notwendigerweise mit diesen gleich, wie in Fig. 10 dargestellt. Die Vorderflächen von P entsprechen vielmehr demjenigen Teil der in F gespeicherten Vorderflächen, der vor den in B gespeicherten Rückflächen liegt. Folglich wird die Ausdehnung der Vorderflächen von P ermittelt, indem die in F gespeicherte Tiefe hildelementweise mit der in B gespeicherten Tiefe verglichen wird.
- Gemäß einer Ausführungsform der Erfindung und wie in Fig. 11a illustriert, ist das oben dargelegte Konzept in einem Festkörper-Modellierungssystem 10 implementiert, das eine Architektur mit Dreifach-z-Puffern besitzt. Ein Pixelspeicher 12 kann ein Vollbildpuffer für einen ganzen Anzeigebildschirm 14 oder ein Zeilenpuffer für ein System des Abtastzeilentyps sein. In beiden Fällen gibt es für jedes im Bildelementspeicher 12 gespeicherte Bildelemente fünf Speichereinträge, die in fünf Puffer gruppiert sind. Einer dieser Puffer ist ein temporärer vorderer z-Puffer (F) 16, der eingesetzt wird, um die Tiefenwerte der Vorderfläche für das momentan verarbeitete z-verbundene Produkt zu speichern.
- Ein weiterer dieser Puffer ist ein temporärer Rückflächen-z-Puffer (B) 18, der die Tiefenwerte der Rückfläche für das momentan verarbeitete z-verbundene Produkt speichert. Ein weiterer Puffer ist ein endgültiger z-Puffer (Z) 20, der verwendet wird, um die den Vorderflächen des gesamten angezeigten Festkörpers zugeordneten Tiefenwerte zu speichern. Zwei weitere Puffer sind ein temporärer Intensitätspuffer (T) 22 zum Speichern der Intensitäten des aktuellen Produktes sowie ein endgültiger Intensitätspuffer (I) 24 zum Speichern der Intensitäten der sichtbaren Außenflächen des gesamten angezeigten Festkörpers.
- In der abgebildeten Ausführungsform koppelt ein Bus 26 diese verschiedenen Puffer untereinander und mit einem Prozessor 28, der eine zentrale Verarbeitungseinheit oder ein Peripherieprozessor sein kann, der auf die Verwaltung der Puffer und auf die Ausführung von Anweisungen zur Umsetzung des Verfahrens gemäß der Erfindung spezialisiert ist. In diesem Sinne besitzt der Prozessor 28 einen zugehörigen Speicher 30 zum Speichern der CSG-Baumstruktur, die einen angezeigten Festkörper definiert, und zusätzlich andere Daten und Anweisungen speichert, die für die Verwaltung der Puffer und der Anzeige, für die Bediener-Interaktion und andere Funktionen des Prozessors 28 erforderlich sind. Es ist zu beachten, daß der Pixelspeicher 12 auf viele verschiedene Arten organisiert sein kann und beispielsweise 24 Ebenen mit Einzelbit-Speicherstellen umfassen kann, um ein 24-Bit-Pixelwort zu definieren, das jedem der z-Puffer und Intensitätspuffer zugeordnet ist.
- Gemäß den Verfahren der Erfindung durchläuft der Prozessor 25 den ursprünglichen CSG-Baum und verarbeitet jedes z-verbundene Produkt getrennt. Für ein gegebenes Produkt wird der Inhalt der Puffer F 16, B 18 und T 22 ermittelt, indem der Beitrag jedes Verschiebungskörpers in das z-verbundene Produkt eingebracht wird. Nachdem alle vorderen und hinteren Verschiebungskörper verarbeitet wurden, wird das Ergebnis in die endgültigen Puffer Z 20 und I 24 eingebracht. Ein Algorithmus, der dieses Verfahren für ein System mit Abtastzeilen-Architektur beschreibt, wird weiter unten beschrieben, wobei zu beachten ist, daß der Algorithmus für jede Bildelementreihe wiederholt wird.
- In diesem Pseudocode-Algorithmus steht das Symbol "LT" für "kleiner als" (Less Than).
- Fig. 12 ist ein Flußdiagramm der Operation gemäß dem oben dargelegten Algorithmus für den Fall, daß anstelle des Abtastzeilen- Ansatzes Vollbildpuffer und z-Puffer verwendet werden.
- Gemäß einem anderen Aspekt der Erfindung wird eine Vorrichtung und ein Verfahren für die Durchführung von Überschneidungs- und Unterschiedserkennung bereitgestellt, um beispielsweise fest zustellen, ob zwei Festkörper A und B sich überschneiden oder identisch sind. Eine modifizierte Version des oben dargelegten Anzeige-Algorithmus wird auf die CSG-Darstellung von A B oder von [(A-B) vereinigt mit (B-A)] angewandt. Diese Ermittlung benötigt weder einen endgültigen z-Puffer 20 noch Intensitätspuffer 22 und 24, da sie jedes Produkt solange auswertet, bis ein nichtleeres Produkt erkannt wird. Sobald die Vorderflächen- und Rückflächen-z-Puffer für ein Produkt gemäß dem oben dargelegten Algorithmus ermittelt wurden, wird anstelle der oben dargestellten letzten FOREACH-Schleife der folgende Test durchgeführt:
- Wenn (nicht_leer) zurückgeliefert wird, wird dadurch angezeigt, daß eine Überschneidung vorliegt oder daß zwei Festkörper nicht gleich sind.
- Im Anschluß wird eine Folge von Transformationen beschrieben, die zu einem beliebigen CSG-Baum einen CSG-Baum erzeugen, der eine Vereinigungsmenge von z-verbundenen Produkten darstellt, wobei jedes Produkt die Schnittmenge von vorderen oder hinteren Verschiebungskörpern ist. Die vorderen oder hinteren Verschiebungskörper werden aus der Art und Position der Elementarkörper des ursprünglichen CSG-Baumes auf einfache Weise bestimmt.
- Wie im Flußdiagramm von Fig. 13 zu erkennen, wird ein solcher CSG-Baum mit der folgenden Sequenz von Transformationen aufgebaut.
- In Block A wird jeder Elementarkörper oder Halbraum, der nicht z-verbunden ist, durch eine Vereinigungsmenge z-verbundener Teilkörper ersetzt. In Block B wird jeder Elementarkörper oder Halbraum durch die Schnittmenge seines vorderen Verschiebungskörpers mit seinem hinteren Verschiebungskörper ersetzt. In Block C wird jeder Differenz-Operator im Baum durch einen Schnitt-Operator ersetzt, und der rechte Teilbaum dieses Operators wird komplementiert. Der Schritt der Komplementierung des rechten Teilbaums transformiert den Teilbaum in einen gleichwertigen Teilbaum, indem die deMorganschen Komplementregeln angewandt werden. Komplementierte vordere Verschiebungskörper werden als 'hintere Verschiebungskörper' bezeichnet und umgekehrt.
- Das Ergebnis dieser Schritte ist ein CSG-Baum, dessen Blätter z- verbundene Verschiebungskörper sind und dessen interne Verzweigungen Vereinigungs- oder Schnitt-Verzweigungen entsprechen. Dieser Baum entspricht einem booleschen Ausdruck, der den ursprünglichen Festkörper darstellt. Wenn in diesem Ausdruck die Schnittmenge über die Vereinigungsmenge verteilt wird, ergibt sich ein weiterer äquivalenter Ausdruck, der in disjunktiver Form vorliegt, nämlich die Vereinigungsmenge der Schnittmengen, die auch als 'Produktsumme' bezeichnet wird. Der hierbei entstehende äquivalente Ausdruck ist ebenfalls für die Speicherung als CSG-Baum geeignet.
- Der Aufbau eines erweiterten Baumes ist unnötig und sogar vorzugsweise zu vermeiden, da ein erweiterter Baum in der Regel viel größer als der ursprüngliche Baum ist. Die Erfindung sieht vor, statt einen neuen Baum aufzubauen, den ursprünglichen CSG- Baum zu verwenden, um die Liste der vorderen und hinteren Verschiebungskörper zu erzeugen, die die Elemente jedes Produktes bilden, wodurch sich eine deutliche Einsparung bei der Menge des für den Prozeß erforderlichen Speicherplatzes ergibt.
- Die aufeinanderfolgenden Terme der disjunktiven Normalform werden "unmittelbar" erzeugt, indem der ursprüngliche Baum wiederholt durchlaufen wird. Das Verfahren unterzieht den Baum einem Hauptreihenfolge-Durchlauf, wobei das Vorzeichen jeder Verzweigung durch rekursive Aufrufe weitergegeben wird. An jeder internen Verzweigung wird die Art des äquivalenten Operators ermittelt, d. h. des Operators der äquivalenten Verzweigung in der positiven Form. Um die Literale eines gegebenen Produktes zu ermitteln, durchläuft das Verfahren den ursprünglichen CSG-Baum in der Richtung von oben nach unten. Wenn der äquivalente Operator ein Schnitt ist, werden sowohl der linke als auch der rechte Tochterzweig rekursiv aufgesucht. Wenn der äquivalente Operator eine Vereinigung ist, wird nur ein Tochterzweig aufgesucht; welcher dies ist, hängt davon ab, welches Produkt berechnet wird. Bei Erreichen eines Blattes werden das entsprechende Literal bzw. die Elementarkomponente des ursprünglichen Baumes und das Vorzeichen von Anzeigealgorithmen verarbeitet. Um zu ermitteln, welcher Weg an jeder Vereinigungs-Verzweigung zu wählen ist, wird ein Richtungsanzeiger so initialisiert, daß er auf den linken Tochterzweig weist. Wenn alle Kombinationen der Produkte für diesen linken Tochterzweig erzeugt wurden, wird der Anzeiger geändert und weist nun auf den rechten Tochterzweig. Wenn alle Kombinationen von Produkten für diesen rechten Tochterzweig erzeugt wurden, wird der Anzeiger geändert und weist wieder auf den linken Tochterzweig. Dieser Vorgang wiederholt sich, bis alle Produkte erzeugt worden sind.
- In einer Mehrprozessoren-Ausführungsform der Erfindung ist jeder Prozessor einem Dreifachpuffer zugeordnet. Die Ausdrücke, die z- verbundene Produkte definieren, werden den verschiedenen Prozessoren zugeleitet, die parallel die Dreifachpuffer-Darstellungen ihres Produktes erstellen. Wenn ein bestimmter Prozessor die Auswertung eines z-verbundenen Produktes abschließt, fügt er das Ergebnis in einen allgemeinen z-Puffer ein und ist zur Verarbeitung des nächsten Produktes bereit.
- Die Gesamtzahl der Durchläufe, in denen eine Außenfläche eines Elementarkörpers A rasternd konvertiert werden muß, ist eine Funktion der Zahl z-verbundener Produkte, die A enthalten, d. h. der Form des expandierten CSG-Baumes. Wie weiter unten gezeigt wird, verbessert das Verfahren gemäß der Erfindung die Verarbeitungsleistung für CSG-Bäume weiter, indem für bestimmte Teilbäume vermieden wird, sämtliche Produkte zu erzeugen. Das heißt, die Erfindung stellt Verfahren zur Verarbeitung bestimmter CSG- Bäume zur Verfügung, die nicht in der Produktsummenform vorliegen, woraus sich eine Verminderung der Zahl der für jede Elementarkomponente erforderlichen rasternden Konvertierungen ergibt. Genauer wird eine Klasse von Teilbäumen definiert, die verarbeitet werden, ohne eine beliebige Elementarfläche mehr als einmal der rasternden Konvertierung zu unterziehen. Wie weiter unten im einzelnen ausgeführt wird, gehört zu diesen Prozessen ein Prozeß, der drei z-Puffer und zwei Intensitätspuffer verwendet, sowie ein weiterer Prozeß, der vier z-Puffer und drei Intensitätspuffer verwendet. Außerdem wird die allgemeine Form der CSG- Ausdrücke gezeigt, die für die Verarbeitung ohne wiederholte Abtastung geeignet sind. Darüber hinaus wird die Verfügbarkeit zusätzlicher Puffer vorteilhaft ausgenutzt, um die Zahl der Durchgänge zu vermindern, in denen jede Elementarkomponente rasternd konvertiert wird, und sie gestattet insbesondere die Verarbeitung einer größeren Klasse von Teilbäumen, ohne eine beliebige Elementarfläche in einem Produkt mehr als einmal der rasternden Konvertierung zu unterziehen.
- Es wird darauf hingewiesen, daß die rasternde Konvertierung ein bekannter Prozeß ist, der auf der Grundlage der definierten Bildschirmkoordinaten eines Polygons das Polygon nacheinander abtastet, um eine Liste von Punkten zu erzeugen, die Bildelemente abdecken, auf die das Polygon projiziert wird. Die Liste der Bildelemente enthält die x-y-Position jedes Pixels sowie einen in Richtung der z-Achse wirksamen Tiefenwert eines Punktes auf dem Polygon, der dem Bildelement zugeordnet ist. In konventionellen Systemen wird dieser Tiefenwert in der einzelnen Tiefen- oder z-Puffer-Speicherstelle gespeichert, die jedem Bildelement zugeordnet ist, auf das das Polygon projiziert wird.
- Für Bildelemente, die von der Außenfläche nicht abgedeckt werden, ist der verwendete Tiefenwert der maximale Tiefenwert, wenn die abgetastete Außenfläche eine Vorderfläche einer positiven Elementarkomponente oder eine Rückfläche einer negativen Eiementarkomponente ist. Andernfalls wird der minimale Tiefenwert verwendet.
- Es wurde bereits gezeigt, daß ein z-verbundenes Produkt durch zwei z-Puffer dargestellt werden kann. Es wird nun weiter gezeigt werden, daß das Komplement eines z-verbundenen Produktes ebenfalls durch zwei z-Puffer dargestellt werden kann und daß die Vorderfläche eines Produktes von Mengen, die entweder z-verbundene vordere und hintere Verschiebungskörper oder Komplemente z-verbundener Mengen sind, mit nur zwei z-Puffern und einem temporären Intensitätspuffer ermittelt werden kann, wobei nicht komplementierte Verschiebungskörper nur einmal rasternd konvertiert werden müssen. Ebenso wird weiter gezeigt werden, daß die Vorderfläche der Differenzmenge zweier z-verbundener Produkte, wenn das erste Produkt nur einen vorderen Verschiebungskörper besitzt, ermittelt werden kann, indem nur zwei z-Puffer und ein temporärer Intensitätspuffer verwendet werden, wobei jeder Verschiebungskörper nur einmal rasternd konvertiert werden muß. Weiter wird gezeigt werden, daß die Vorderfläche der Differenz zweier z-verbundener Produkte ermittelt werden kann, indem drei z-Puffer und ein temporärer Intensitätspuffer verwendet werden, wobei jeder Verschiebungskörper nur einmal rasternd konvertiert werden muß. Ebenso wird gezeigt werden, daß Festkörper, die in CSG als Vereinigungsmenge von Differenzmengen zweier Produkte definiert sind, wobei abgesehen von der ersten Differenzmenge das erste Produkt jeder Differenzmenge nur einen vorderen Verschiebungskörper enthält, ermittelt werden können, indem drei z-Puffer und zwei Intensitätspuffer eingesetzt werden, wobei jeder Verschiehungskörper nur einmal rasternd konvertiert werden muß. Abschließend wird gezeigt werden, daß Festkörper, die in CSG als Vereinigungsmenge von Differenzmengen zweier Produkte definiert sind, mit nur vier z-Puffern und zwei Intensitätspuffern ermittelt werden können, wobei jeder Verschiebungskörper nur einmal rasternd konvertiert werden muß.
- Eine Darstellung eines Festkörpers, die mathematisch als r-Menge definiert ist, definiert inhärent sein Komplement. Somit wird dadurch, daß eine z-verbundene Menge durch ihre vorderen und hinteren Verschiebungskörper dargestellt wird, das Komplement des Festkörpers ebenfalls durch dieselben beiden Verschiebungskörper dargestellt, sofern bekannt ist, ob die beiden Verschiebungskörper den begrenzten Festkörper oder sein Komplement darstellen.
- Hinsichtlich des Produktes von Elementarkomponenten und von Komplementen von Elementarkomponenten möge P ein Produkt von z-verbundenen vorderen und hinteren Verschiebungskörpern bezeichnen. Q1, Q2, ..., Qk mögen k komplementierte z-verbundene Mengen bezeichnen, beispielsweise die Komplemente von k Elementarkörpern. S sei das Produkt von P mit Q1, Q2, ..., Qk. Jedes Qi für i von 1 bis k ist die Vereinigungsmenge zweier z-verbundener Verschiebungskörper, wobei berücksichtigt wird, daß ein Elementarkörper in der Regel die Schnittmenge z-verbundener Verschiebungskörper ist und somit sein Komplement die Vereinigungsmenge der Komplemente dieser Verschiebungskörper ist, die ebenfalls z- verbunden sind. Folglich ergibt die Erweiterung von S in eine Produktsumme z-verbundener Verschiebungskörper 2k Produkte, wobei vorausgesetzt wird, daß jedes Qi die Vereinigungsmenge zweier z- verbundener Verschiebungskörper bildet. Jedes Produkt ist die Schnittmenge von P mit k z-verbundenen Verschiebungskörpern, die jeweils von einem anderen Qi ausgehen. Die Verarbeitung von S durch Erzeugung all seiner Produkte würde erfordern, daß jeder P definierende Verschiebungskörper 2k-mal rasternd konvertiert wird und daß jeder komplementierte Verschiebungskörper von Q1 k-mal rasternd konvertiert wird. Das weiter unten beschriebene Verfahren vermeidet jedoch die wiederholte Abtastung der P definierenden Verschiebungskörper in jedem Teilbaum, der die allgemeine Form von S hat. Es ist zu beachten, daß der Prozeß weiterhin jedes Q1 k-mal rasternd konvertiert.
- Gemäß diesem Aspekt der Erfindung wird die folgende, auch im Flußdiagramm von Fig. 14 illustrierte Sequenz für jeden Teilbaum durchgeführt, der als Schnittmenge von Blättern ausgedrückt werden kann, die z-verbundene Mengen oder Komplemente z-verbundener Mengen sind. Solche Teilbäume kommen insbesondere vor, wenn man den oben beschriebenen Prozeß für die Extraktion z-verbundener Produkte aus CSG vereinfacht. Insbesondere werden Elementarkörper als Literale behandelt und müssen beim Erweiterungsprozeß nicht als Schnittmengen ihrer vorderen und hinteren Verschiebungskörper betrachtet werden. Das Ergebnis ist eine Produktsumme, bei der jedes Produkt die Schnittmenge von positiven oder negativen Elementarkomponenten ist, und muß nicht z-verbunden sein. Jedes einzelne solche Produkt kann in der Form P*Q1*Q2*..*Qk ausgedrückt werden. Jedes solche Produckt wird gemäß dem Blockdiagramm von Fig. 11a und dem Flußdiagramm von Fig. 14 nach dem folgenden Verfahren verarbeitet.
- Zunächst werden die vorderen Verschiebungskörper von P numerisch nach F 16 rasternd konvertiert, wobei eine Maximum-Tiefenprüfung eingesetzt wird, um die am weitesten vom Blickpunkt entfernten Punkte zurückzubehalten und die zugehörigen, in T 22 gespeicherten Intensitäten zu ersetzen. Anschließend wird der folgende Prozeß k-mal wiederholt: Für jedes Komplement Qi wird der hintere Verschiebungskörper von Qi nach B 18 rasternd konvertiert und der vordere Verschiebungskörper von Qi rasternd konvertiert, wobei das Ergebnis in F 16 gespeichert wird, wenn das Ergebnis hinter F 16 liegt und wenn B 18 vor F 16 liegt. Die Intensität in T 22 wird in diesem Fall ebenfalls aktualisiert. Anschließend werden die hinteren Verschiehungskörper von P mit einer Minimum- Tiefenprüfung nach B 18 übertragen. Abschließend wird derjenige Teil von F 16, der vor B 18 liegt, in Z 20 und I 24 integriert. Es ist zu beachten, daß die hinteren Verschiebungskörper komplementierter Elementarkomponenten den vorderen Verschiebungskörpern der ursprünglichen Elementarkomponente entsprechen und umgekehrt.
- Hinsichtlich eines elementaren Minusproduktes unter Verwendung zweier z-Puffer möge P ein Produkt aus vorderen und hinteren Verschiebungskörpern bezeichnen. A möge eine Elementarkomponente bezeichnen oder allgemeiner die Schnittmenge eines einzelnen vorderen Verschiebungskörpers mit einer endlichen Menge hinterer Verschiebungskörper. Die Differenz A-P wird, wobei jede Außenfläche nur einmal rasternd konvertiert wird und nur die beiden z-Puffer F 16 und B 18 sowie der temporäre Intensitätspuffer T 22 verwendet werden, durch die folgenden Schritte ermittelt, die auch in dem Flußdiagramm von Fig. 15 illustriert sind.
- Zunächst werden die hinteren Verschiebungskörper von P nach B 18 rasternd konvertiert, wobei die Tiefenpufferprüfung verwendet wird, um stets die Punkte mit maximalem Abstand zu speichern. Anschließend werden die vorderen Verschiebungskörper von P nach F 16 rasternd konvertiert, wobei die Tiefenpufferprüfung verwendet wird, um stets die Punkte mit minimalem Abstand zu speichern, während zusätzlich in T 22 die den vordersten Punkten zugeordnete Intensität gespeichert wird. Anschließend wird nur der vordere Verschiebungskörper von A rasternd konvertiert, und für jeden Punkt, der vor B 18 oder hinter F 16 liegt, wird die Tiefe jedes Punktes in F 16 gespeichert und die zugehörige Intensität in T 22 gespeichert. Anschließend wird B 18 gelöscht, und alle hinteren Verschiebungskörper von A werden in B 18 rasternd konvertiert, wobei ihre Schnittmenge mit einer Minimum- Tiefenprüfung ermittelt wird, wie zuvor beschrieben. Abschließend wird der vor B 18 liegende Abschnitt von F 16 in Z 20 und I 24 integriert.
- Hinsichtlich der Operation Produkt minus Produkt unter Verwendung dreier z-Puffer mögen A und P Produkte von vorderen und hinteren Verschiebungskörpern bezeichnen. Die Differenzmenge A-P wird, wobei jede Außenfläche nur einmal abgetastet wird, mit den drei z-Puffern F 16, B 18 und Z 20 sowie mit den beiden Intensitätspuffern T 22 und I 24 durch die folgenden Schritte ermittelt, die auch in dem Flußdiagramm von Fig. 16 illustriert sind.
- Zunächst werden die hinteren Verschiebungskörper von P in B 18 rasternd konvertiert, wobei die Tiefenpufferprüfung verwendet wird, um die Punkte mit dem größten Abstand zu speichern. Anschließend werden die vorderen Verschiebungskörper von P nach F 16 rasternd konvertiert, um ihre Vereinigungsmenge zu erhalten, indem die Tiefenpufferprüfung verwendet wird, um die Punkte mit minimalem Abstand zu speichern, während in T 22 die den vordersten Punkten zugeordnete Intensität gespeichert wird. Anschließend werden alle vorderen Verschiebungskörper von A nach Z 20 rasternd konvertiert, wobei ihre Schnittmenge mit einer Maximumprüfung im Tiefenpuffer ermittelt und die Intensität der vordersten Punkte in I 24 gespeichert wird. Anschließend wird für jeden von Z 20 und I 24 definierten Punkt, wenn der Punkt vor B 18 oder hinter F 16 liegt, die Tiefe des Punktes in F 16 gespeichert und die zugehörige Intensität in T 22 gespeichert. Anschließend wird B 18 gelöscht, und alle hinteren Verschiebungskörper von A werden in B 18 rasternd konvertiert, wobei ihre Schnittmengen mit einer Minimum-Tiefenprüfung ermittelt werden, wie zuvor beschrieben. Abschließend wird der vor B 18 liegende Abschnitt von F 16 in Z 20 und I 24 integriert.
- Die obigen Verfahren sind auf die Verarbeitung von Festkörpern anwendbar, die in CSG als Vereinigungsmenge von Teilbäumen ausgedrückt sind, wobei jeder Teilbaum der Differenzmenge zweier Produkte entspricht. In solchen Konfigurationen und gemäß der Erfindung wird jede Außenfläche nur einmal rasternd konvertiert.
- Festkörper, die in CSG als Vereinigungsmenge von Differenzmengen zweier Produkte definiert sind, wobei abgesehen von der ersten Differenzmenge das erste Produkt jeder Differenzmenge nur einen vorderen Verschiebungskörper besitzt, werden mit nur drei z-Puffern und zwei Intensitätspuffern ermittelt, da, wie oben gezeigt, die erste Differenz mit allen fünf Puffern ermittelt wird, während darauffolgende Differenzen nur zwei z-Puffer und einen Intensitätspuffer benötigen. Wenn jedoch dem System 10 vier z-Puffer und drei Intensitätspuffer zur Verfügung stehen, wie in Fig. 11b dargestellt, werden Festkörper, die in CSG als Vereinigungsmenge von Differenzmengen zweier z-verbundener Produkte definiert sind, für die Anzeige oder Nullobjekt-Erkennung verarbeitet, indem jede Außenfläche jedes Elementarkörpers nur einmal rasternd konvertiert wird, wie oben beschrieben. Jede Produkt-Differenzmenge wird mit drei z-Puffern und zwei Intensitätspuffern verarbeitet, wie oben beschrieben, und die Ergebnisse werden danach in den vierten globalen z-Puffer 32 und einen dritten globalen Intensitätspuffer 34 integriert.
- Es sollte beachtet werden, daß die Erfindung in der oben dargelegten Form in einer Mehrzahl von physischen Ausführungsformen realisiert werden kann, und zwar einschließlich (unter anderem) graphischer Verarbeitungssysteme des Parallel- oder Abtastzeilentyps, die spezialisierte, in der Hardware implementierte Puffer besitzen. Die Erfindung kann auch mit einem Mehrzweckrechner realisiert werden, wobei die verschiedenen z-Puffer und Intensitätspuffer zugeordnete Speicherbereiche sind. Ebenfalls sollte berücksichtigt werden, daß bestimmte Verfahren gemäß der Erfindung in der oben dargelegten Form unter Verwendung einer modifizierten Ausführungsform realisiert werden können, wobei der Rückflächenpuffer B nicht erforderlich ist oder durch einen kleineren Puffer ersetzt wird, der nur über ein Bit Speicherplatz pro Pixel verfügt. Die Vorderflächen eines Produktes aus vorderen und hinteren Verschiebungskörpern beispielsweise können allein mit dem Vorderflächenpuffer F 16 und dem Intensitätspuffer 22, ohne jede Verwendung des Rückflächenpuffers 18, mit dem folgenden Verfahren berechnet werden, das eine Variante des in Fig. 12 abgebildeten Verfahrens darstellt. Für jedes Produkt werden zuerst alle vorderen Verschiebungskörper rasternd konvertiert, wie in Fig. 12 gezeigt. Anschließend werden, statt alle hinteren Verschiebungskörper in B 18 rasternd zu konvertieren und anschließend B 18 zu verwenden, um den in Z 20 einzufügenden Abschnitt von F 16 zuzuschneiden, die hinteren Verschiebungskörper jeweils einzeln verwendet, um F 16 direkt zuzuschneiden. Bei der rasternden Konvertierung einer Rückfläche wird bei Bildelementen, bei denen die in F 16 gespeicherte Tiefe die von der rasternden Konvertierung erzeugte Tiefe überschreitet, F 16 durch die größte darstellbare Tiefe ersetzt, wobei berücksichtigt wird, daß für Pixel, die nicht von der Fläche abgedeckt werden, der Minimum-Tiefenwert verwendet wird.
- Ebenso sollte beachtet werden, daß die Reihenfolge, in der bestimmte Operationen durchgeführt werden, nicht von Bedeutung ist und daß andere Verfahren zur Ausführung der gleichen Funktionen abgeleitet werden können, indem die Reihenfolge der Operationen verändert wird. In diesem Sinne sollte die Erfindung nicht als auf eine bestimmte Hardware- oder Software-Ausführungsform beschränkt angesehen werden. Somit soll dadurch, daß vom Fachmann Modifikationen der Konzepte im Sinne der Erfindung abgeleitet werden können, die Erfindung nur insoweit eingeschränkt sein, wie die Erfindung in den folgenden Ansprüchen dargelegt ist.
Claims (11)
1. Vorrichtung zum Anzeigen eines Festkörpers, der durch eine
Baumstruktur in Konstruktions-Festkörpergeometrie (CSG)
dargestellt ist, wobei der Festkörper (S) in bezug auf
einen Blickpunkt Vorder- und Rückflächen besitzt, die entlang
einer z-Achse angeordnet sind, die parallel zu einer vom
Blickpunkt ausgehenden Sichtgeraden verläuft, wobei jeder
Festkörper aus einer Mehrzahl von Teilfestkörpern besteht;
wobei die Vorrichtung ein Anzeigemittel besitzt, das aus
einer Mehrzahl aufeinanderfolgender Anzeigezeilen besteht,
von denen jede eine Mehrzahl von Bildelementen zur
visuellen Darstellung des Festkörpers enthält, und die
Vorrichtung ein Bildelement-Speichermittel besitzt; wobei die
Vorrichtung gekennzeichnet ist durch:
Mittel (28), um aus der CSG-Baumstruktur mindestens einen
z-verbundenen, dem Festkörper (S) zugeordneten
Teilfestkörper zu ermitteln, wobei ein Teilfestkörper 'z-verbunden'
ist, wenn seine mit einer beliebigen zur z-Achse parallelen
Geraden gebildete Schnittmenge zusammenhängend ist,
erste z-Puffermittel (20), die auf eine maximale Tiefe
initialisiert sind, und erste Intensitätspuffermittel (24),
die auf eine vordefinierte Hintergrundintensität
initialisiert sind,
zweite z-Puffermittel (16), die auf eine vordefinierte
Minimaltiefe initialisiert sind, zur Speicherung von
Tiefendarstellungen einer mit dem festgelegten, z-verbundenen
Teilfestkörper verbundenen Vorderfläche,
dritte z-Puffermittel (18), die auf eine vordefinierte
Maximaltiefe initialisiert sind, zur Speicherung von
Tiefendarstellungen einer mit dem festgelegten, z-verbundenen
Teilfestkörper verbundenen Rückfläche,
Mittel (28), die mit allen z-Puffermitteln, mit dem ersten
Intensitätspuffermittel und mit einem zweiten
Intensitätspuffermittel (22) gekoppelt sind, um für jeden
Teilfestkörper und für jede Elementarkomponente des Teilfestkörpers
die gespeicherten Tiefendarstellungen der Vorderfläche mit
den gespeicherten Tiefendarstellungen der Rückfläche zu
vergleichen; und wenn eine in dem zweiten
z-Puffermittel (16) gespeicherte Tiefe kleiner als eine entsprechende,
in dem dritten z-Puffermittel (18) gespeicherte Tiefe und
größer als eine entsprechende, in dem ersten
z-Puffermittel (20) gespeicherte Tiefe ist, dann speichert das
Mittel (28) die Tiefe des zweiten z-Puffermittels (22) in die
entsprechende Speicherstelle des ersten
z-Puffermittels (20) und speichert ebenfalls die zugehörige, im
zweiten Intensitätspuffermittel (22) gespeicherte Intensität in
die entsprechende Speicherstelle des ersten
Intensitätspuffermittels (24).
2. Vorrichtung, wie in Anspruch 1 dargelegt, mit Mitteln (28),
die mit den z-Puffermitteln (16, 18, 20) und mit den
Intensitätspuffermitteln (22, 24) gekoppelt sind, zur
Verarbeitung von Teilfestkörpern der CSG-Baumstruktur, bestehend
aus:
Mitteln zur Ermittlung mindestens eines z-verbundenen,
einem Teilfestkörper des Festkörpers (S) zugeordneten
Teilfestkörpers aus der CSG-Baumstruktur, wobei ein
Teilfestkörper 'z-verbunden' ist, wenn seine mit einer beliebigen
zur z-Achse parallelen Geraden gebildete Schnittmenge
zusammenhängend ist,
Mitteln zur Ermittlung einer Tiefe von Punkten, die der
Vorderfläche des Teilfestkörpers zugeordnet sind, und zur
Speicherung der ermittelten Tiefenwerte der Vorderfläche
innerhalb des zweiten z-Puffermittels (16),
Mitteln zur Ermittlung einer Tiefe von Punkten, die der
Rückfläche des Teilfestkörpers zugeordnet sind, und zur
Speicherung der ermittelten Tiefenwerte der Rückfläche
innerhalb der dritten z-Puffermittel (18),
Mitteln zur Ermittlung einer Intensität von Punkten, die
der Vorderfläche des Teilfestkörpers zugeordnet sind, und
zur Speicherung der ermittelten Intensitäten in dem zweiten
Intensitätspuffermittel (22), und
Mitteln zur Speicherung einer aktualisierten Darstellung
von Tiefe und Intensität für die Vorderfläche von
Festkörper (S) in den ersten z-Puffermitteln (20) und in
den ersten Intensitätspuffermitteln (24) für jeden
verarbeiteten Teilfestkörper.
3. Vorrichtung, wie in einem der Ansprüche 1 bis 2 dargelegt,
wobei die Verarbeitungsmittel (28) Mittel zur sequentiellen
Verarbeitung mindestens einer Bildelement-Anzeigezeile pro
Durchgang enthalten.
4. Vorrichtung, wie in einem der Ansprüche 1 bis 3 dargelegt,
wobei die Verarbeitungsmittel (28) Mittel zur
gleichzeitigen Verarbeitung praktisch aller Bildelementzeilen in einem
Durchgang enthalten.
5. Vorrichtung, wie in einem der Ansprüche 1 bis 4 dargelegt,
die für einen Festkörper, der durch die CSG-Baumstruktur
als Vereinigungsmenge von Differenzmengen zweier
z-verbundener Teilfestkörper dargestellt ist, mindestens vierte z-
Puffermittel (32) und dritte Intensitätspuffermittel (34)
zum Speichern der aktualisierten Darstellungen von Tiefe
und Intensität für die Vorderfläche dieses Festkörpers
umfaßt.
6. In einem System für die Modellierung eines
Festkörperobjekts, das aus einem oder mehreren Teilfestkörpern besteht,
die durch eine Baumstruktur in
Konstruktions-Festkörpergeometrie
(CSG) in Beziehung stehen, wobei der modellierte
Festkörper (S) mit Bezug auf einen Blickpunkt Vorder- und
Rückflächen besitzt, die entlang einer z-Achse angeordnet
sind, die parallel zu einer vom Blickpunkt ausgehenden
Sichtgeraden verläuft, wobei das System ein Anzeigemittel
enthält, das eine Mehrzahl aufeinanderfolgender Zeilen
umfaßt, von denen jede eine Mehrzahl einzelner Bildelemente
zur visuellen Anzeige des modellierten Festkörpers enthält,
ein Verfahren für eine Anzeigeoperation, das die folgenden
Schritte umfaßt:
Ermitteln mindestens eines z-verbundenen, dem
Festkörper (S) zugeordneten Teilfestkörpers aus der
CSG-Baumstruktur, wobei ein Teilfestkörper 'z-verbunden' ist, wenn seine
mit einer beliebigen zur z-Achse parallelen Geraden
gebildete Schnittmenge zusammenhängend ist;
(a) Initialisieren eines ersten z-Puffermittels (20) auf
eine maximale Tiefe und eines ersten
Intensitätspuffermittels (24) auf eine vordefinierte Intensität,
für jeden Teilfestkörper;
(b) Initialisieren eines zweiten z-Puffermittels (16) auf
eine vordefinierte Minimaltiefe und des dritten
z-Puffermittels (18) auf eine vordefinierte Maximaltiefe,
für jede Elementarkomponente des Teilfestkörpers,
(c) Rasterndes Konvertieren vorderer Verschiebungskörper
der Elementarkomponente, um Tiefenwerte zu ermitteln,
die Punkten auf den vorderen Verschiebungskörpern
zugeordnet sind,
(d) Vergleichen der Tiefenwerte der vorderen
Verschiebungskörper mit entsprechenden Tiefenwerten im zweiten
z-Puffermittel (16), und für jede Tiefe, die größer
als die entsprechende Tiefe im zweiten
z-Puffermittel (16) ist, Speichern der Tiefe in den
letztgenannten Puffermitteln und Speichern einer entsprechenden
Intensität in das zweite Intensitätspuffermittel (24),
(e) Rasterndes Konvertieren der hinteren
Verschiebungskörper der Elementarkomponente, um Tiefenwerte zu
ermitteln, die Punkten auf den hinteren
Verschiebungskörpern zugeordnet sind,
(f) Vergleichen der Tiefenwerte der hinteren
Verschiebungskörper mit entsprechenden Tiefenwerten in dem
dritten z-Puffermittel (18) und für jede Tiefe, die
kleiner als die entsprechende Tiefe in den
dritten z-Puffermitteln (16) ist, Speichern der Tiefe in
dem Letztgenannten; und
nach Durchführen der Schritte (c) bis (f) für jede
Elementarkomponente
(g) Vergleichen der in den zweiten z-Puffermitteln (16)
gespeicherten Tiefenwerte mit den sowohl in den ersten
als auch in den dritten z-Puffermitteln (20, 18)
gespeicherten Tiefenwerten, und
wenn eine in den zweiten z-Puffermitteln (16) gespeicherte
Tiefe kleiner als eine entsprechende, in den dritten
z-Puffermitteln (18) gespeicherte Tiefe und größer als eine
entsprechende, in den ersten z-Puffermitteln (20) gespeicherte
Tiefe ist,
(h) Speichern der Tiefe der zweiten z-Puffermittel (16) in
die entsprechende Speicherstelle der ersten
z-Puffermittel (20) und Speichern der zugehörigen, in einem
zweiten Intensitätspuffermittel (22) gespeicherten
Intensität in die entsprechende Speicherstelle der
ersten Intensitätspuffermittel (24).
7. Verfahren, wie in Anspruch 8 dargelegt, das weiter die
folgenden Schritte umfaßt:
(a) Ermitteln mindestens eines z-verbundenen, einem
Teilfestkörper von Festkörper (S) zugeordneten Produktes
aus der CSG-Baumstruktur,
(b) Ermitteln einer Tiefe von Punkten, die einer
Vorderfläche des Teilfestkörpers zugeordnet sind,
(c) Speichern der ermittelten Tiefe von Punkten der dem
Teilfestkörper zugeordneten Vorderfläche in den
zweiten z-Puffermitteln (16),
(d) Ermitteln einer Tiefe von Punkten, die einer
Rückfläche des Teilfestkörpers zugeordnet sind,
(e) Speichern der ermittelten Tiefe von Punkten der dem
Teilfestkörper zugeordneten Rückfläche in den dritten
z-Puffermitteln (18),
(f) Speichern einer Darstellung einer Intensität der
Beleuchtung, die von Punkten auf der dem Teilfestkörper
zugeordneten Vorderfläche reflektiert wird, in einem
zweiten Intensitätspuffermittel (22),
(g) Vergleichen der gespeicherten Tiefenwerte von Punkten
in den zweiten z-Puffermitteln (16) mindestens mit
entsprechenden gespeicherten Tiefenwerten von Punkten
in den ersten z-Puffermitteln (20), wobei die
gespeicherten Tiefenwerte in dem Letztgenannten Punkten auf
den Vorderflächen des Festkörpers (S) zugeordnet sind;
um festzustellen, welche der Tiefenwerte von Punkten,
die in den zweiten z-Puffermitteln (16) gespeichert
sind, sofern vorhanden, vor den entsprechenden
Tiefenwerten von Punkten in den ersten z-Puffermitteln (20)
liegen, und
wenn ermittelt wird, daß einige der in den zweiten z-
Puffermitteln (16) gespeicherten Tiefenwerte von
Punkten vor den entsprechenden, in den ersten
z-Puffermitteln (20) gespeicherten Tiefenwerten von Punkten
liegen,
(h) Ersetzen der Tiefe des Punktes bzw. der Punkte in den
ersten z-Puffermitteln (20) durch die Tiefe des
entsprechenden Punktes in den zweiten Puffermitteln (16)
und
(i) Ersetzen des Intensitätswertes des Punktes bzw. der
Punkte in einem ersten Intensitätspuffermittel (24)
durch die Intensität des entsprechenden Punktes in den
zweiten Intensitätspuffermitteln (22), wobei die
gespeicherten Intensitätswerte in dem ersten
Intensitätspuffermittel (24) Punkten auf den Vorderflächen
des Festkörpers (S) zugeordnet sind.
8. Das Verfahren, wie in Anspruch 6 dargelegt, wobei die
Schritte (a) bis (i) sequentiell Bildelement für
Bildelement durchgeführt werden.
9. Das Verfahren, wie in Anspruch 8 dargelegt, wobei die
Schritte (a) bis (i) innerhalb mindestens einer
Bildelementzeile für jedes Bildelement gleichzeitig durchgeführt
werden.
10. Das Verfahren, wie in Anspruch 6 dargelegt, wobei die
Schritte (a) bis (i) innerhalb aller Bildelementzeilen für
jedes Bildelement gleichzeitig durchgeführt werden.
11. In einem Datenverarbeitungssystem für die Verarbeitung von
Abbildungen dreidimensionaler Objekte, die durch eine
Baumdarstellung in Konstruktions-Festkörpergeometrie (CSG)
dargestellt sind, ein Verfahren zur Erkennung einer
Überschneidung oder eines Unterschieds zwischen den Abbildungs-
Bildelementen zweier Objekte, wobei dieses Verfahren die
folgenden Schritte umfaßt:
Erzeugen einer Mehrzahl z-verbundener, in z-verbundene
Produkte gruppierter Verschiebungskörper, indem für jedes
Produkt die folgenden Schritte durchgeführt werden:
Initialisieren eines ersten z-Puffermittels (16) auf eine
vorgegebene Minimaltiefe und eines zweiten
z-Puffermittels (18) auf eine vorgegebene Maximaltiefe;
für jede Elementarkomponente des Produktes
Rasterndes Konvertieren der vorderen Verschiebungskörper
der Elementarkomponente, um Tiefenwerte zu ermitteln, die
Punkten auf den vorderen Verschiebungskörpern zugeordnet
sind,
Vergleichen der Tiefenwerte der vorderen
Verschiebungskörper mit entsprechenden Tiefenwerten in den ersten
z-Puffermitteln (16), und für jede Tiefe, die größer als die
entsprechende Tiefe in den ersten z-Puffermitteln (16) ist,
Speichern der Tiefe in dem Letztgenannten,
Rasterndes Konvertieren der hinteren Verschiebungskörper
der Elementarkomponente, um Tiefenwerte zu ermitteln, die
Punkten auf den hinteren Verschiebungskörpern zugeordnet
sind,
Vergleichen der Tiefenwerte der hinteren
Verschiebungskörper mit entsprechenden Tiefenwerten in den zweiten
z-Puffermitteln (18) und für jede Tiefe, die kleiner als die
entsprechende Tiefe in den zweiten z-Puffermitteln (18)
ist, Speichern der Tiefe in dem Letztgenannten,
Vergleichen der in den ersten z-Puffermitteln (16)
gespeicherten Tiefenwerte mit den in den zweiten
z-Puffermitteln
(18) gespeicherten Tiefenwerten und, wenn eine in den
ersten z-Puffermitteln (16) gespeicherte Tiefe kleiner als
eine entsprechende, in den zweiten z-Puffermitteln (18)
gespeicherte Tiefe ist, Anzeigen der Existenz eines
nichtleeren, z-verbundenen Produktes.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/340,322 US5027292A (en) | 1989-04-19 | 1989-04-19 | Multiple depth buffers for graphics and solid modelling |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69020780D1 DE69020780D1 (de) | 1995-08-17 |
DE69020780T2 true DE69020780T2 (de) | 1996-03-14 |
Family
ID=23332855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69020780T Expired - Fee Related DE69020780T2 (de) | 1989-04-19 | 1990-01-18 | Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung. |
Country Status (5)
Country | Link |
---|---|
US (1) | US5027292A (de) |
EP (1) | EP0393309B1 (de) |
JP (1) | JPH0727579B2 (de) |
CA (1) | CA2007790C (de) |
DE (1) | DE69020780T2 (de) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2055532A1 (en) * | 1990-11-26 | 1992-05-27 | Xingzhang F. Niu | Enhanced solid model generation |
JPH07122908B2 (ja) * | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
EP0591325B1 (de) * | 1991-06-28 | 2007-12-05 | LIM, Hong Lip | Verbesserungen in sichtbarkeit-berechnungen fuer 3d-rechner |
US5274760A (en) * | 1991-12-24 | 1993-12-28 | International Business Machines Corporation | Extendable multiple image-buffer for graphics systems |
US5428716A (en) * | 1991-12-26 | 1995-06-27 | International Business Machines Corporation | Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers |
US5377313A (en) * | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
DE4303071A1 (de) * | 1992-02-03 | 1993-10-28 | Computervision Corp | Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung |
US5497453A (en) * | 1993-01-05 | 1996-03-05 | International Business Machines Corporation | Method and apparatus for detecting and visualizing interferences between solids |
US5583974A (en) * | 1993-05-10 | 1996-12-10 | Apple Computer, Inc. | Computer graphics system having high performance multiple layer Z-buffer |
WO1994027240A1 (en) * | 1993-05-10 | 1994-11-24 | Apple Computer, Inc. | Computer graphics system having high performance multiple layer z-buffer |
US5684939A (en) * | 1993-07-09 | 1997-11-04 | Silicon Graphics, Inc. | Antialiased imaging with improved pixel supersampling |
US5729672A (en) * | 1993-07-30 | 1998-03-17 | Videologic Limited | Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces |
GB9315852D0 (en) * | 1993-07-30 | 1993-09-15 | Video Logic Ltd | Shading three-dimensional images |
JP2616882B2 (ja) * | 1993-12-17 | 1997-06-04 | 日本アイ・ビー・エム株式会社 | 非多様体データ構造に基づく数値制御加工シミュレーション・システム及び方法 |
DE69526919T2 (de) * | 1995-01-31 | 2003-01-16 | Imagination Technologies Ltd., Kings Langley | Verfahren und Vorrichtung zur Schattierung dreidimensionaler Bilder |
JPH0969163A (ja) * | 1995-08-31 | 1997-03-11 | Fujitsu Ltd | コンピュータグラフィックスモデルのポリゴン重なり抽出方法と、ポリゴンのグループ化方法及び装置 |
US7225404B1 (en) * | 1996-04-04 | 2007-05-29 | Massachusetts Institute Of Technology | Method and apparatus for determining forces to be applied to a user through a haptic interface |
US6084587A (en) * | 1996-08-02 | 2000-07-04 | Sensable Technologies, Inc. | Method and apparatus for generating and interfacing with a haptic virtual reality environment |
US5926183A (en) * | 1996-11-19 | 1999-07-20 | International Business Machines Corporation | Efficient rendering utilizing user defined rooms and windows |
US5926182A (en) * | 1996-11-19 | 1999-07-20 | International Business Machines Corporation | Efficient rendering utilizing user defined shields and windows |
US6249600B1 (en) * | 1997-11-07 | 2001-06-19 | The Trustees Of Columbia University In The City Of New York | System and method for generation of a three-dimensional solid model |
US6421048B1 (en) * | 1998-07-17 | 2002-07-16 | Sensable Technologies, Inc. | Systems and methods for interacting with virtual objects in a haptic virtual reality environment |
US6552722B1 (en) * | 1998-07-17 | 2003-04-22 | Sensable Technologies, Inc. | Systems and methods for sculpting virtual objects in a haptic virtual reality environment |
US7030877B1 (en) * | 2002-03-04 | 2006-04-18 | Advanced Micro Devices, Inc. | Computer graphics processing system, computer memory, and method of use with computer graphics processing system utilizing hierarchical image depth buffer |
WO2006004894A2 (en) | 2004-06-29 | 2006-01-12 | Sensable Technologies, Inc. | Apparatus and methods for haptic rendering using data in a graphics pipeline |
US8208764B2 (en) * | 2006-01-21 | 2012-06-26 | Elizabeth Guckenberger | Photo automatic linking system and method for accessing, linking, and visualizing “key-face” and/or multiple similar facial images along with associated electronic data via a facial image recognition search engine |
WO2012144929A1 (ru) | 2011-04-21 | 2012-10-26 | Lukyanets Sergei Vladimirovich | Баллон высокого давления из композиционных материалов |
US9111071B2 (en) * | 2012-11-05 | 2015-08-18 | Sap Se | Expression rewriting for secure computation optimization |
GB2520365B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4649498A (en) * | 1984-05-08 | 1987-03-10 | The University Of Rochester | Computer systems for curve-solid classification and solid modeling |
US4736306A (en) * | 1985-04-29 | 1988-04-05 | The United States Of America As Represented By The United States Department Of Energy | System for conversion between the boundary representation model and a constructive solid geometry model of an object |
US4821214A (en) * | 1986-04-17 | 1989-04-11 | Brigham Young University | Computer graphics method for changing the shape of a geometric model using free-form deformation |
JPH0634239B2 (ja) * | 1986-06-16 | 1994-05-02 | 工業技術院長 | 3次元画像表示装置 |
GB2194656B (en) * | 1986-09-03 | 1991-10-09 | Ibm | Method and system for solid modelling |
US4888583A (en) * | 1988-03-14 | 1989-12-19 | Ligocki Terry J | Method and apparatus for rendering an image from data arranged in a constructive solid geometry format |
-
1989
- 1989-04-19 US US07/340,322 patent/US5027292A/en not_active Expired - Fee Related
-
1990
- 1990-01-15 CA CA002007790A patent/CA2007790C/en not_active Expired - Fee Related
- 1990-01-18 EP EP90100993A patent/EP0393309B1/de not_active Expired - Lifetime
- 1990-01-18 DE DE69020780T patent/DE69020780T2/de not_active Expired - Fee Related
- 1990-04-17 JP JP2099450A patent/JPH0727579B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0362276A (ja) | 1991-03-18 |
CA2007790A1 (en) | 1990-10-19 |
EP0393309B1 (de) | 1995-07-12 |
JPH0727579B2 (ja) | 1995-03-29 |
EP0393309A1 (de) | 1990-10-24 |
US5027292A (en) | 1991-06-25 |
DE69020780D1 (de) | 1995-08-17 |
CA2007790C (en) | 1994-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69020780T2 (de) | Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung. | |
DE3789650T2 (de) | Verfahren und System zur Festkörpermodellierung. | |
DE69322575T2 (de) | Verfahren und Gerät zur Wiedergabe von abgeglichenen NURB Oberflächen | |
DE102006061325B4 (de) | Verfahren zur computergestützten Identifikation der von einem Richtstrahl durchschnittenen Kinderoktanten eines Elternoktants in einer Octree-Datenstruktur mittels Look-up-Tabellen | |
DE69812732T2 (de) | Verfahren und Gerät zur schnellen Wiedergabe von durch Computer erzeugten Bildern von komplexen Strukturen | |
DE69224499T2 (de) | Dreidimensionale graphische Verarbeitung | |
DE69224928T2 (de) | Schattentestverfahren für drei-dimensionales graphisches Wiedergabesystem | |
DE69924700T2 (de) | Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten | |
DE69232403T2 (de) | Dreidimensionales Modellverarbeitungsverfahren und -gerät | |
DE69924699T2 (de) | Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten | |
DE60026197T2 (de) | Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung | |
DE68927471T2 (de) | Verfahren zur Schattierung eines graphischen Bildes | |
DE3889882T2 (de) | Modellierungssystem für Festkörper. | |
DE68928941T2 (de) | Bilderzeugungsgerät | |
DE69907415T2 (de) | Bestimmung sichtbarer objekte für interaktive visualisation | |
DE112012005657T5 (de) | Computerprogrammprodukt und Verfahren zum Erzeugen und Simulieren eines Modells eines Objekts | |
DE102009042328B4 (de) | Effiziente Bestimmung von Lichteffekten beim Volume Rendering | |
DE112012002623T5 (de) | Verfahren zum Simulieren der Bearbeitung von Objekten durch Bewegung eines Werkzeugs, und System und Computerprogrammprodukt für dieses | |
DE3608438A1 (de) | Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc | |
DE69512262T2 (de) | Verfahren zum erzeugen von räumlich ausgewogenen abgrenzvolumenhierarchien zur anwendung in einer computererzeugten darstellung einer komplexen struktur | |
DE10043460C2 (de) | Auffinden von Körperpartien durch Auswerten von Kantenrichtungsinformation | |
DE69227095T2 (de) | Bewegungen zur Umwandlung von konkaven Polyedern in ihre konvexen Hüllen | |
DE4303071A1 (de) | Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung | |
DE69924230T2 (de) | Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten | |
DE102021205765A1 (de) | Hardwarebasierte techniken der strahlverfolgung zur effizienten darstellung und verarbeitung eines beliebigen hüllkörpers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |