-
Die
Erfindung bezieht sich auf das Gebiet von Computerprogrammen und
-systemen und spezifischer auf Teildesignprogramme und -systeme.
-
Eine
Anzahl von Systemen und Programmen wird auf dem Markt für das Design
von Teilen oder Anordnungen von Teilen zur Verfügung gestellt bzw. angeboten,
wie das eine, das durch die Anmelderin unter der Marke CATIA zur
Verfügung
gestellt ist. Diese sogenannten Computer-unterstützten Design-(CAD-) Systeme
erlauben es einem Benutzer, komplexe dreidimensionale (3D) Modelle
von Teilen oder Anordnungen von Teilen zu konstruieren und handzuhaben.
Eine Anzahl von unterschiedlichen Modelliertechniken kann verwendet
werden, um ein Modell einer Anordnung auszubilden. Diese Techniken
beinhalten das ein festes bzw. Festkörpermodulieren, Drahtrahmenmodulieren
und Oberflächenmodulieren.
Diese Modelliertechniken stellen topologische 3D Modelle zur Verfügung, wo
das 3D Modell beispielsweise eine Ansammlung von miteinander verbundenen
Kanten bzw. Rändern
und Flächen bzw.
Seiten ist. Geometrisch ist ein 3D festes bzw. Festkörpermodell
eine Ansammlung von getrimmten oder neu begrenzten Oberflächen, welche
eine geschlossene Haut definierten. Die getrimmten Oberflächen entsprechen
den topologischen Flächen
bzw. Seiten, die durch die Kanten begrenzt sind. Die geschlossene
Haut definiert einen beschränkten
bzw. begrenzten Bereich eines 3D Raums, der mit dem Material des
Teils gefüllt
ist. Drahtrahmenmodelliertechniken auf der anderen Seite können verwendet werden,
um ein Modell als eine Sammlung von einfachen 3D Linien darzustellen,
während
ein Oberflächenmodellieren
verwendet werden kann, um ein Modell als eine Sammlung von äußeren Oberflächen zu
repräsentieren.
CAD Systeme können
diese und andere Modelliertechniken, wie parametrische Modelliertechniken
kombinieren. CAD Systeme stellen somit eine Darstellung von modellierten
Objekten unter Verwendung von Kanten oder Linien in bestimmten Fällen mit
Flächen
zur Verfügung.
Linien oder Kanten bzw. Ränder
können
in verschiedenen Weisen dargestellt werden, z.B. nichtgleichmäßige rationale
B-Splines (NURBS).
-
Eine
Funktion, die üblicherweise
durch Benutzer bzw. Verwender von CAD Systemen gefordert ist, ist
die Fähigkeit,
Bilder der modellierten Objekte, z.B. für Produktionszeichnungen und
dgl. zu bilden bzw. zu produzieren. In derartigen Bildern ist bzw. wird
das modellierte Objekt durch einen Satz von Linien repräsentiert
bzw. dargestellt, welche allgemein den Kanten und Silhouetten des
modellierten Objekts entsprechen; Silhouetten sind virtuelle Linien,
wie dies unten erklärt
ist. Es kann nützlich
sein, versteckte Linien zu entfernen, d.h. von dem Bild der Darstellung
der Linien des Objekts bzw. Gegenstands zu entfernen, welche nicht
durch einen Benutzer gesehen würden,
wenn das echte Objekt zu sehen bzw. zu betrachten wäre. Diese
Funktion, ebenso wie Definitionen von Elementen eines CAD Systems
sind unter bezug auf 1-3 beispielhaft
erklärt.
-
1 zeigt
eine Drahtrahmenansicht eines Objekts, das auf einer parallelepipedischen
Basis 2 mit einem Zylinder 4 an der oberen Fläche der
Basis gebildet ist. Die Basis ist aus sechs Flächen gebildet; jede Fläche ist
eine Neu- bzw. Wiederbegrenzung einer Oberfläche mit einer infiniten Ebene.
Der Zylinder kann als drei Flächen
aufweisend gesehen werden: Die obere und untere Fläche sind
Scheiben. Die Scheiben sind Relimitationen bzw. Wiederbegrenzungen
von infiniten Ebenen. Die seitliche Fläche des Zylinders ist seine
zylindrische Wand. Die zylindrische Wand ist eine Wiederbegrenzung
einer infiniten Oberfläche,
die ein Rohr ausbildet. Diese Oberfläche ist durch zwei Kreise begrenzt
oder wiederbegrenzt. In einer schachbrettartigen Darstellung würde das Objekt
durch einen Satz von Facetten dargestellt sein; Facetten sind Polygone, üblicherweise
Dreiecke. In dem vorgeschlagenen Beispiel könnten die seitlichen Flächen und
die untere Fläche
der Basis jeweils durch zwei Dreiecke dargestellt werden; die obere
Fläche
der Basis 2, außerhalb
der unteren Scheibe des Zylinders 4, die seitliche und
obere Fläche
des Zylinders könnten
durch eine höhere
Anzahl von Flächen
bzw. Seiten dargestellt werden. Das Wort "Kante" bezeichnet eine topologische Grenze einer
Fläche;
das Wort "Draht" bezeichnet ein monoparametrisches
Element. Das Wort "Silhouette" (oder Außenkontur)
ist ein virtuelles monoparametrisches Element, wie dies unten erklärt ist.
In dem Rest der Beschreibung umfaßt das Wort "Linie" Kanten, Drähte, Silhouetten
oder jede andere monoparametrische Kurve.
-
In
dem Beispiel von 1 sind die Linien, die die Kanten
der Basis 2 repräsentieren,
ebenso wie die Kanten des Zylinders 4 dargestellt. 1 zeigt weiterhin
zwei vertikale Linien 6 und 8, welche die Grenzen
des Zylinders darstellen. Diese Linien sind tatsächlich nicht Kanten des modellierten
Objekts, jedoch erscheinen sie dennoch auf dem Bild; sie sind virtuelle
Linien oder Silhouetten, da sie tatsächlich von der Sicht bzw. Ansicht
abhängen.
In dem Drahtrahmenbild von 1 sind alle
Linien des modellier ten Objekts dargestellt bzw. repräsentiert.
Diese Linien inkludieren jene Kanten oder ein Teil von Kanten, welche
normalerweise versteckt sein würden.
-
2 zeigt
eine Ansicht des modellierten Objekts von 1, wo versteckte
Linien entfernt sind; in 2 sind diese versteckten Linien
einfach nicht dargestellt. Beispielsweise ist die Linie 10 der Basis 2 um
ihre Mitte unterbrochen an dem Teil, der von dem Betrachter durch
den Zylinder 4 versteckt bzw. verdeckt ist. Punkte 14 und 16 zeigen
den Schnitt der Linie 10 mit vertikalen Linien 6 und 8:
die Linie 10 ist zwischen den Punkten 14 und 16 versteckt.
Die Linie 12 in 2 ist vollständig sichtbar, da sie die vordere
Bodenlinie der Basis 4 ist.
-
3 zeigt
eine Ansicht des modellierten Objekts von 1, wo versteckte
Linien entfernt sind; in 3 sind diese versteckten Linien
in unterbrochenen Linien dargestellt. Beispielsweise ist die Linie 10 der
Basis 2 in unterbrochenen Linien um ihre Mitte dargestellt.
Für den
Zeichner zeigen beide 2 und 3 eine Ansicht
mit entfernten versteckten Linien. Man könnte auch andere graphische Darstellungen
für versteckte
Linien wählen,
z.B. unterschiedliche Farben und dgl. Eine Entfernung von versteckten
Linien in dieser Beschreibung deckt alle Beispiele, wo die Darstellung
der Linien oder Kanten sich abhängig
davon ändert,
ob sie auf der entsprechenden Ansicht versteckt oder sichtbar sind.
Selbst obwohl die Darstellung von 1 eine perspektivische
Ansicht ist, erscheint dasselbe Problem eines Entfernens von versteckten
Linien für
andere Arten einer Ansicht, wie Drauf- oder Seitenansichten.
-
Bilder
eines modellierten Objekts können von
unterschiedlichen Arten bzw. Typen sein. Bitmapbilder werden insbesondere
für die
Zwecke eines Anzeigens bzw. Darstellens der Bilder dem Endbenutzer
auf einem Computerschirm verwendet. Der Computerschirm ist eine
zweidimensionale Matrix von Bildpunkten bzw. Pixeln und ein Bitmapbild
ist eine zweidimensionale Matrix von Werten; diese Werte können binäre Werte
für eine Schwarz-Weiß-Anzeige
sein oder können
höhere bzw.
aufwendigere Werte sein, z.B. für
Farbanzeigen. Ein Bitbild ist somit ein Satz von Werten, welche Farbwerte
für unterschiedliche
Bildpunkte des Bilds repräsentieren.
Vektorbilder werden aus Linien und Kurven und nicht einfach Bildpunktelementen
ausgebildet, diese sind insbesondere für Spur- bzw. Verfolgungsmaschinen
und für
verschiedene Computersoftwareprogramme nützlich bzw. verwendbar. Ein Vektorbild
ist somit durch eine Serie von Linien repräsentiert. Beispielsweise würde ein
Bitmapbild der Ansicht von 1 eine Anzahl
von Bildpunkten zum Darstellen der verschiedenen Linien umfassen.
Ein Vektorbild der Ansicht von 1 könnte 14
Linien und 2 Kreise umfassen; alternativ könnten die Kreise als eine Anzahl
von geraden Segmenten definiert sein. Der Fachmann in der Technik
versteht, daß die Art
einer Darstellung der Linien, die in einem Vektorbild verwendet
sind bzw. werden, entsprechend dem Bildformat variieren kann.
-
Lösungen für ein Entfernen
von versteckten Linien sind bekannt. Ein Algorithmus, der als der "Maleralgorithmus" bekannt ist, verwendet
als eine Ausgangsbasis eine schachbrettartige Darstellung des modellierten
Objekts, d.h. eine Darstellung eines modellierten Objekts als einen
Satz von Kanten und Facetten. Der Algorithmus besteht in dem aufeinanderfolgenden
Zeichnen in dem Bild von jeder der Kanten und Facetten. Zum Zeitpunkt,
wo ein Bildpunkt einer Kante oder Facette gezeichnet ist bzw. wird, überprüft der Algorithmus,
ob dieser Bildpunkt in der Ansicht vor oder hinter Bildpunkten erscheint,
die bereits auf dem Bild gezeichnet sind. In dem letzteren Fall
wird der Bildpunkt nicht gezeichnet. In dem ersteren Fall ersetzt
er den existierenden Bildpunkt in dem Bild. Der Algorithmus macht
es notwendig, für jeden
Bildpunkt, der auf dem Bild gezeichnet ist, einen Tiefenwert zu
speichern, der für
die Tiefe des Bildpunkts in der Ansicht repräsentativ ist. Der Algorithmus
stellt ein Bitmapbild des modellierten Objekts zur Verfügung, wo
versteckte Linien entfernt sind. Ein Nebenprodukt dieses Algorithmus
ist ein Tiefenbild, in welchem für
jeden gezeichneten Bildpunkt des Bilds ein Wert gespeichert ist,
der für
seine Tiefe in der Ansicht repräsentativ
ist. Dieser Algorithmus ist beispielsweise in OpenGL Programming
Guide, 3. Auflage, Addison Wesley geoffenbart. Der Algorithmus antwortet
schnell, jedoch ist er nur auf Bereitstellen eines Pixel- bzw. Bildpunktbilds
adaptiert.
-
In
dem Designsystem, das unter der Marke CATIA verkauft wird, wird
ein Programm zur Verfügung
gestellt, um ein Vektorbild eines modellierten Objekts zur Verfügung zu
stellen. Dieses Programm arbeitet durch ein Bestimmen für jede Kante
in einer Darstellung des modellierten Objekts, ob diese Kante durch
eine andere Kante eine Facette des modellierten Objekts versteckt
ist. Dieses Programm ist zufriedenstellend; jedoch für komplexe
Bilder kann es eine Berechnungszeit erfordern, die bedeutend genug
ist, um für
den Benutzer des Designsystems spürbar zu sein.
-
Eine
Lösung
zum Entfernen von versteckten Linien von einem Bild ist unter dem
Wort "Schattieren bzw.
Bildabschatten" bekannt;
eine spezifische Art eines Bildabschattens ist ein "dynamisches Entfernen einer
versteckten Linie".
Ein Bildabschatten ist in OpenGL Programming Guide, 3. Auflage,
Addison Wesley, Seiten 584 ff. geoffenbart. Ein dynamischer Entferner
einer versteckten Linie wird in CATIA V5 verwendet. Diese letzte
Lösung
besteht im Ändern der
Farben von Facetten in einer schachbrettartigen Darstellung eines
modellierten Objekts. Die Farbe der Facetten wird zur Hintergrundfarbe
verändert. Das
geänderte
schachbrettartige Objekt wird auf eine Graphikkarte angewandt. Das
Ergebnis ist ein Bitmapbild mit versteckten Linien: jedoch erscheinen die
Facetten nicht für
den Benutzer, da sie dieselbe Farbe wie der Hintergrund aufweisen.
Jedoch sind bzw. werden die Facetten tatsächlich in der Graphikkarte
gezeichnet, so daß rückwärtige Kanten
versteckt erscheinen. Diese Lösung
ist beispielsweise für
ein Anzeigen auf einem Schirm eines Bilds des modellierten Objekts
zufriedenstellend; sie stellt jedoch nur ein Bitmapbild zur Verfügung.
-
Dokument
EP 0 862 136 A offenbart
ein Computerverfahren, um eine Trennung von überlappten Objekten einer Seiteninformation
auszuführen.
Die Seite wird durch Fliesen bzw. Tiles definiert, und jede Fliese
wird auf ein 2D Feld von Kantenzeigern aufgezeichnet, die als eine
Vektorkarte bezeichnet werden. Jede Zelle in der Vektorkarte enthält eine Liste
von allen Kanten des Bilds, welche durch es hindurchtreten.
-
Es
besteht somit ein Erfordernis für
eine Lösung,
die ein Vektorbild eines modellierten Objekts mit entfernten versteckten
Linien zur Verfügung
stellt. Die Lösung
sollte vorzugsweise einfach implementiert sein und sollte nicht übermäßige CPU
Zeit oder Speicherraum, selbst für
große
modellierte Objekte erfordern.
-
Gemäß der Erfindung
wird ein Computer-implementiertes Verfahren zur Verfügung gestellt,
wie dies in Anspruch 1 definiert ist.
-
In
einer bevorzugten Ausbildung umfaßt der Schritt eines Bereitstellens
eines Bitmapbilds ein Berechnen eines Bitmapbilds in einer Hardwarelogik, beispielsweise
eines Bitmapbilds, das in einer Graphikkarte berechnet ist.
-
Vorzugsweise
ist das modellierte Objekt in einer schachbrettartigen Darstellung
mit Kanten bzw. Rändern
und Seiten bzw. Flächen
zur Verfügung
gestellt, und die Linien umfassen Kanten und eine Silhouette der
schachbrettartigen Darstellung.
-
In
einer weiteren bevorzugten Ausbildung sind die Linien des modellierten
Objekts signiert bzw. mit Signaturen versehen und der Schritt eines
Bereitstellens eines Bitmapbilds umfaßt weiterhin ein Signieren
von Bildpunkten bzw. Pixeln in den Bitmapbildpunkten. In vorteilhafter
Weise sind unterschiedliche Linien mit unterschiedlichen Signaturen
versehen bzw. zur Verfügung
gestellt.
-
In
einer bevorzugten Ausbildung umfaßt der Schritt eines Vergleichens
ein Vergleichen einer Signatur der Linie mit einer Signatur von
Bildpunkten bzw. Pixeln des Bitmapbilds und die Linien des modellierten
Objekts sind farbsigniert bzw. farbig bezeichnet.
-
In
einer weiteren bevorzugten Ausbildung ist bzw. wird das modellierte
Objekt in einer schachbrettartigen Darstellung mit Kanten und Facetten
zur Verfügung
gestellt und der Schritt eines Bestimmens umfaßt:
- – Finden
einer Facette, die eine Linie versteckt, und
- – Berechnen
des Schnitts der Facette mit der Linie.
-
In
einer weiteren Lösung
ist das modellierte Objekt in einer schachbrettartigen Darstellung
mit Kanten und Facetten zur Verfügung
gestellt und der Schritt eines Bestimmens umfaßt:
- – Finden
einer Facette, die eine Linie versteckt, und
- – Berechnen
des Schnitts der Linie mit einer Seite bzw. Fläche, die sich auf die Facette
bezieht.
-
Die
Erfindung stellt auch ein Programm zur Verfügung, wie es in Anspruch 10
definiert ist.
-
Vorzugsweise
ist das Programm adaptiert, um eine schachbrettartige Darstellung
des modellierten Objekts mit Kanten bzw. Rändern und Facetten zu empfangen.
-
In
einer bevorzugten Ausbildung ist das Programm adaptiert, um ein
modelliertes Objekt mit signierten Linien und ein Bitmapbild mit
signierten Bildpunkten zu empfangen.
-
Das
Programm der Erfindung umfaßt
weiterhin eine Routine zum Suchen, ob das Bitmapbild Bildpunkte
umfaßt,
die die Signatur einer Linie des modellierten Objekts aufweisen.
Vorzugsweise ist das Programm adaptiert, um ein modelliertes Objekt mit
farbsignierten Linien und ein Bitmapbild mit farbsignierten Bildpunkten
zu empfangen.
-
In
einer bevorzugten Ausbildung ist das Programm adaptiert, um ein
modelliertes Objekt in einer schachbrettartigen Dar stellung mit
Kanten und Facetten zu empfangen, und die Bestimmungsroutine ist
adaptiert zum
- – Finden einer Facette, die
eine Linie versteckt, und
- – Berechnen
des Schnitts der Facette mit der Linie.
-
In
einer weiteren bevorzugten Ausbildung ist das Programm adaptiert,
um ein modelliertes Objekt in einer schachbrettartigen Darstellung
mit Kanten und Facetten zu empfangen, und die Bestimmungsroutine
ist adaptiert zum
- – Finden einer Facette, die
eine Linie versteckt, und
- – Berechnen
des Schnitts der Linie mit einer Seite bzw. Fläche, die durch die Facette
dargestellt bzw. repräsentiert
ist.
-
Ein
Computer-unterstütztes
Designsystem, das die Erfindung verkörpert bzw. ausbildet, wird
nun mittels eines nichteinschränkenden
Beispiels und unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben,
worin:
-
1 eine
schematische Drahtrahmendarstellung eines modellierten Objekts ist;
-
2 und 3 Ansichten ähnlich zu
jener von 1 sind, wo versteckte Linien
entfernt sind;
-
4 ein
Flußdiagramm
des Verfahrens in einer ersten Ausbildung der Erfindung ist;
-
5 eine
vergrößerte Ansicht
eines Bitmapbilds des Objekts von 2 ist;
-
6–12 Ansichten
von modellierten Objekten sind, die mit einer Lösung gemäß dem Stand der Technik und
mit dem Verfahren gemäß der Erfindung
erhalten sind.
-
Die
Erfindung nutzt bestehende Lösungen zum
Bereitstellen von Bitmapbildern eines modellierten Objekts, mit
entfernten versteckten Linien, wie jene, die in Computer graphikkarten
verkörpert
bzw. ausgebildet sind. Um ein Vektorbild einer Ansicht des modellierten
Objekts zur Verfügung
zu stellen, verwendet die Erfindung ein Bitmapbild der Ansicht des modellierten
Objekts; versteckte Linien sind auf dem Bild entfernt.
-
Für eine gegebene
Linie des modellierten Objekts – eine
Kante in dem Beispiel einer schachbrettartigen Darstellung des Objekts – legt die
Erfindung ein Zeichnen eines Rasters der Linie in derselben Ansicht
nahe. Der Raster ist tatsächlich
eine Bildpunktdarstellung der Linie in der Ansicht. Ein Bereitstellen
des Rasters ist gleichbedeutend einem Bereitstellen eines Bitmapbilds
einer Ansicht des modellierten Objekts, das lediglich aus der Linie
besteht. Man kann dann die Bildpunkte in dem Raster und die entsprechenden
Bildpunkte in dem Bitmapbild vergleichen. Wenn ein Bildpunkt des
Rasters nicht in dem Bitpunktbild umfaßt ist, bedeutet das, daß das entsprechende
Teil der Linie versteckt ist und nicht in dem Vektorbild erscheinen
sollte. Der Vergleich macht es somit möglich, die Teile der Linie
zu bestimmen, welche in dem Vektorbild sichtbar sein sollten – alternativ
die Teile der Linie, welche in dem Vektorbild versteckt sein sollten.
-
Der
Prozeß kann
für alle
Linien in den Vektorbildern in der einfachsten Ausbildung wiederholt werden.
Lösungen
zum Beschleunigen des Verfahrens sind bzw. werden unten diskutiert.
-
Die
Erfindung stellt die folgenden Vorteile zur Verfügung. Zuerst hat sie eine Komplexität, welche eine
lineare Funktion der Anzahl von Linien in dem modellierten Objekt
ist. Dies ist mit dem Programm gemäß dem Stand der Technik zu vergleichen,
das oben diskutiert ist, für
welches die Komplexität
eine quadratische Funktion der Anzahl von Linien ist, da jede Linie
mit allen anderen Linien und Facetten in dem modellierten Objekt
zu vergleichen ist.
-
Zweitens
macht es die Erfindung möglich, die
Lösung
einfach durch ein Ändern
der Granularität des
Bitmapbild und des Rasters zu adaptieren. Die Wahl der Auflösung kann
global sein – mit
derselben Auflösung
für das
gesamte Bild; unterschiedliche Auflösungen können auch in demselben Bild
verwendet werden. Man kann somit sehr schnell ein grobes Vektorbild
des modellierten Objekts mit einer groben Auflösung zur Verfügung stellen.
-
Drittens
kann die Auflösung
erhöht
werden, um sogar kleiner als die Bildpunktgröße in dem Bitmapbild zu sein,
wie dies unten diskutiert werden wird.
-
Viertens
ist die Erfindung robust. Unter der Annahme, daß das Bitmapbild nicht fehlerhaft
ist, ist der obere Grenzwert eines Fehlers auf einer Linie in dem
Vektorbild die Bildpunktgröße in dem
Bitmapbild. Dies bedeutet, daß der
Vektor, der gemäß der Erfindung
zur Verfügung
gestellt ist bzw. wird, so zuverlässig wie das Bitmapbild ist.
Es ist klar bzw. vernünftig
anzunehmen, daß das
Bitmapbild nicht fehlerhaft ist; somit wird das Vektorbild keine
offensichtlichen Fehler enthalten – wie beispielsweise eine volle
Linie, welche versteckt sein sollte.
-
Andere
Vorteile der Erfindung sind in der folgenden Beschreibung diskutiert.
Wie oben ausgeführt,
umfaßt
das Wort "Linie" jede Art von Kante, Draht,
Kurve und Silhouette oder monoparametrisches Element. Somit erstreckt
sich das Wort "Linie" über die traditionelle Bezeichnung
einer geraden Linie in dem Feld der Geometrie hinaus.
-
Die
Erfindung ist bzw. wird in dem Beispiel einer schachbrettartigen
Darstellung des modellierten Objekts aus Gründen einer Erläuterung
beschrieben. Das modellierte Objekt ist somit durch einen Satz von Kanten
bzw. Rändern
und Facetten dargestellt bzw. repräsentiert, welche entsprechend
mit Ei und Fj bezeichnet
sind, wobei die Indizes i und j ganze Zahlen sind. Der Fachmann
in der Technik von Designsystemen wird verstehen, daß die Erfindung
auf andere Darstellungen von modellierten Objekten angewandt werden
kann.
-
4 ist
ein Flußdiagramm
des Verfahrens in einer Ausbildung der Erfindung.
-
In
Schritt 20 wird eine schachbrettartige Darstellung des
modellierten Objekts zur Verfügung
gestellt. Verfahren zum Bereitstellen einer derartigen Darstellung
sind bzw. werden hier nicht diskutiert, da sie dem Fachmann in der
Technik bekannt sind.
-
Im
nächsten
Schritt 22 wird ein Bitmapbild des modellierten Objekts
zur Verfügung
gestellt mit entfernten versteckten Linien. Man kann in diesem Schritt
eine Software- oder Hardwarelösung
verwenden oder eine Mischung von beiden. Eine exemplarische bzw.
beispielhafte Hardwarelösung
besteht in einem Verwenden einer Graphikkarte und einem Anwenden
auf der Graphikkarte des modellierten Objekts; diese Lösung hat
den Vorteil, daß sie
in jedem Computer verwendbar ist, der mit einer Graphikkarte versehen
ist. Zusätzlich
stellt sie sicher, daß der Schritt
schnell ausgeführt wird.
Das Bitmapbild kann eines sein, das für eine Anzeige auf einem Monitor verwendet
ist bzw. wird; es könnte
ein virtuelles Bild jeglicher Größe sein,
welches nicht beabsichtigt ist, daß es angezeigt bzw. dargestellt
wird. Das Bild könnte
in einem Speicher gespeichert werden oder schnell bzw. unmittelbar
generiert werden.
-
Selbst
wenn diese Hardwarelösung
gegenwärtig
bevorzugt ist, kann man auch andere Lösungen verwenden, sofern sie
das geforderte Bitmapbild zur Verfügung stellen. Es wird bei diesem
Schritt verstanden werden, daß das
Bitmapbild ein Bild des modellierten Objekts in einer gegebenen
Ansicht ist – wie
in 1 eine vordere perspektivische Ansicht.
-
In
Schritt 24 ist bzw. wird eine erste Kante ausgewählt. In
der einfachsten Ausbildung der Erfindung, die hier diskutiert ist,
kann man einfach die erste Kante E1 in der
schachbrettartigen Darstellung des modellierten Objekts auswählen. Wie
unten diskutiert, kann es ausreichend sein, einen Subsatz von Kanten
des modellierten Objekts zu betrachten; eine lineare Abtastung der
Kanten ist auch nicht ein Erfordernis zum Ausführen des Verfahrens.
-
In
Schritt 26 wird ein Raster der gewählten Kante zur Verfügung gestellt.
Wie oben diskutiert, ist ein Raster eine Pixel- bzw. Bildpunktdarstellung
der Kante in einer Ansicht, welche der Ansicht entspricht, die für das Bitmapbild
gewählt
ist. Beispielsweise stellt man, wenn die Ansicht eine vordere perspektivische
Ansicht in einem gegebenen Maßstab
ist, einen Raster der Kante in derselben vorderen perspektivischen
Ansicht mit demselben Maßstab
zur Verfügung.
Das hat die Wirkung bzw. den Effekt, daß, wenn die Kante nicht in
dem Bitmapbild versteckt ist, der Raster mit der Darstellung der
Kante in dem Bitmapbild überlagert
wird. In dem Beispiel von 2 wird der
Raster der Kante 12 mit den Bildpunkten der Kante 12 in
dem Bitmapbild überlagern.
Der Raster der Kante 10 wird mit den Bildpunkten des Bildmapbilds überlagern,
jedoch nur in dem sichtbaren Teil der Kante in dem Bitmapbild.
-
Es
gibt zahlreiche Lösungen,
um den Raster zur Verfügung
zu stellen. Man kann einfach einen Softwarealgorithmus zum Zeichnen
der Kante in der geforderten bzw. erforderlichen Ansicht verwenden und
dann die gezeichnete Kante in Bildpunkte aufteilen. Man kann auch
berücksichtigen
bzw. beachten, daß die
Kante tatsächlich
ein schachbrettartiges Objekt ist, das aus einer einzigen Kante
gebildet ist; ein Bitmapbild dieses Objekts stellt den Raster der
Kante zur Verfügung.
Ein derartiges Bitmapbild kann durch irgendeine der Lösungen erhalten
werden, die unter Bezugnahme auf Schritt 22 diskutiert
sind.
-
In
der einfachsten Ausbildung ist die Bildpunktgröße in dem Raster dieselbe wie
die Bildpunktgröße in dem
Bitmapbild. Dies vereinfacht den Vergleichsschritt, der unten diskutiert
ist, und optimiert die Auflösung,
die in dem Vektorbild erhalten ist. Jedoch ist die Bildpunktgröße in dem
Raster nicht notwendigerweise dieselbe wie die Bildpunktgröße in dem
Bitmapbild. Beispielsweise kann die gewählte Kante keine hohe Auflösung in
dem Vektorbild mit versteckten entfernten Linien erfordern; in diesem Fall
könnte
man entscheiden, daß die
Auflösung
in dem Raster – die
Bildpunktgröße – höher als
die Bildpunktgröße in dem
Bitmapbild ist.
-
An
dem Ende von Schritt 26 werden ein Raster der Kante und
ein Bitmapbild mit entfernten versteckten Linien zur Verfügung gestellt.
Man kann dann, wie dies in Schritten 28–36 diskutiert ist,
die Bildpunkte des Rasters mit den Bildpunkten des Bilds vergleichen,
um fähig
zu sein zu bestimmen, welche Teile der Kanten in dem Vektorbild
sichtbar sein sollten. In den Beispielen der Kanten 10 und 12 von 2 würde der
Vergleich die folgenden Ergebnisse zur Verfügung stellen. Für die Kante 12 würden in dem
Bitmapbild Bildpunkte entsprechend allen Bildpunkten in dem Raster
existieren. Dies bedeutet, daß die
Kante 12 vollständig
in dem Vektorbild des modellierten Objekts sichtbar sein sollte.
Betreffend die Kante 10 gibt es keine Bildpunkte in dem
Bitmapbild, welche mit den Bildpunkten um das Zentrum des Rasters übereinstimmen;
dies bedeutet, daß das
Teil der Kante 10 um das Zentrum nicht sichtbar sein sollte.
-
In
Schritt 28 betrachtet man den ersten Bildpunkt in dem Raster,
z.B. einen Bildpunkt entsprechend dem einen Ende der Kante. In Schritt 30 sucht man
für den
gewählten
Bildpunkt in dem Bitmapbild, ob ein korrespondierender Bildpunkt
existiert. In der einfachsten Ausbildung, wo die Bildpunktgröße in dem
Raster und in dem Bitmapbild die gleichen sind, kann dies in einem
Suchen in dem Bitmapbild bestehen, ob ein Bildpunkt bzw. Pixel von
einer Kante an dem Ort des Bildpunkts in dem Raster gezeichnet ist. Wenn
es keinen entsprechenden Bildpunkt gibt, geht das Verfahren zu Schritt 32,
wo es bestimmt wird, daß der
Rasterbildpunkt einem Teil der Kante entspricht, welches in dem
Vektorbild zu verstecken ist. Ansonsten geht, wenn es einen korrespondierenden Bildpunkt
gibt, das Verfahren zu Schritt 34, wo bestimmt wird, daß der Rasterbildpunkt
einem Teil der Kante entspricht, welches in dem Vektorbild sichtbar sein
sollte. Wenn die Bildpunktgröße in dem
Bitmapbild und in dem Raster differiert, ist bzw. wird Schritt 30 entsprechend
adaptiert.
-
Nach
Schritt 32 oder 34 geht das Verfahren zu Schritt 36,
in welchem ein Test ausgeführt
wird, um den nächsten
Rasterbildpunkt herauszufinden. Wenn es einen gibt, geht das Verfahren
zu 30 für
den nächsten
Bildpunkt; ansonsten wurde der Raster der Kante vollständig abgetastet
und das Verfahren geht zu Schritt 38.
-
In
Schritt 38 ist der Vergleich für die Bildpunkte des Rasters
der gewählten
Kante vorbei. Man kann dann basierend auf den Ergebnissen des Vergleichs
bestimmen, welche Teile der gewählten
Kante in dem Vektorbild sichtbar sein sollten. Eine Lösung dafür ist, entlang
des Rasters Übergänge zu suchen,
d.h. nach Bildpunkten des Rasters, wo eine Änderung in dem Vergleich von
Schritt 30 vorliegt. Die Position dieser Bildpunkte bestimmt
an der Kante die Enden der sichtbaren oder versteckten Teile der
Kante. In dem Beispiel von 2 würde die
Kante 12 der Basis 4 aus Bildpunkten mit darunterliegenden Bitmappixeln
bzw. Bitmapbildpunkten bestehen – Schritte 30 und 34 in 4.
Dies führt
zu dem Schluß,
daß die
Kante 12 vollständig
in dem Vektorbild sichtbar sein sollte. Ausgehend von dem linken Ende
der Kante 10 in 2 sind die Bildpunkte zuerst
sichtbar bis zu dem Bildpunkt entsprechend Punkt 14; an
diesem Zeitpunkt gibt es einen Übergang,
d.h. die nächsten
Bildpunkte sind nicht sichtbar. Es gibt einen zweiten Übergang
an Punkt 16, wo die Bildpunkte neuerlich sichtbar sind
bis zum rechten Ende der Kante 10 in 2.
-
Aus
einer Kenntnis der Übergangsbildpunkte kann
man die entsprechenden Punkte an der Kante durch eine Operation
invers zu derjenigen herausfinden, die den Raster zur Verfügung stellt.
Man kann auch eine Übereinstimmungstabelle
zwischen den Bildpunkten des Rasters und der Kante verwenden. Man
kann somit das (die) sichtbare(n) Teil(e) der Kante basierend auf
den Ergebnissen des Vergleichs in Schritten 28–36 bestimmen.
-
In
Schritt 40 wird überprüft, ob es
irgendeine verbleibende Kante gibt, die zu berücksichtigen ist. Wenn die Antwort
positiv ist, geht das Verfahren zu Schritt 26; ansonsten
wird in Schritt 42 das Vektorbild mit dem (den) sichtbaren
Teil bzw. Teilen der Kante gezeichnet. Man könnte auch das Bild Kante für Kante
zeichnen, d.h. mit Schritt 42 vor Schritt 40 verfahren;
dies vermeidet, daß das
Bild mit der entfernten versteckten Linie gespeichert werden muß.
-
Objekte
mit weniger als einem Bildpunkt können in dem Bild ignoriert
werden. Alternativ oder in Kombination kann man in Schritt 30 oder 32,
wenn kein Bildpunkt gefunden ist bzw. wird, in umgebenden Bildpunkten
suchen. Dies ist insbesondere nützlich,
wenn der OpenGL Standard verwendet wird, da ein Fehler von einem
Bildpunkt in diesem Standard autorisiert ist.
-
Die
Vorteile der Erfindung erscheinen aus der Beschreibung von 4.
Betreffend die Komplexität
wird jede Kante auf einmal gescannt und mit dem Bildmapbild verglichen,
und nicht mit jeder anderen Facette oder Kante. Die Auflösung kann
adaptiert werden; wie dies oben diskutiert ist, kann man die Granularität des Bitmapbilds
zum Bestimmen der maximalen Auflösung
verändern.
Man kann auch eine unter schiedliche Granularität des Rasters verwenden, z.B.
in den Bereichen des Bilds, wo eine hohe Auflösung nicht erforderlich ist.
-
4 ist
lediglich ein Beispiel der Erfindung. Wie dies diskutiert ist, gibt
es kein Erfordernis, mit einer linearen Abtastung von allen Kanten
fortzufahren: die Reihenfolge, in welcher die Kanten bearbeitet
werden, beeinflußt
nicht die resultierende Ansicht; man kann auch einige der Kanten
skippen bzw. überspringen,
wie dies oben beispielhaft gezeigt ist. In gleicher bzw. ähnlicher
Weise ist bzw. wird in den Vergleichsschritten 28–36 eine
Kante von einem Ende zu dem anderen abgetastet; man könnte mit
einem parallelen Vergleich von mehreren Bildpunkten fortfahren;
man könnte
auch zuerst nur einen Sub- bzw. Untersatz von Bildpunkten abtasten,
die über die
Kante verteilt sind, und dann nach Übergängen mit einem feineren Schritt
zu suchen. Die Lösung,
die angenommen ist, hängt
von der erforderlichen Auflösung
ab. Ausgefeilte Lösungen
können
schneller sein. Im Verfahren von 4 testet
der Test in Schritt 30 nur, ob es einen Bildpunkt in dem
Bitmapbild gibt. Dieser Test kann selbst auf einem Schwarz-Weiß-Bitmapbild
ausgeführt
werden.
-
Andere
Ausbildungen der Erfindung werden nun diskutiert. Eine oder mehrere
dieser Ausbildungen können
mit dem Verfahren von 4 kombiniert werden.
-
Man
kann Silhouetten zu Kanten addieren bzw. hinzufügen, wie die Silhouetten 6 und 8 von 1.
Diese sind nicht Kanten oder Linien in der schachbrettartigen Darstellung
des modellierten Objekts, da ihre Position von der gewählten Ansicht
abhängt.
Jedoch können
diese Silhouetten als Kanten zum Suchen der versteckten Teile handgehabt
werden. Somit kann Schritt 20 eines Bereitstellens einer schachbrettartigen
Darstellung des Objekts eine Berechnung von Silhouetten umfassen.
Das Wort "Kanten" in der Beschreibung
der verschiedenen Ausbildungen kann somit nicht nur tatsächliche
Kanten des modellierten Objekts, sondern auch Silhouetten umfassen.
-
In
einer weiteren Ausbildung sind die Kanten signiert; mit anderen
Worten sind Mittel zum Unterscheiden von Kanten in dem Bitmapbild
zur Verfügung
gestellt. Ein Signieren von Kanten macht es zuerst möglich, zwischen überlappenden
Kanten in den Zeichnungen zu unterscheiden; in dem Beispiel von 2 würden sich
die Linien 18 und 10 in einer vorderen Ansicht
des modellierten Objekts überlappen. Ein
Signieren von Kanten macht es möglich,
wenn die Schritte 28–36 für die Linie 18 ablaufen,
zu bestimmen, daß die
Bildpunkte in dem Bitmapbild der Vorderansicht die Linie 18 und
nicht die darunterliegende Linie 10 darstellen. Wenn die
Schritte 28–36 ablaufen,
wird sichergestellt, daß die
Linie vollständig versteckt
ist, selbst obwohl es einige Bildpunkte in dem Bitmapbild der Vorderansicht
gibt, welche mit dem Raster der Linie übereinstimmen. Somit ist bzw. wird
die Linie 18 in dem Vektorbild gezeichnet, jedoch nicht
die Linie 10. Das Vektorbild ist genauer und übereinander
gelagerte Linien sind bzw. werden nicht gezeichnet. Ein weiteres
Beispiel ist der Schnitt zwischen Linien. In 2 schneidet
Linie 10 Linie 6 und 8. Der Schnittpunkt
ist tatsächlich
ein Punkt der Linie 6 – entsprechend
Linie 8 – da
die Linien 6 und 8 vor der Linie 10 liegen.
Ein Signieren der Kanten macht es möglich zu bestimmen, daß der Schnittpunkt
in Linie 6 oder 8, jedoch nicht in Linie 10 gezeichnet
werden sollte.
-
Zusätzlich kann
ein Signieren von Kanten das Verfahren beschleunigen. Wenn Kanten
signiert werden, kann man eine Tabelle von Signaturen bzw. Bezeichnungen
zur Verfügung
stellen, die in dem Bitmapbild vorhanden sind. Wenn eine Kante des modellierten
Objekts betrachtet wird, müssen
Vergleichsschritte nicht ausgeführt
werden, wenn die Signatur der Kante überhaupt nicht in dem Bitmapbild vorhanden
ist. Dies macht es möglich,
ein Abtasten bzw. Scannen von Linien zu vermeiden, welche überhaupt
nicht in dem Bitmapbild erscheinen. In dem Verfahren von 4 könnte man
auch einen Testschritt vor Schritt 26 eines Rasterns der
Kante hinzufügen;
in diesem Schritt wird bestimmt, ob die Signatur der gewählten Kante
insgesamt bzw. überhaupt
in dem Bitmapbild aufscheint. Wenn die Signatur nicht aufscheint,
würde das
Verfahren direkt zu Schritt 36 springen. Ansonsten könnten Schritte 26 und
Folgende ausgeführt
werden, wie dies unter Bezugnahme auf 4 diskutiert
ist.
-
Es
gibt zahlreiche Lösungen
zum Signieren von Kanten. Eine Lösung
besteht im Zuweisen von Farben zu den verschiedenen Kanten. Diese
können Farben
sein, die bereits Kanten in dem modellierten Objekt oder seiner
Darstellung zugeteilt sind. Man kann auch unterschiedliche Farben
den Kanten zuweisen; diese Lösung
ist insbesondere dahingehend vorteilhaft, daß sie es möglich macht, unterschiedliche
Farben allen Kanten in der schachbrettartigen Darstellung des modellierten
Objekts zuzuweisen – unter
der Voraussetzung, daß die
Anzahl von Kanten niedriger als die Anzahl von in der Graphikkarte
verfügbaren
Farben ist. Die Anzahl von Farben ist häufig höher als zwei Millionen, so
daß Farben
eine effiziente Signatur zur Verfügung stellen. Diese Signatur
hat auch den Vorteil, daß Farben
in den meisten Design systemen und Graphikkarten gehandhabt werden,
so daß es
kein Erfordernis gibt, zusätzliche
Werkzeuge für
eine Signatur zur Verfügung
zu stellen. Man kann in diesem Fall Funktionen der Graphikkarte,
wie ein Anti-Aliasing ausschalten, was zugewiesene bzw. betroffene
Farben verändern
könnte.
-
Eine
weitere Lösung
besteht in der Verwendung von Indizes, die in einigen Graphikkarten
zur Verfügung
gestellt sind. Diese Karten erlauben es Objekten, daß sie indexiert
werden. Der Index ist somit eine Lösung zum Signieren bzw. Bezeichnen
der Kanten.
-
Noch
eine weitere Lösung
besteht in der Verwendung von Tiefeninformation. Wie dies oben diskutiert
ist, wird eine Tiefe in einigen Graphikkarten als ein Nebenprodukt
des Verfahrens zur Verfügung
gestellt. Man kann zum Zeitpunkt, wo ein Raster für eine gegebene
Kante zur Verfügung
gestellt wird, die Tiefe der verschiedenen Bildpunkte in dem Raster
berechnen. Ein Vergleich der Tiefe macht es möglich, zwischen übereinander
gelagerten Kanten zu unterscheiden. In dem Beispiel einer Vorderansicht
des Objekts von 1 sind die Linien 18 und 10 übereinander
gelagert, jedoch ist die Linie 18 vor Linie 10. Somit
zeigt, wenn ein Bildpunkt des Rasters von Linie 10 berücksichtigt
wird, der Vergleichsschritt 30, daß es einen entsprechenden Bildpunkt
in dem Bitmapbild gibt. Jedoch ist dieser Bildpunkt des Bitmapbilds (welches
tatsächlich
ein Teil der Linie 18 zeigt) nicht an derselben Tiefe wie
der Bildpunkt des Rasters von Linie 10. Dieses Beispiel
einer Verwendung einer Tiefe als einer Signatur zeigt, daß selbst,
wenn die Signatur für
jede Kante nicht einheitlich ist, ein Signieren von Kanten vorteilhaft
sein kann.
-
In
den oben zur Verfügung
gestellten Beispielen ist die Signatur von jeder Kante oder Linie
ein einziger bzw. einzigartiger Parameter. Eine Signatur könnte aus
einem Satz von Parametern gebildet sein. Beispielsweise könnte man
als eine Signatur ein Paar (c, d) verwenden, das aus der Farbe c
und der Tiefe d ausgebildet ist. Wenn die Farbe und die Tiefe nicht
einzigartig für
jede Kante sind, ist es für
die zusammengesetzte Signatur (c, d) wahrscheinlicher, sich von
einer Kante zur nächsten
zu unterscheiden. Zum Unterscheiden von Kanten kann man auch eine Positionsinformation
verwenden. Die Ansicht ist bzw. wird in verschiedene Teile unterteilt – z.B. vier
identische Teile. Dies stellt einen Parameter zur Verfügung, der
für die
Position der Kanten repräsentativ ist,
der vier Werte in dem Beispiel von vier Teilen aufweist. Dieser
Parameter kann auch in dem Verfahren von 4 verwendet
werden, um Kanten zu identifizieren, oder sogar zwischen Kanten
zu unterscheiden.
-
Somit
kann ein Signieren von Kanten das Verfahren beschleunigen und/oder
die Genauigkeit des resultierenden Vektorbilds erhöhen, z.B.
wo Linien oder Kanten in der Ansicht übereinander gelagert sind.
-
Das
Verfahren von 4 kann genauer betreffend bzw.
im Hinblick auf Schnitte von Linien gemacht werden. Zuerst kann,
wie dies oben unter Bezugnahme auf Linien 6, 8 und 10 diskutiert
ist, ein Signieren von Kanten es möglich machen zu bestimmen,
zu welcher Kante ein Schnittpunkt gehört. Zusätzlich kann man, wenn Facetten
einer schachbrettartigen Darstellung signiert werden, die Kante
oder die Facette bestimmen, welche eine gegebene Linie versteckt.
Beispielsweise ist in dem Beispiel von 2 die Linie 10 teilweise durch
die Oberfläche
des Zylinders 4 versteckt. Wenn Facetten dieser Oberfläche signiert
sind, kann man die erste Facette in der schachbrettartigen Darstellung
finden, welche die Linie 10 versteckt, wenn entlang der
Linie 10 in den Vergleichsschritten 30–36 vorgegangen
wird. Es wird beispielsweise angenommen, daß die Facetten und Kanten farbsigniert
sind. Wenn entlang der Kante 10 von dem linken Ende dieser
Kante in 2 vorgegangen wird, findet man
zuerst in dem Bitmapbild Bildpunkte, die die Farbe der Kante 10 aufweisen. Der
erste Bildpunkt, für
welchen die Farbe nicht die Farbe der Kante 10 ist, stellt
eine Signatur der Silhouette der Zylinderfläche dar, welche die Linie 10 versteckt.
Sobald diese Silhouette identifiziert wird, kann das Ende des sichtbaren
Teils der Kante 10 durch ein Berechnen des Schnitts der
Linie 10 mit der identifizierten Silhouette bestimmt werden.
Der berechnete Schnitt ist selbstverständlich der Schnitt der Projektionen
auf die Figur. Es wird verstanden werden, daß das Ende eines sichtbaren
Teils einer Linie somit mit einer Genauigkeit bestimmt werden kann,
welche nicht durch die Bildpunktgröße begrenzt ist: das Bitmapbild
wird lediglich für
ein Bestimmen verwendet, welche Kante oder Facette der schachbrettartigen
Darstellung ein gegebenes Teil der gewählten Kante versteckt. Der
Schnitt mit dieser versteckenden Facette wird für den Zweck eines Berechnens des
Schnitts bzw. Schnittpunkts verwendet. Dies ist in einem vergrößerten Maßstab in 5 dargestellt. Die
Figur zeigt schematisch die Kante 10 und Fläche bzw.
Seite 50 des Zylinders 4. Die Seite 50 ist
aus verschiedenen Facetten gebildet, welche in verschiedenen Farben
gezeichnet sind. Die Facette 52 ist die erste Facette,
die die Linie 10 versteckt; in dem Verfahren von 4 weist
unter der Annahme, daß die Linie 10 von
links nach rechts gescannt wird, das erste Mal, wo das Verfahren
in Schritt 32 passiert, der versteckende Bildpunkt die
Farbe der Facette 52 auf.
-
Man
kann auch das Ende von sichtbaren Linien oder Kanten mit einer höheren Genauigkeit
bestimmen; zuerst wird die versteckende Facette bestimmt, wie dies
unter Bezugnahme auf 5 erklärt ist. Dann wird die Seite
bzw. Fläche
herausgefunden, die sich auf diese Facette bezieht. Man kann dann den
Schnitt der Kante mit dieser Seite berechnen. In dem Beispiel von 2 und 5 versteckt
die Facette 52 die Linie 10. Die Facette 52 ist
ein Teil der Seite des Zylinders 4; dies bedeutet, daß der letzte sichtbare
Punkt auf der Kante 10 der Schnitt dieser Kante mit der
Silhouette des Zylinders ist. Die Genauigkeit, mit welcher das Ende
des sichtbaren Teils bestimmt ist bzw. wird, hängt nicht von der schachbrettartigen
Darstellung ab. In dem Beispiel von 2 und 5 ist
die Linie 10 eine gerade Linie, so daß es keinerlei Unterschied
zwischen Linie 10 und der entsprechenden Kante geben kann.
In dem Fall einer komplexen Linie L, die durch eine Serie von Kanten
El-Em angenähert ist,
kann man bestimmen, daß Kante
Ek der Linie L durch die Facette Fj versteckt ist, und den Schnittpunkt der
Linie L mit der Facette Fj oder den Schnitt
der Linie L mit einer Seite S berechnen, welche durch die Facette
Fj repräsentiert ist.
-
In
diesen Ausbildungen der Erfindung hängt die Genauigkeit, mit welcher
die Enden von sichtbaren Teilen von Linien bestimmt werden, nicht
von der Bildpunktauflösung
ab, selbst obwohl das Vorhandensein eines Schnitts von einer Bildpunktauflösung abhängig sein
kann; wenn die Schnitte unter Verwendung von Oberflächen berechnet
werden, hängt
die Genauigkeit nicht von der schachbrettartigen Darstellung des
modellierten Objekts ab. Somit kann man ein Vektorbild so genau
wie erforderlich zur Verfügung
stellen. Es ist wichtig festzuhalten, daß die Genauigkeit des Vektorbilds
mit versteckten Linien über
das Bild variieren kann. Man kann die Genauigkeit entsprechend den
Bereichen bzw. Flächen
des Bilds variieren durch
- – Auswählen der Bildpunktgröße in dem
Bitmapbild;
- – Auswählen der
Bildpunktgröße in dem
Raster einer Linie;
- – Berechnen
des Schnitts einer Kante oder einer Linie mit einer Facette, oder
- – Berechnen
des Schnitts einer Kante oder einer Linie mit der darunterliegenden
Seite bzw. Fläche.
-
Alle
Verfahren können
in demselben Vektorbild aufeinanderfolgend oder für verschiedene
Bereiche des Bilds verwendet werden. Wenn die Verfahren aufeinanderfolgend
verwendet werden, kann das Verfahren schnell ein grobes Vektorbild
zur Verfügung
stellen und dann die Genauigkeit des Bilds verbessern. Man kann
beispielsweise ein Teil des Bilds zoomen und eine genauere Berechnung
des Vektorbilds in dem gezoomten Teil des Bilds verwenden. Die Verwendung
einer Lösung,
die eine gegebene Genauigkeit sicherstellt, kann von dem Zoomfaktor abhängen; somit
könnte
man ein grobes Vektorbild für
die ursprüngliche
Schirmanzeige zur Verfügung stellen,
und ein Bild mit einer besseren Genauigkeit für die Teile des Bilds zur Verfügung stellen,
die durch den Benutzer gezoomt sind. Wenn die Verfahren in demselben
Bild verwendet werden, kann man die Genauigkeit über das Bild verändern. Es
besteht kein Erfordernis, das vollständige Bild neu zu berechnen, um
die Genauigkeit in einem gewählten
Bereich zu verbessern. Man kann das Bild in verschiedene Teile trennen
und die Auflösung
oder Genauigkeit in den verschiedenen Teilen verändern. Dies ist insbeson dere
von Interesse, wenn der Bereich von Interesse für den Endbenutzer vorbestimmt
ist.
-
Die
Erfindung kann unter Verwendung von Programmierwerkzeugen und Lösungen implementiert
werden, die dem Fachmann in der Technik bekannt sind. Man kann beispielsweise
C++ als eine Programmiersprache in einer CATIA V5 Architektur verwenden;
jede Graphikkarte, die auf dem Markt verfügbar ist, wie jene, die unter
den Handelsmarken ATI oder NVIDIA verkauft werden. Ein Programm, das
die Erfindung implementiert, empfängt das Bitmapbild – das beispielsweise
aus einer Graphikkarte erhalten ist – und die Darstellung des modellierten
Objekts. Basierend auf dem Bitmapbild, tastet das Programm die Linien
des modellierten Objekts ab, wie dies oben unter Bezugnahme auf 4 diskutiert
ist.
-
6–12 sind
Ansichten von modellierten Objekten, die mit Lösungen gemäß dem Stand der Technik und
mit dem Verfahren gemäß der Erfindung
erhalten sind. 6 ist ein Vektorbild eines komplexen
entworfenen bzw. konstruierten Objekts mit entfernten versteckten
Linien, das mit der Lösung gemäß dem Stand
der Technik erhalten ist, die in CATIA implementiert ist. Das Vektorbild
von 6 wird in 27 s erhalten, wenn das CRTIA V5 Designsystem unter
dem Microsoft Windows 2000 (Marke) Betriebssystem auf einem Computer
mit einem Intel Pentium IV (Marke) Prozessor, der bei 2,8 GHz läuft, einem Direktzugriffsspeicher
mit 1Go und einer Graphikkarte betrieben wird, die unter der Marke
NVIDIA Quadro2 verkauft wird. Diese Konfiguration ist ein Beispiel
und das Verfahren der Erfindung kann auf jeder anderen Konfiguration
erzielt werden.
-
7 ist
ein Vektorbild, das gemäß der Erfindung
erhalten ist; dieses Bild wird in 11 s erhalten. Die Qualität des Bilds
ist nahezu gleich der Qualität des
Bilds gemäß dem Stand
der Technik.
-
8 und 9 sind
vergrößerte Ansichten desselben
modellierten Objekts. Das Bild von 8 ist ein
Bild niedriger Qualität,
das in 3s erhalten ist bzw. wird; das Bild von 9 ist
eine vergrößerte Ansicht
von 7, das durch ein Zoomen an dieser 7 für ein besseres
Verständnis
erhalten ist. 10–12 stellen
beispielhaft die Qualitätsunterschiede
zwischen den verschiedenen Bildern eines Objekts dar. 10 ist
ein Rasterbild des Objekts. 11 ist
ein Bild, das unter Verwendung des Verfahrens von 4 erhalten
ist. 12 ist dank einer Lösung gemäß dem Stand der Technik erhalten. Der
Vergleich zwischen diesen Figuren zeigt, daß es die Erfindung möglich macht,
eine Qualität
eines Bilds ähnlich
zu jener gemäß dem Stand
der Technik zu erhalten, jedoch schneller und mit einem geringeren
Erfordernis an Ressourcen. Die Erfindung ist nicht auf die Beispiele
beschränkt,
die in der detaillierten Beschreibung zur Verfügung gestellt sind. In den
Beispielen wird eine schachbrettartige Darstellung des Objekts verwendet.
Dies ist vorteilhaft dahingehend, daß die schachbrettartige Darstellung
unmittelbar einer Graphikkarte eingegeben werden kann. Man kann
jegliche andere Arten einer Darstellung des modellierten Objekts
verwenden, wie NURBS, Unterteilungsoberflächen oder dgl. Diese Darstellungen
umfassen bzw. enthalten auch Linien in der weiten Bedeutung dieses
Worts. Die verschiedenen Ausbildungen der Erfindung können in
Kombination, selbst in demselben Bild verwendet werden.