DE60305027T2 - Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien - Google Patents

Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien Download PDF

Info

Publication number
DE60305027T2
DE60305027T2 DE60305027T DE60305027T DE60305027T2 DE 60305027 T2 DE60305027 T2 DE 60305027T2 DE 60305027 T DE60305027 T DE 60305027T DE 60305027 T DE60305027 T DE 60305027T DE 60305027 T2 DE60305027 T2 DE 60305027T2
Authority
DE
Germany
Prior art keywords
line
bitmap image
image
pixels
edges
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 - Lifetime
Application number
DE60305027T
Other languages
English (en)
Other versions
DE60305027D1 (de
Inventor
Andre Blot
Alain Deleglise
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of DE60305027D1 publication Critical patent/DE60305027D1/de
Application granted granted Critical
Publication of DE60305027T2 publication Critical patent/DE60305027T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Description

  • 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;
  • 612 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 2836 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 2836 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 2836 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 2836 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 2836 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 3036 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.
  • 612 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. 1012 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.

Claims (14)

  1. Computer-implementiertes Verfahren zum Generieren bzw. Erzeugen eines Vektorbilds einer Ansicht eines modellierten Gegenstands bzw. Objekts mit entfernten versteckten Linien, umfassend die Schritte: – Bereitstellen (22) eines Bitmapbilds der Ansicht des modellierten Gegenstands bzw. Objekts mit entfernten versteckten Linien, wobei der Schritt (22) eines Bereitstellens eines Bitmapbilds ein Bezeichnen bzw. Signieren von Bildpunkten bzw. Pixeln in dem Bitmapbild umfaßt; – für eine Linie des modellierten Gegenstands bzw. Objekts, wobei die Linie eine gegebene Signatur aufweist: – Suchen, ob das Bitmapbild Bildpunkte aufweist, die die gegebene Signatur aufweisen, und – wenn das Bitmapbild nicht Bildpunkte umfaßt, die die gegebene Signatur aufweisen, Bestimmen daß die Linie nicht in dem Vektorbild sichtbar ist, – wenn das Bitmapbild Bildpunkte umfaßt, die die gegebene Signatur umfassen, – Bereitstellen (26) eines Rasters der Linie in der Ansicht, – Vergleichen (3036) von Bildpunkten des Rasters mit Bildpunkten des Bitmapbilds und entsprechend den Ergebnissen des Vergleichs, – Bestimmen (38) eines sichtbaren Teils der Linie in dem Vektorbild.
  2. Verfahren nach Anspruch 1, wobei der Schritt eines Bereitstellens eines Bitmapbilds ein Berechnen eines Bitmapbilds in einer Hardwarelogik umfaßt.
  3. Verfahren nach Anspruch 2, wobei der Schritt eines Bereitstellens eines Bitmapbilds ein Berechnen eines Bitmapbilds in einer Graphikkarte umfaßt.
  4. Verfahren nach Anspruch 1, 2 oder 3, wobei der modellierte Gegenstand in einer schachbrettartigen Darstellung mit Kanten und Seiten zur Verfügung gestellt wird, und wobei die Linien Kanten bzw. Ränder der schachbrettartigen bzw. mosaikartigen Darstellung umfassen.
  5. Verfahren nach Anspruch 1 bis 4, wobei die Linien weiters eine Silhouette umfassen.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei unterschiedliche Linien mit unterschiedlichen Signaturen versehen werden.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die Linien des modellierten Gegenstands farbig bezeichnet werden.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der modellierte Gegenstand in einer schachbrettartigen Darstellung mit Kanten und Facetten zur Verfügung gestellt wird und wobei der Schritt eines Bestimmens umfaßt: – Finden der Facette, die eine Linie versteckt, und – Berechnen des Schnitts der Facette mit der Linie.
  9. Verfahren nach einem der Ansprüche 1 bis 7, wobei der modellierte Gegenstand in einer schachbrettartigen Darstellung mit Kanten und Facetten zur Verfügung gestellt wird und wobei der Schritt eines Bestimmens umfaßt: – Finden einer Facette, die eine Linie versteckt, und – Berechnen des Schnitts der Linie mit einer Seite, die sich auf die Facette bezieht.
  10. Programm zum Generieren bzw. Erzeugen eines Vektorbilds einer Ansicht eines modellierten Gegenstands bzw. Objekts mit entfernten versteckten Linien, umfassend: – eine Routine zum Empfangen eines Bitmapbilds der Ansicht des modellierten Gegenstands bzw. Objekts mit entfernten versteckten Linien, wobei das Programm adaptiert ist, um einen modellierten Gegenstand bzw. ein modelliertes Objekt mit bezeichneten bzw. signierten Linien und das Bitmapbild mit bezeichneten bzw. signierten Bildpunkten zu empfangen; – eine Routine zum Suchen, ob das Bitmapbild Bildpunkte bzw. Pixel umfaßt, die die Signatur einer Linie des modellierten Gegenstands bzw. Objekts aufweisen, – eine Routine zum Bestimmen, daß die Linie nicht in dem Vektorbild sichtbar ist, wenn das Bitmapbild keine Bildpunkte umfaßt, die die Signatur der Linie des modellierten Gegenstands aufweisen, und wenn das Bitmapbild Bildpunkte umfaßt, die die Signatur der Linie des modellierten Gegenstands bzw. Objekts aufweisen, – eine Routine zum Bereitstellen (26) eines Rasters der Linie des modellierten Gegenstands bzw. Objekts in der Ansicht; – eine Routine zum Vergleichen (3036) von Bildpunkten des Rasters der Linie mit Bildpunkten des Bitmapbilds und – eine Routine zum Bestimmen (38) gemäß den Ergebnissen, die durch die vergleichende Routine zur Verfügung gestellt sind, eines sichtbaren Teils der Linie in dem Vektorbild.
  11. Programm nach Anspruch 10, wobei das Programm adaptiert ist, um eine schachbrettartige Darstellung des modellierten Gegenstands mit Kanten bzw. Rändern und Facetten zu empfangen.
  12. Programm nach Anspruch 10 oder 11, wobei das Programm adaptiert ist, um einen modellierten Gegenstand mit mit Farbe bzw. farbbezeichneten Linien und ein Bitmapbild mit farbbezeichneten Bildpunkten zu empfangen.
  13. Programm nach einem der Ansprüche 10 bis 12, wobei das Programm adaptiert ist, um einen modellierten Gegenstand in einer schachbrettartigen Darstellung mit Kanten und Facetten zu empfangen und wobei die Bestimmungsroutine adaptiert ist, um: – eine Facette zu finden, die eine Linie versteckt, und – den Schnitt der Facette mit der Linie zu berechnen.
  14. Programm nach einem der Ansprüche 10 bis 12, wobei das Programm adaptiert ist, um einen modellierten Gegenstand in einer schachbrettartigen Darstellung mit Kanten und Facetten zu empfangen, und wobei die Bestimmungsroutine adaptiert ist, um – eine Facette zu finden, die eine Linie versteckt, und – den Schnitt der Linie mit einer Seite zu berechnen, die durch die Facette dargestellt bzw. repräsentiert ist.
DE60305027T 2003-07-28 2003-07-28 Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien Expired - Lifetime DE60305027T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP03291861A EP1503346B1 (de) 2003-07-28 2003-07-28 Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien

Publications (2)

Publication Number Publication Date
DE60305027D1 DE60305027D1 (de) 2006-06-08
DE60305027T2 true DE60305027T2 (de) 2006-12-14

Family

ID=33522459

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60305027T Expired - Lifetime DE60305027T2 (de) 2003-07-28 2003-07-28 Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien

Country Status (7)

Country Link
US (1) US7289117B2 (de)
EP (1) EP1503346B1 (de)
JP (1) JP4425734B2 (de)
KR (1) KR100737221B1 (de)
AT (1) ATE325399T1 (de)
CA (1) CA2475345C (de)
DE (1) DE60305027T2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2655952A1 (en) * 2006-07-07 2008-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Device and method for simplifying vector graphics
US8421800B2 (en) * 2009-05-29 2013-04-16 Siemens Product Lifecycle Management Software Inc. System and method for selectable display in object models
JP5620741B2 (ja) * 2010-08-06 2014-11-05 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
US9524572B2 (en) * 2010-11-23 2016-12-20 Microsoft Technology Licensing, Llc Parallel processing of pixel data
US9449118B2 (en) * 2011-09-29 2016-09-20 Siemens Product Lifecycle Management Software Inc. Hybrid hidden-line processor and method
TW201325935A (zh) * 2011-12-29 2013-07-01 Printing Plant Ministry Of Finance 調變網點結構組合、應用該組合製作具有隱藏圖文印刷品的影像檔的方法及由其所製得的印刷品
US9846958B1 (en) * 2012-10-04 2017-12-19 Aftershock Services, Inc. System and method for display object bitmap caching
JP2022169276A (ja) 2021-04-27 2022-11-09 横河電機株式会社 冗長化方法、冗長化プログラムおよび情報処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924414A (en) * 1986-09-24 1990-05-08 Daikin Industries, Ltd. Apparatus and method for obtaining priority numbers for drawing figures forming a display figure
US5265214A (en) * 1987-08-28 1993-11-23 Daikin Industries, Ltd. Filling processing apparatus and method
US4918626A (en) * 1987-12-09 1990-04-17 Evans & Sutherland Computer Corp. Computer graphics priority system with antialiasing
US5220646A (en) * 1990-04-30 1993-06-15 International Business Machines Corporation Single pass hidden line removal using z-buffers
US5359704A (en) * 1991-10-30 1994-10-25 International Business Machines Corporation Method for selecting silhouette and visible edges in wire frame images in a computer graphics display system
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US6031544A (en) * 1997-02-28 2000-02-29 Adobe Systems Incorporated Vector map planarization and trapping
US6801215B1 (en) * 2001-11-29 2004-10-05 At&T Corp. Hardware-assisted visibility-ordering algorithm
AUPS028702A0 (en) * 2002-02-01 2002-02-28 Canon Kabushiki Kaisha Efficient display update from changing object graphics

Also Published As

Publication number Publication date
JP4425734B2 (ja) 2010-03-03
CA2475345C (en) 2008-12-09
US20050041022A1 (en) 2005-02-24
KR20050013511A (ko) 2005-02-04
EP1503346B1 (de) 2006-05-03
DE60305027D1 (de) 2006-06-08
US7289117B2 (en) 2007-10-30
KR100737221B1 (ko) 2007-07-09
ATE325399T1 (de) 2006-06-15
EP1503346A1 (de) 2005-02-02
CA2475345A1 (en) 2005-01-28
JP2005050336A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE69924700T2 (de) Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
DE60031664T2 (de) Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE102017009276A1 (de) Erzeugen eines dreidimensionalen modells aus einem gescannten gegenstand
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
US20070253640A1 (en) Image manipulation method and apparatus
DE102019001695A1 (de) Generieren von verbesserten Digitalbildern durch selektives Transformieren von Rasterbildern in Vektorzeichnungssegmente
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE60009810T2 (de) Antialiasing mit Abtastzeilen
DE102013114176A1 (de) Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik
DE19619288A1 (de) System und Verfahren zur Dreieck-Rasterung mit in zwei Dimensionen verschachtelten Rahmenpuffern
Brosz et al. Terrain synthesis by-example
DE69921696T2 (de) Verfahren zur perspektivischen darstellung, ausgehend von einem voxelraum
DE19807013A1 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE19708679A1 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE19817584A1 (de) Verfahren und System zur Objektsuche
DE102020001437A1 (de) Verwendung kontextsensitiver Sensoren und multidimensionaler Gesteneingaben zum effizienten Generieren von nachbearbeiteten Digitalbildern
DE60305027T2 (de) Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien
DE112011105499T5 (de) Verfahren und System zum Bestimmen von Defekten einer Oberfläche eines Modells eines Objekts

Legal Events

Date Code Title Description
8364 No opposition during term of opposition