-
Die
vorliegende Erfindung betrifft in allgemeiner Weise die Ausgabe
von Informationsdaten und insbesondere die Ausgabe von Daten, die
mit geometrischen Entitäten
in Zusammenhang stehen, von einem Datenverarbeitungsprogramm von
der Art einer Software zum computerunterstützten Entwurf (CAD bzw. CAO)
oder eines Videospiels.
-
Die
Technik und die Systeme zur Modellierung und/oder Manipulation von
geometrischen Entitäten,
wie CAD und die Videospiele, sind gegenwärtig in allen Industriebereichen
sehr verbreitet, von der Idee an, die Produkte, wie Automobilfahrzeuge
oder Luftschiffe, durch den Computer zu unterstützen, bis hin zu Bewegungsspielen
in virtueller 3D-Qualität, beim
Durchlauf von Simulationsprogrammen, wie Flugsimulatoren.
-
Obwohl
im Einzelnen die Technik der CAD verhältnismäßig jung, weniger als zwanzig
Jahre alt, ist, hat die Notwendigkeit einer ab den älteren CAD-Systemen
ansteigenden Kompabilität
die Erhaltung von historischen Datenstrukturen verbessert, wobei
die durch die modernen Datenverarbeitungssysteme dargebotenen Möglichkeiten
trotz der schnellen Entwicklung der Datentechnologie nur sehr beschränkt ausgenutzt
wurden.
-
Andererseits
ist, ob auf dem Gebiet der CAD oder dem der Videospiele, das Format
dieser angewandten Datenstrukturen universell geeignet, das soll
heißen,
dass es für
die betroffene Software oder mindestens für den betroffenen Softwareherausgeber
geeignet ist. Aber diese Grafiksoftwares stellen mindestens auf
dem Gebiet von CAD im Allgemeinen Wirkungsmöglichkeiten zur Einführung verschiedener
Formate für
Daten dar, die mit geometrischen Entitäten verbunden sind.
-
Im
Gegensatz dazu sind die Herausgeber dieser Softwares, welche auch
immer, aus offensichtlichen Gründen
der Erhaltung des Kundenkreises wenig geneigt, die Spezifikationen
der von ihnen verwendeten Datenformate zu veröffentlichen, und sie sind in
derselben Gedankenfolge im Allgemeinen ziemlich zurückhaltend,
wenn sie Anwendungsmittel vorschlagen sollen, die die Ausgabe der
Gesamtdaten gemäß ihren
Softwares gegenüber
einer Konkurrenzsoftware erlauben.
-
Diese
Tatsache hat zur Folge, dass es sehr schwierig ist, die durch diese
Softwares benutzten Daten von einem Datensystem zur Modellierung und/oder
Manipulation von geometrischen Daten zu einem ähnliches Datensystem in vollständiger Weise zu übertragen.
Dennoch ergibt sich diese Übertragung
häufig
als nötig,
beispielsweise, um Daten zwischen verschiedenartigen CAD-Systemen
zu übertragen,
solche, wie sie bei verschiedenen Unterlieferanten eines Ordnungsgebers
zutreffen, gesehen vom Innern des gleichen Unternehmens, wie diejenigen,
die insbesondere aus allgemein historischen Gründen in großen Unternehmen auftreten,
die seit langem CAD verwenden.
-
Ebenso
kann man voraussagen, dass die Entwicklung der Technik von Videospielen
mit der Zeit Personen oder Objekte in ein Viedeospiel einführen wird,
die dann erneut das Problem der Ausgabe dieses Entitätstyps gemäß einem
anderen Videospiel hervorruft.
-
Diese
Notwendigkeit der Datenübertragung zwischen
verschiedenartigen Systemen zur Modellierung und und/oder Manipulation
von mit geometrischen Entitäten
verbundenen Daten hat erhebliche Entwicklungskosten für die Anwendungsmittel
zur Umwandlung dieser Daten zur Folge, und zwar wegen des Fehlens
von genauen Spezifikationen, die das Format der Basen der betroffenen
Daten betreffen, und unabhängig
davon, ob diese Anwendungsmittel während Verbesserungen oder Änderungen ganz
oder teilweise wieder geschrieben werden müssen, die durch die Struktur
der Basen der Daten der betroffenen Systeme hervorgerufen werden.
Andererseits ist diese Umwandlung im Allgemeinen unvollständig, und
zwar wegen des Fehlens von genauen Spezifikationen, die das Format
der umzuwandelnden Daten betreffen.
-
Außerdem besteht
in den CAD-Systeme verwendenden Unternehmen Bedarf an einer Struktur und
einem Format von offenen, bekannten und gut definierten Daten, zugleich
als Mittel zum Austausch zwischen verschiedenen CAD-Systemen, doch außerdem Bedarf
an der Sicherung einer minimale Unabhängigkeit gegenüber den
Herausgebern der Softwares der von diesen benutzten CAD, und zwar
in der Weise, dass die Wiederaufnahme von CAD-Daten einer Software
in einer anderen unter der Annahme einer Aktivitätseinstellung des Herausgebers
der verwendeten CAD-Software gestattet wird.
-
Aus
dem Vorstehenden geht hervor, dass Bedarf an einem Verfahren und
einem System besteht, die die Ausgabe von mit geometrischen Entitäten verbundenen
Daten gemäß einer
beliebigen Software zur Modellierung und/oder Manipulation von mit geometrischen
Entitäten
verbundenen Daten betriebsgerecht und zuverlässig gestatten, ohne irgendeine
Kenntnis der Strukturen der durch diese Software verwendeten Daten,
ohne irgendeine Änderung
dieser Software, welcher Art diese auch immer ist, und ohne Entwicklung
einer besonderen Schnittstelle für
die betroffene Software.
-
Bei
der bekannten Technik gibt es Anwendungsmittel, beispielsweise gLTrace
oder glAnalysePro, die die Aufrufe von Funktionen oder einfachen, von
einer grafischen Anwendung ausgeführten Grafiken unterbrechen
können.
Dennoch haben diese Anwendungsmittel nicht die Funktion, die betroffene grafische
Anwendung von Fehlern zu befreien und in irgendeiner Weise die Ausgabe
von mit geometrischen Entitäten
verbundenen Daten gegenüber
anderen Systemen der gleichen Art zu erlauben.
-
Die
Aufgabe der vorliegenden Erfindung besteht daher darin, ein Verfahren
zur Ausgabe von mit geometrischen Entitäten verbundenen Daten zu schaffen,
die ein Datenverarbeitungssystem zur Modellierung und/oder Manipulation
von geometrischen Entitäten
verwenden, wobei dieses Datenverarbeitungssystem zur Modellierung
und/oder Manipulation von geometrischen Entitäten mindestens eine Datenprogramme
ausführende
Zentralverarbeitungseinheit, einen Speicher, der diese Datenprogramme
und die mit den geometrischen Entitäten verbundenen Daten während der
Dauer der Ausführung
dieser Datenprogramme speichern kann, und mindestens eine Speichereinheit
aufweist, die mit geometrischen Entitäten verbundene Daten in permanenter
Weise speichern kann, wobei dieses Datensystem ferner mindestens
ein Programm zur Modellierung und/oder Manipulation von geometrischen
Entitäten
und mindestens ein Programm zur Anzeige von mit geometrischen Entitäten verbundenen
Daten aufweist, wobei dieses mindestens eine Programm zur Modellierung
und/oder Manipulation die mit den geometrischen Entitäten verbundenen
Daten zum Anzeigen vom genannten mindestens einen Programm zur Anzeige
durch Aufruf von Anzeigefunktionen überträgt, die in dem genannten mindestens
einen Anzeigeprogramm vorhanden sind, wobei die genannten, durch das
genannte Anzeigeprogramm anzuzeigenden Daten durch das mindestens
eine Programm zur Modellierung und/oder Manipulation zum genannten,
mindestens einen Anzeigeprogramm in der Form von Parametern zum
Aufruf der genannten Anzeigefunktionen übertragen werden, die durch
das genannte, mindestens eine Programm zur Modellierung und/oder
Manipulation von geometrischen Entitäten aufgerufen werden, und
wobei die genannten Anzeigefunktionen die Anzeige einer bestimmten
Anzahl von mit geometrischen Entitäten verbundenen Daten erlauben.
Die Erfindung ist dadurch gekennzeichnet, dass ein Programm zur
Ausgabe von mit geometrischen Entitäten verbundenen Daten an die
Stelle von mindestens einem der genannten mindestens einen Anzeigeprogrammen
gesetzt ist, wobei das genannte Ausgabeprogramm dieselben Funktionen
zur Anzeige von mit geometrischen Entitäten verbundenen Daten aufweist
wie das genannte, mindestens eine Anzeigeprogramm, wobei die genannten
Funktionen zur Anzeige von mit geometrischen Entitäten verbundenen
Daten des genannten Ausgabeprogramms die gleichen Parameter aufweisen
wie die entsprechenden Funktionen des genannten mindestens einen Anzeigeprogramms,
wobei das mindestens eine Programm zur Modellierung und/oder Manipulation
von geometrischen Entitäten
anstatt entsprechender Funktionen des genannten, mindestens einen
Anzeigeprogramms die Funktionen des genannten Ausgabeprogramms in
transparenter Art und Weise aufruft.
-
Bei
dem Verfahren gemäß der Erfindung kann
mindestens eines des genannten mindestens einen Programms zur Modellierung
und/oder Manipulation beispielsweise ein Programm vom Typ computerunterstützter Entwurf
oder CAD oder auch ein Programm vom Typ Videospiel sein.
-
Außerdem kann
bei einem Aufruf des genannten, mindestens einen Programms zur Modellierung
und/oder Manipulation von einer der genannten Anzeigefunktionen
des genannten Ausgabeprogramms das genannte Ausgabeprogramm in einem geeigneten
Format in die genannte, mindestens eine Speichereinheit Daten speichern,
die aus einer durch das genannte Ausgabeprogramm durchgeführten Verarbeitung
von Aufrufen des mindestens einen Programms zur Modellierung und/oder
Manipulation der genannten Anzeigefunktionen des genannten Ausgabeprogramms
stammen.
-
Weiterhin
kann bei einem Aufruf des genannten, mindestens einen Programms
zur Modellierung und/oder Manipulation von einer der genannten Anzeigefunktionen
des genannten Ausgabeprogramms das genannte Ausgabeprogramm die
Anzeigefunktion des genannten Anzeigeprogramms entsprechend der
genannten Anzeigefunktion aufrufen, die in dem genannten Ausgabeprogramm
mit denselben Aufrufparametern wie diejenigen aufgerufen werden,
die beim Aufruf der genannten Funktion des genannten Ausgabeprogramms
vorhanden sind.
-
In
diesem Fall kann das genannte, aufgerufene Anzeigeprogramm das genannte
Anzeigeprogramm sein, durch das das Ausgabeprogramm ersetzt wurde,
oder im Gegensatz ein Anzeigeprogramm sein, das sich von demjenigen
unterscheidet, durch das das genannte Ausgabeprogramm ersetzt wurde.
-
Ferner
kann das genannte Datenverarbeitungssystem außerdem mindestens eine grafische Anzeigevorrichtung
aufweisen, die mit mindestens einem Auffrischungs- und/oder Anzeigespeicher
ausgerüstet
ist, wobei das genannte, mindestens eine Anzeigeprogramm der genannten,
mindestens einen Anzeigevorrichtung die punktförmige Digitalisierung der Aufrufe
der Anzeigefunktionen befiehlt, die von dem genannten Anzeigeprogramm
empfangen werden, und wobei die genannte Anzeigevorrichtung in dem
genannten Auffrischungs- und/oder Anzeigespeicher die genannten
Punkte speichert, die aus der genannten Digitalisierung der genannten
Aufrufe der Anzeigefunktionen stammen, die von dem genannten, mindestens
einen Anzeigeprogramm empfangen werden.
-
In
diesem Fall kann das genannte Datenverarbeitungssystem außerdem mindestens
einen Grafikbildschirm aufweisen, und in diesem System wird der
genannte Auffrischungs- und/oder
Anzeigespeicher von der mindestens einen Anzeigevorrichtung erneut
ausgelesen, wobei die mindestens eine Anzeigevorrichtung auf dem
mindestens einen Grafikbildschirm die genannten Punkte anzeigt,
die aus dem genannten Auffrischungs- und/oder Anzeigespeicher erneut
ausgelesen werden.
-
Diese
Datenausgabe durch diese Ausgabeprogramme kann nun durch eine besondere
Grafikanweisung in Gang gesetzt werden, die durch das genannte mindestens
eine Programm zur Modellierung und/oder Manipulation des genannten
Ausgabeprogramms übertragen
wird, wobei die genannte mindestens eine besondere Grafikanweisung
die genannte Datenausgabe in Gang setzt, die beispielsweise eine
Anweisung ist, die die Beendigung der genannten Digitalisierung
der genannten Aufrufe der Grafikfunktionen hervorruft, die in den
genannten Punkten in dem genannten Auffrischungs- und/oder Anzeigespeicher
empfangen werden.
-
Gemäß einer
Abwandlung weist die genannte mindestens eine Anzeigevorrichtung
mindestens zwei Auffrischungs- und/oder
Anzeigespeicher auf, wobei die genannte, die genannte Ausgabe hervorrufende
Anweisung dann eine Anweisung sein kann, die die Umlegungvon einem
der genannten mindestens zwei Auffrischungs- und/oder Anzeigespeicher auf
einen anderen der genannten mindestens zwei Auffrischungs- und/oder
Anzeigespeicher hervorruft.
-
Ferner
kann das genannte Ausgabeprogramm bei einem Aufruf einer der genannten
Anzeigefunktionen des genannten Ausgabeprogramms durch das genannte
Programm zur Modellierung und/oder Manipulation Daten in einem geeigneten Format
in den genannten Speicher speichern, die von einer durch das genannte
Ausgabeprogramm durchgeführten
Verarbeitung von Aufrufen der genannten Anzeigefunktionen des genannten
Ausgabeprogramms herrühren.
In diesem Fall kann das genannte Datenverarbeitungssystem außerdem ein
Anwendungsprogramm ausführen,
das die Daten, die durch eine Verarbeitung durch das genannte Ausgabeprogramm
hervorgerufen werden, erneut im genannten Speicher ausgelesen werden.
Weiterhin kann dann das genannte, den genannten Speicher auslesende
Anwendungsprogramm die genannten, erneut aus dem Speicher ausgelesenen
Daten in der genannten mindestens einen Speichereinheit in einem
geeigneten Format speichern, die von einer Verarbeitung durch das
genannte Ausgabeprogramm herrühren.
-
Weiterhin
kann das genannte Anwendungsprogramm außerdem die genannten, erneut
aus dem genannten Speicher ausgelesenen Daten mit Hilfe geeigneter
Aufrufe der Anzeigefunktionen des genannten mindestens einen Anzeigeprogramms
anzeigen.
-
Eines
des genannten mindestens einen Anzeigeprogramms, durch das das genannte
Ausgabeprogramm ersetzt wird, kann beispielsweise der Spezifikation
OpenGL der Firma Silicon Graphics Inc. entsprechen. In diesem Fall
kann die genannte, die genannte Ausgabe hervorrufende mindestens
eine Anweisung die OpenGL-Anweisung „wglSwapBuffers" und/oder die OpenGL-Anweisung „glFlush" sein. Ebenso kann
eines des genannten mindestens einen Anzeigeprogramms, durch das
das Ausgabeprogramm ersetzt wird, auch der Spezifikation DirectX
von Microsoft entsprechen.
-
Üblicherweise
werden bei dem Verfahren gemäß der Erfindung
die genannten, mit geometrischen Entitäten verbundenen Daten geometrische
Daten aufweisen. In diesem Fall können die genannten, geometrischen
Daten vom zweidimensionalen und/oder dreidimensionalen Typ sein.
Ferner können
diese geometrischen Daten dann Punktdaten und/oder Segmentdaten
mit zwei Punkten und/oder Daten aufweisen, die Dreiecke und/oder
Vierecke und/oder Vielecke betreffen.
-
Ebenso
können
die genannten, geometrischen Daten mit geometrischen Entitäten vom
zeilenförmigen
Typ und/oder flächigen
Typ und/oder räumlichen
Typ verbunden sein. Die genannten, mit geometrischen Entitäten verbundenen,
geometrischen Daten können
dann außerdem
geometrische Daten aufweisen, die mit mindestens einem Normalvektor
mit mindestens einer der genannten Entitäten vom zeilenförmigen Typ
und/oder flächigen
Typ und/oder räumlichen
Typ verbunden sind.
-
Ebenso
können
die genannte, mit geometrischen Entitäten verbundenen Daten Farbdaten und/oder
Strukturdaten aufweisen.
-
Die
Erfindung schlägt
auch ein System zur Ausgabe von mit geometrischen Entitäten verbundenen
Daten unter Verwendung eines Datenverarbeitungssystems zur Modellierung
und/oder Manipulation von geometrischen Entitäten vor, wobei das genannte
Datenverarbeitungssystem zur Modellierung und/oder Manipulation
von geometrischen Daten mindestens eine Zentralverarbeitungseinheit,
die Datenverarbeitungsprogramme ausführen kann, einen Speicher,
der die genannten Datenverarbeitungsprogramme und die mit geometrischen
Entitäten
verbundenen Daten während
der Dauer der Ausführung
der genannten Datenverarbeitungsprogramme speichern kann, und mindestens
eine Speichereinheit aufweist, die mit geometrischen Entitäten verbundene
Daten auf dauerhafte Art und Weise speichern kann, wobei das Datenverarbeitungssystem
mindestens ein Programm zur Modellierung und/oder Manipulation von
geometrischen Entitäten
und mindestens ein Programm zur Anzeige von mit geometrischen Entitäten verbundenen
Daten aufweist, wobei das genannte mindestens eine Programm zur
Modellierung und/oder Manipulation die mit geometrischen Entitäten verbundenen
Anzeigedaten unter Aufruf von im genannten mindestens einen Anzeigeprogramm
vorhandenen Anzeigfunktionen zum Anzeigen überträgt, wobei die genannten, durch
das Anzeigeprogramm anzuzeigenden Daten von dem genannten mindestens
einen Programm zur Modellierung und/oder Manipulation an das genannte
mindestens Anzeigeprogramm in der Form von Aufrufparameter der Anzeigefunktionen übertragen
werden, die von dem genannten mindestens einen Programm zur Modellierung
und/oder Manipulation von geometrischen Entitäten aufgerufen werden, und
wobei die Anzeigefunktionen die Anzeige einer bestimmten Menge von
mit geometrischen Entitäten
verbundenen Daten erlauben; dieses System ist dadurch gekennzeichnet,
dass es das Verfahren gemäß einem der
vorstehenden Verfahrenspunkte einsetzt.
-
Im
Folgenden werden nur als Beispiel zwei Ausführungsarten gemäß der Erfindung
anhand der beigefügten
Zeichnungen beschrieben, bei denen zeigen:
-
1 ein
Funktionsschema zur Anzeige eines geometrischen Musters auf dem
Bildschirm eines Computers mit Hilfe einer Standardbibliothek von Anzeigefunktionen,
ohne Verwendung des Ausgabeverfahrens gemäß der Erfindung,
-
2 ein
Funktionsschema zur Anzeige eines geometrischen Musters auf dem
Bildschirm eines Computers, wobei das Ausgabeverfahren von mit geometrischen
Entitäten
verbundenen Daten gemäß der Erfindung
verwendet wird,
-
3 ein
Ablaufdiagramm des Verfahrens zur Ausgabe von Daten eines geometrischen
Musters gemäß der Erfindung,
-
4 ein
detailliertes Ablaufdiagramm des Blocks 40 der 3 in
einer ersten Ausführungsart des
Verfahrens gemäß der Erfindung,
und
-
5 ein
detailliertes Ablaufdiagramm des Blocks 40 der 3 in
einer zweiten Ausführungsart des
Verfahrens gemäß der Erfindung.
-
Das
Verfahren gemäß der Erfindung
wird in einem Datenverarbeitungssystem 1 zur Modellierung und/oder
Manipulation von mit geometrischen Entitäten verbundenen Daten ausgeführt.
-
Dieses
Datenverarbeitungssystem 1 erlaubt mittels eines nicht
dargestellten Anwenders 2 den Betrieb eines Programms 11 zur
Modellierung und/oder Manipulation von mit geometrischen Entitäten verbundenen
Daten, das das Verfahren gemäß der Erfindung
im Datenverarbeitungssystem 1 in Gang oder nicht in Gang
setzt. Das Datenverarbeitungssystem 1 erlaubt außerdem die
Anzeige von Grafiksignalen auf einem Grafikbildschirm 14,
die von einer grafischen Anpassungskarte 13 herrühren, die
durch eine Grafikfunktionsbibliothek 12 gesteuert wird.
-
In
der folgenden Beschreibung kann das Programm 11 zur Modellierung
und/oder Manipulation von mit geometrischen Entitäten verbundenen Daten
auch aus Einfachheitsgründen
auf die Grafikanwendung 11 bezogen sein.
-
Bei
der bevorzugten Ausführungsart
der Erfindung ist das zur Durchführung
des Verfahrens der Erfindung verwendete Datenverarbeitungssystem 1 ein
Computer, der das Betriebssystem Windows von Microsoft verwendet,
und in diesem Betriebssystem ist das Programm 12 zur Anzeige
von geometrischen Daten eine Grafik-API (steht für Advanced Programming Interface
oder Schnittstelle zur fortschrittlichen Programmierung), das über eine
Ausgabebibliothek mit dynamischer Verbindung oder DLL (Dynamic Link Library)
eingefügt
ist, die beispielsweise mit der Spezifikation OpenGL der Firma Silicon
Graphics Inc. übereinstimmt.
Diese DLL ist üblicherweise
im Verzeichnissystem von Windows angeordnet und wird „opengl32.dll" genannt.
-
Die
Bibliothek OpenGL weist mehrere hundert Funktionen auf, wobei der
Komplex der OpenGL-Funktionen, die als Beispiel in dieser Beschreibung
entweder mit oder ohne Anwendung des Verfahrens gemäß der Erfindung
verwendet werden, auf einen hinsichtlich der OpenGL-Funktionen sehr verminderten
Unterkomplex absichtlich beschränkt worden
ist, damit ein vernünftiger
Umfang dieser Beschreibung bewahrt werden kann. Dennoch muss von
nun an verstanden werden, dass das Prinzip der Erfindung nicht auf
die in dieser Beschreibung dargestellten OpenGL-Funktionen beschränkt ist,
sondern dass es gleichermaßen
auf alle in der Spezifikation OpenGL angegebenen Funktionen anwendbar
ist.
-
Anhand
der 1 wird nun das Funktionsprinzip der Anzeige eines
geometrischen Musters 10 auf dem Grafikbildschirm 14 ohne
Verwendung des Ausgabeverfahrens von Daten gemäß der Erfindung beschrieben.
-
Wenn
die Grafikanwendung 11 wunschgemäß ein geometrisches Muster 10 auf
dem Grafikbildschirm 14 anzeigt, ruft sie Grafikfunktionen
auf, die in der DDL der Grafik-Schnittstelle 12 angeordnet sind.
Diese Grafik-Schnittstelle 12 sendet
Anweisungen vom vektoriellen Typ an die Grafikkarte 13 über die
mit dieser verbundene Steuersoftware 13.
-
Die
genannten, geeigneten Informationsbildschirme sind durch Kathodenstrahlröhren oder ähnliche
Vorrichtungen gebildet, die die Anzeige durch eine videoartige Abtastung
bewirken, was zur Folge hat, dass es nötig ist, ein binäres Bild
der angezeigten Grafikdaten zu speichern, bis eine visuelle Dauerhaftigkeit
der angezeigten Grafikdaten für
den Anwender 2 erzielt werden kann. Dieses binäre Bild, das
aus einer bestimmten Anzahl von Bits für die auf dem Bildschirm 14 anzeigbaren
Punkte zusammengesetzt ist, wird in einem internen Speicher der
Grafikkarte 13 gespeichert, der Auffrischungs- oder Anzeigespeicher
genannt wird. Die visuelle Beständigkeit
der Daten für
den Anwender 2 wird durch die Grafikkarte 13 erhalten,
indem dieses binäre
Bild mehrere zehn mal je Sekunde wieder gelesen wird und gelesene
Informationen der Videosignale teilweise erzeugt werden, die für das gespeicherte
Bild im Auffrischungsspeicher der Grafikkarte 13 typisch sind.
Diese Videosignale werden durch die Grafikkarte 13 zum
Grafikschirm 14 gesendet, auf dem sie die Anzeige des Bilds
hervorrufen, das in binärer
Form im Auffrischungsspeicher der Grafikkarte 13 gespeichert
ist.
-
Eine
Grafikanwendung 11 zeigt wunschgemäß ein geometrisches Muster 10 auf
dem Computerbildschirm 14 und bewirkt dann eine Reihe von Aufrufen
von Grafikfunktionen, die in der OpenGL-DLL 12 vorhanden
sind. In der Spezifikation OpenGL wird diese Aufrufreihe von Grafikfunktionen durch
den Aufruf einer besonderen Funktion beendet, die die Fertigstellung
der Umwandlung der Anweisungen bewirkt, die Binärpunkt für Binärpunkt zur Karte 13 gesendet
werden, wobei diese Binärpunkte auf
dem Grafikbildschirm 14 angezeigt werden.
-
Um
beispielsweise ein geometrisches Muster aus einem Streifen mit zwei
Dreiecken T1 und T2 anzuzeigen, laufen diese durch die Punkte ABC
bzw. BCD mit folgenden Koordinaten:
- A : (0,10,0),
- B : (0,10,–10),
- C : (0,0,0),
- D : (0,0,–10).
-
Die
Grafikanwendung 11 bewirkt den Aufruf von Grafikfunktionen
gemäß der OpenGL-DLL 12:
- glBegin(GL_DREIECK_STRIP),
- glVertex3fv(0.000,10.000,–10.000),
- glVertex3fv(0.000,0.000,0.000),
- glVertex3fv(0.000,0.000,–10.000),
- glEnd(),
- wglSwapBuffers().
-
In
dieser Aufrufreihe zeigt der Aufruf glBegin(GL_DREIECK_STRIP) den
Anfang eines Dreieckstreifens und der Aufruf glEnd() das Ende an.
Die Funktion glVertex3fv erlaubt das Definieren eines der Scheitelpunkte
der Dreiecke durch deren drei Koordinaten x, y und z.
-
Wenn
alle vorstehenden Elemente durch die Grafikanwendung 11 zur
Grafik-API 12 über
die Aufrufe der oben stehenden Funktionen übertragen worden sind, bewirkt
die Grafikanwendung 11 die Fertigstellung der Anzeige der
Elemente, die in vorstehender Weise mit Hilfe einer geeigneten Funktion
der Grafik-API 12, wie die Funktion „glFlush" oder die Funktion „wglSwapBuffers", übertragen
wurden, die in diesem Beispiel vorstehend gezeigt sind. Diese Funktionen
rufen alle beide die Fertigstellung der Umwandlung der in vorstehender
Weise empfangenen Grafikanweisungen in ein Bild aus Bits im laufenden
Auffrischungsspeicher der Grafikkarte 13 hervor, wodurch
die Anzeige der empfangenen Grafikanweisungen beendet wird, die
in vorstehender Weise auf dem Grafikbildschirm 14 empfangen
wurden.
-
Die
Anweisung „wglSwapBuffers" bewirkt außerdem die
Umsetzung der beiden Speicher vom Raster der Grafikkarte 13 in
demjenigen Fall, in dem diese Grafikkarte 13 zwei besitzt.
-
Im
Fall des beschriebenen Anzeigebeispiels bewirkt der Empfang der
Anweisung „wglSwapBuffers" das Entstehen der
wirksamen Anzeige von Grafikanweisungen auf dem Grafikbildschirm 14,
die durch die Grafikanwendung 11 der Grafikkarte 13 über die
Grafik-Schnittstelle 12 übertragen werden. Ein solches
Ereignis hat zur Wirkung, dass die Anzeige des geometrischen Musters 10,
das aus zwei Dreiecken T1 und T2 auf dem Grafikbildschirm 14 gebildet
ist, fertiggestellt wird.
-
Bei
der folgenden Betrachtung der 2 und 3 wird
nun die Ausgabe eines geometrischen Musters beschrieben, das nach
dem Verfahren gemäß der Erfindung
verwendet wird.
-
Wenn
die Installation des Programms zur Ausgabe von Grafikdaten nach
dem Verfahren gemäß der Erfindung
vorgenommen wird, wird das ursprüngliche,
im Verzeichnissystem von Windows vorhandene „opengl32.dll"-DLL 12 in „opengl32bis.dll" umbenannt, und sie
wird durch eine DLL 15 ersetzt, die nach dem Verfahren
gemäß der Erfindung
eingesetzt und in gleicher Weise wie das Original, nämlich „opengl32,dll", benannt wird. Diese
DLL 15 gemäß der Erfindung
stellt die gleichen Funktionen dar, die der Spezifikation OpenGL
als Ursprungs-DLL 12 entsprechen, d.h., dass sie die gleichen
Schnittstellenfunktionen mit denselben Namen und denselben Parametern
wie die ursprüngliche
OpenGL-DLL 12 bietet.
-
Wenn
ein nicht dargestellter Anwender 2 wunschgemäß die Daten
eines geometrischen Musters 10 ausgibt, das durch die Grafikanwendung 11 erzeugt
wird, nimmt er vorzugsweise die DLL in Betrieb, die nach dem Verfahren
gemäß der Erfindung wie
die oben beschriebene verwirklicht ist. Er bringt dann das geometrische
Muster zur Anzeige, wozu die Grafikanwendung 11 erforderlich
ist. In gleicher Weise wie die im Fall der Verwendung des Datenverarbeitungssystems 1 ohne
Anwendung des Verfahrens gemäß der Erfindung
vorstehend beschriebene, wenn die Grafikanwendung wunschgemäß ein geometrisches
Muster auf dem Bildschirm anzeigt, verwendet die Grafikanwendung
die DDL 15, die „opengl32.dll
genannt wird und im Betriebssystem Windows liegt, d.h., dass sie
Funktions- und Grundaufrufe
bewirkt, die der in dieser DLL 15 enthaltenen Spezifikation
OpenGL entsprechen.
-
Wenn
berücksichtigt
wird, dass im Augenblick der Installation des Ausgabeprogramms von Daten,
die mit geometrischen Entitäten
gemäß der Erfindung
verbunden sind, die DLL 12 durch die das Verfahren gemäß der Erfindung
in Gang setzende DLL 15 ersetzt worden ist, ruft dann die
Grafikanwendung in transparenter Weise die in der DLL 15 dargestellten
Funktionen und Grundfunktionen, die das Verfahren gemäß der Erfindung
durchführen,
anstelle der Funktionen und Grundfunktionen auf, die in der ursprünglichen
DLL 12 dargestellt sind.
-
Gemäß einer
Abänderung
kann die „opengl32.dll" genannte DLL 15 nur
für eine
besondere Anwendung 11 zur Modellierung oder zur geometrischen
Manipulation installiert sein, wobei die DLL 15 allein
im Verzeichnis der besonderen Anwendung 11 installiert
wird. Wenn tatsächlich
das Betriebssystem Windows eine auf eine Anwendung 11 bezogene
DLL 15 sucht, sucht es zuallererst diese DLL 15 in
dem gleichen Verzeichnis, in dem sich die Anwendung 11 befindet.
In Ermangelung dessen sucht das Betriebssystem Windows darauf diese
DLL 15 in den vorbestimmten Verzeichnissen des Systems 1,
das u.a. das Systemverzeichnis enthält, in dem das Betriebssystem
Windows installiert ist.
-
Wenn
nun das Verfahren gemäß der Erfindung
ausgeführt
und das oben beschriebene Beispiel wieder aufgenommen wird, empfängt die
DLL 15 des Verfahrens gemäß der Erfindung anstelle der
ursprünglichen
DLL OpenGL 12 die von dieser festgelegten Grafikfunktionsaufrufe.
Bei den aktuellen Realisierungsarten der Erfindung überträgt dann
die DLL 15 der Erfindung die empfangenen Funktionsaufrufe zur
ursprünglichen
DLL 12, d.h., dass sie die der DLL 12 entsprechenden
Funktionen mit den gleichen Parametern wie diejenige aufruft, die
bei den von der Grafikanwendung 11 stammenden Aufrufen
empfangen werden.
-
Daher
empfängt
die DLL 15 der Erfindung folgende Funktionsaufrufe:
- glBegin(GL
DREIECK STRIP)
- glVertex3fv(0.000,10.000,0.000)
- glVertex3fv(0.000,10.000,–10.000)
- glVertex3fv(0.000,0.000,0.000)
- glVertex3fv(0.000,10.000,–10.000)
- glEnd()
- wglSwapBuffer().
-
Zur
Ausgabe von mit geometrischen Entitäten verbundenen Daten speichert
und verwaltet das in der DLL 15 gemäß der Erfindung enthaltene
Programm in seinem Speicher 16 eine bestimmte Anzahl von
Tabellen der mit geometrischen Entitäten verbundenen Daten, nämlich in
nicht beschränkender Weise
eine Tabelle „Punkte" von Punkten und
eine Tabelle „Dreiecke" von Dreiecken. Anfangs
sind diese beiden Tabellen leer, d.h., dass die Elementanzahl NPunkte
der Tabelle Punkte und die Elementanzahl NDreiecke der Tabelle Dreiecke
beide Null sind.
-
Das
Programm der DLL 15 beginnt mit der Stufe 30,
in der es die Anzahl NPunkte der Punkte und die Anzahl NDreiecke
der Dreiecke auf den Wert 0 initialisiert; dann erwartet diese Stufe
den Empfang einer Grafikanweisung aus der Richtung der Grafikanwendung 11.
Während
des Empfangs der Anweisung glBegin(GL_DREIECK_STRIP) gelangt das Verfahren
gemäß der Erfindung
zur Stufe 31, in der es prüft, ob der Wert des Parameters
der Anweisung GL_BEGIN der vorbestimmte Wert GL_DREIECK_STRIP ist,
der den Anfang einer Folge von Grafikanweisungen anzeigt, die einen
Streifen aus Dreiecken durch deren Scheitelpunkte definieren. Wenn
die Antwort negativ ist, kehrt das Verfahren zur Stufe 30 zurück. Wenn
die Antwort in der Stufe 31 positiv ist, d.h. wenn der
Parameterwert GL_DREIECK_STRIP ist, gelangt das Verfahren zur Stufe 32,
in der es eine Grafikanweisung erwartet.
-
Während des
Empfangs einer Grafikanweisung prüft das Verfahren der Erfindung
in der Stufe 33, ob die empfangene Anweisung eine Anweisung glVertex3fv
ist; im Fall des vorliegenden Beispiels ist die Antwort positiv,
und während
des Empfangs des Aufrufs glVertex3fv(0.000,10.000,0.000) gelangt
das Verfahren der Erfindung dann zur Stufe 34. In der Stufe 34 erhöht dann
das Programm 15 die Anzahl NPunkte der empfangenen Punkt
um eins, d.h., dass es die Anzahl NPunkte von dessen ursprünglichem Wert
Null auf den Wert 1 bringt. Es speichert dann in der Tabelle Punkte
die empfangenen Punkte, d.h., dass es immer noch in der Stufe 34 außerdem den ersten
bzw. den zweiten bzw. den dritten Parameter der empfangenen Anweisung
glVertex3fv beim Auftreten der Werte 0.000, 10.000 und 0.000 in
den Stellen der Koordinaten x, y und z des ersten Punkts in der
Tabelle Punkte speichert. Das Verfahren der Erfindung gelangt dann
zur Stufe 35.
-
In
der Stufe 35 prüft
das Verfahren der Erfindung, ob die Anzahl NPunkte der empfangenen Punkte
unter 3 liegt. Wenn die Antwort positive ist, kehrt das Verfahren
der Erfindung zur Stufe 32 zurück, andernfalls gelangt das
Verfahren der Erfindung zur Stufe 36.
-
Wenn
die Antwort in der Stufe 33 negativ ist, zeigt dies an,
dass mindestens drei Punkte durch die vorhergehenden Anweisungen
glVertex3fv übertragen
worden sind. Gemäß der Spezifikation
OpenGL für
den Dreieckstreifen GL_DREIECK_STRIP zeigt dies an, dass ein Dreieck
des Streifens, das durch die drei letzten empfangenen Punkte gebildet
ist, bestimmt worden ist.
-
Daher
erhöht
das das Verfahren gemäß der Erfindung
durchführende
Programm der DLL 15 in der Stufe 36 folglich die
Anzahl der empfangenen Dreiecke um eins, d.h., dass es die Anzahl
NDreiecke der empfangenen Dreiecke um eins erhöht. Es speichert dann die Anzahlen
n1, n2 und n3 von Punkten, die das so empfangene Dreieck
bilden, d.h. gemäß der Spezifikation
OpenGL die drei letzten empfangenen Punkte, in denjenigen Stellen,
die der Tabelle der Dreiecke entsprechen, d.h., dass es die Anzahlen
NPunkte-2, NPunkte-1 und NPunkte der drei letzten empfangenen Punkte
in den Stellen n1, n2 und n3 der Stelle der Anzahl NDreiecke der Tabelle
Dreiecke speichert.
-
Das
Programm kehrt dann zur Stufe 32 zurück, um dort auf andere, mögliche,
durch die Grafikanwendung 11 übertragene Punkte des Dreieckstreifens
zu warten.
-
Das
Programm der Erfindung wiederholt die Stufen 32 bis 36 bis
zur Stufe 33, in der die Antwort negativ sei.
-
Bei
dem beschriebenen Beispiel empfängt die
DLL 15 nach dem Erhalt von vier Punkten über die
vier Anweisungen „glVertex3fv" keine weitere Anweisung „glVertex3fv", doch empfängt sie
stattdessen eine Anweisung „glEnd". Daher ist die Antwort
in der Stufe 33 negativ, und die DLL 15 gelangt
zur Stufe 37.
-
In
der Spezifikation OpenGL bedeutet die Anweisung „glEnd", dass die durch die vorangehende Anweisung
glBeginn begonnene Folge von Grafikanweisungen beim Auftreten des
Dreieckstreifens GL_DREIECK_STRIP beendet ist.
-
In
der Stufe 37 prüft
die DLL 15, ob der letzte empfangene Funktionsaufruf ein
Aufruf der Funktion „glEnd" war. Wenn die Antwort
negativ ist, dann kehrt das in der DLL 15 enthaltene Programm
zur Stufe 32 zurück.
Wenn die Antwort der Prüfung
in der Stufe 37 positiv ist, gelangt das Programm der DLL 15 zur
Stufe 38. Bei dem beschriebenen Beispiel erfolgt dieses, wenn
die Grafikanwendung 11 die Anweisung „glEnd" nach den vier Anweisungen „glVertex3fv" sendet.
-
In
der Stufe 38 wartet das in der DLL 15 enthaltene
Programm der Erfindung auf eine Anweisung aus der Richtung der Grafikanwendung 11,
und dann gelangt es, wenn eine solche Anweisung empfangen worden
ist, zur Stufe 39.
-
In
der Stufe 39 prüft
das Programm der DLL 15, ob die empfangene Grafikanweisung
eine Anweisung OpenGL „wglSwapBuffers" oder „glFlush" ist. Wenn die Antwort negativ
ist, d.h., wenn die empfangene Anweisung weder eine Anweisung „wglSwapBuffers" noch eine Anweisung „glBuffers" ist, dann wird das
Programm der DLL 15 gemäß dem Verfahren
der Erfindung beendet. Wenn die Antwort in der Stufe 39 positiv
ist, gelangt das Programm der DLL 15 zur Stufe 40.
-
In
dem beschriebenen Beispiel sendet die Grafikanwendung 11 dann
nach dem Senden der Anweisung „glEnd" die Anweisung „wglSwapBuffers" zum Programm 15,
doch könnte
die Anweisung „glFlush" genau so gut verwendet
werden.
-
So
wie es vorstehend im Fall des Betriebs des Datenverarbeitungssystems 1 ohne
Verwendung des Verfahrens der Erfindung angegeben wurde, rufen diese
Anweisungen die Fertigstellung der Umwandlung der Grafikanweisungen
und deren genannte, geeignete Anzeige auf dem Bildschirm 14 hervor, und
diese Anweisungen weisen dann implizit die Mitteilung auf, dass
die in vorstehender Weise übertragenen
Anweisungen ein zusammenhängendes
Ganzes bilden, weil sie doch auf dem Bildschirm 14 angezeigt
werden müssen,
ohne auf weitere Grafikanweisungen zu warten.
-
Daher
werden diese Anweisungen bei den Ausführungsarten der Erfindung für die Festlegung, dass
die in vorstehender Weise empfangenen Grafikanweisungen ein zusammenhängendes
Ganzes bilden, und für
das folgende Hervorrufen der Ausgabe der Grafikanweisungen an die
Speichereinheit 18 verwendet.
-
Wenn
daher die Antwort in der Stufe 39 auf die Prüfung positiv
ist, d.h., wenn eine Anweisung „wglSwapBuffers" oder „glFlush" empfangen worden ist,
bilden die in vorstehender Weise durch das Programm 15 empfangenen Anweisungen
ein zusammenhängendes
Ganzes, und das das Verfahren der Erfindung ausführende Programm 15 gelangt
dann zur Stufe 40, in der ein 3D-Raider 17 genanntes
Modul 17 die Ausgabe der Tabellen Punkte und Dreiecke in
Richtung der Speichereinheit 18 in den Speicher 16 bewirkt.
-
Bei
dem Verfahren gemäß der Erfindung
ist der die Tabellen Punkte und Dreiecke speichernde Speicher 16 ein
Speicher, der im Computer aufgeteilt ist, der das Verfahren gemäß der Erfindung
durchführt
und der anzeigt, dass in diesen Speicher durch die DLL 15 eingeschrieben
werden kann, wobei der Speicher gleichzeitig durch das Modul 17 3D-Raider 17 wieder
gelesen wird.
-
Bei
einer ersten Realisierungsart der Erfindung werden die Tabellen
Punkte und Dreiecke in die Einheit 18 in Form von einfachen
Terxtkarteien ausgegeben, wobei die Punkte und Dreiecke in gleichnamigen
Karteien in der Speichereinheit 18 gespeichert sind.
-
Unter
Bezug auf die 4 wird nun ferner die Arbeitsweise
des Moduls 3D-Raider 17 gemäß einer ersten Realisierungsart
des Verfahrens der vorliegenden Erfindung beschrieben.
-
Bei
dieser ersten Realisierungsart erstellt und öffnet das Modul 3D-Raider 17 in
der Stufe 41 eine Punkteausgabekartei, die bei dem beschriebenen
Beispiel „Punkte" genannt wird, in
der Speichereinheit 18, das Modul initialisiert die Anzahl
i der in der Kartei „Punkte" gespeicherten Punkte
auf den Wert 0 und gelangt dann zur Stufe 42.
-
In
der Stufe 42 prüft
das Modul 3D-Raider 17, ob die Anzahl i der gespeicherten
Punkte in der Kartei „Punkte" unter der Anzahl
der Punkte NPunkte liegt, die im geteilten Speicher vorhanden sind.
Wenn die Antwort in der Stufe 42 positiv ist, gelangt das
Modul 3D-Raider 17 zur Stufe 43. In der Stufe 43 erhöht das Modul
3D-Raider 17 den Wert der Anzahl i um eins, dann schreibt
es den neuen Wert der Anzahl i in die Kartei „Punkte" und dann über dieselbe Zeile die drei
Koordinaten x, y und z des Punkts der Nummer i ein, der nach dem
Eingang i der im geteilten Speicher 16 gespeicherten Tabelle „Punkte" entsprechend kopiert
wird. Das Modul 3D-Raider 17 gelangt dann zur Zeile in
der Kartei „Punkte" und kehrt dann zur
Stufe 42 zurück.
-
Wenn
die Antwort in der Stufe 42 negativ ist, gelangt das Modul
3D-Raider 17 zur Stufe 44. In der Stufe 44 schließt das Modul
3D-Raider 17 die Kartei „Punkte" und gelangt dann zur Stufe 45.
In der Stufe 45 erstellt und öffnet das Modul 3D-Raider 17 über die
Speichereinheit eine Kartei zur Ausgabe von Dreiecken, die im beschriebenen
Beispiel „Dreiecke" genannt wird, und
initialisiert dann den Wert der Anzahl i der in die Kartei „Dreiecke" eingeschriebenen Dreiecke
auf Null. Dann gelangt sie zur Stufe 46.
-
In
der Stufe 46 prüft
das Modul 3D-Raider 17, ob die Anzahl i der in der Kartei „Dreiecke" gespeicherten Dreieck
unter der Anzahl der Dreiecke NDreiecke liegt, die im geteilten
Speicher vorhanden sind. Wenn die Antwort in der Stufe 46 positiv
ist, gelangt das Modul 3D-Raider 17 zur Stufe 47.
In der Stufe 47 erhöht
das Modul 3D-Raider 17 die Anzahl i um eins, dann schreibt
sie in die Kartei „Dreiecke" die Nummer i des
betreffenden Dreiecks ein, und dann kopiert sie über dieselbe Zeile der Kartei „Dreiecke" die Nummern n1, n2 und n3 der drei Punkte, die das Dreieck der Nummer
i bilden, ausgehend vom Eingang i der im geteilten Speicher gespeicherten
Tabelle „Dreiecke". Das Modul 17 kehrt
dann zur Stufe 46 zurück.
-
Wenn
die Antwort in der Stufe 46 negativ ist, gelangt das Modul
3D-Raider 17 zur Stufe 48, oder es schließt die Ausgabekartei „Dreiecke".
-
Die
Textkarteien „Punkte" und „Dreiecke", die im Fall des
vorhergehenden Beispiels gewonnen wurden, haben dann die Form, die
in den Tabellen 1 und 2 unten entsprechend dargestellt ist. Tabelle
1
1 | 0.000,10.000,0.000 |
2 | 0.000,10.000,–10.000 |
3 | 0.000,0.000,0.000 |
4 | 0.000,0.000.–10.000 |
Tabelle
2
-
Das
Verfahren zur Ausgabe von mit geometrischen Entitäten verbundenen
Daten gemäß einer ersten
Ausführungsart
der vorliegenden Erfindung ist nun beendet, und zwar derart, dass
das geometrische Muster 10 ausgegeben werden kann, das
durch die Grafikanwendung 11 erstellt und/oder manipuliert wird,
ohne dass irgendeine Kenntnis des Formats der Daten dieser Anwendung,
irgendeine Änderung dieser
Anwendung 11 und irgendeine Entwicklung eines besonderen
Programms für
die Anwendung 11 nötig sind.
-
Bei
einer zweiten Ausführungsart
der Erfindung ist das verwendete Ausgabeformat das Format DXF (Data
eXchange Format) der Firma AutoDesk, das das Bezugsformat des Markts
auf dem Gebiet der Ausgabe von mit geometrischen Entitäten verbundenen
Daten ist.
-
Das
Format DXF ist ein Textformat aufgrund einer Information durch die
Zeile. Die Zeilen sind in Paaren gruppiert, wobei die erste Zeile
des Paars ein ganzes, numerisches Datenwort ist, das die Art des auf
der folgenden Zeile dargestellten Datenworts anzeigt. Wenn daher
das numerische Datenwort eine ganze Zahl zwischen 0 und 9 ist, wird
das auf der folgenden Zeile dargestellte Datenwort eine Buchstabenkette
sein, und wenn das numerische Datenwort eine ganze Zahl zwischen
10 und 59 ist, wird das auf der folgenden Zeile dargestellte Datenwort
eine Koordinate von dreidimensionalen Punkten vom mit doppelter
Genauigkeit schwankendem Typ sein.
-
Außerdem ist
eine Kartei DXF in Abschnitten organisiert. Einem Abschnitt ist
ein Zeilenpaar zugeführt,
wobei die eine, die Ziffer 0 bildende Zeile eine Buchstabenkette
einführt
und die andere Zeile von einem Wortschlüssel SEKTION gebildet wird.
Dieser Abschnitt wird durch ein Zeilenpaar geschlossen, dessen erste
Zeile durch die Ziffer 0 und deren zweite Zeile durch den Wortschlüssel ENDSEK
gebildet wird.
-
Eine
Kartei DXF weist eine bestimmte Anzahl verschiedener Abschnittstypen,
insbesondere den Abschnitt ENTITIES, der Entitäten vom geometrischen Typ beschreibt,
und ebenfalls eine bestimmte Anzahl von weiteren Abschnitten auf,
unter denen Abschnitte sind, die Parameter oder Klassen definieren,
die mit dem Rahmen der vorliegenden Beschreibung übereinstimmen.
-
Der
Abschnitt ENTITIES wird durch verschiedene, geometrische Entitäten des
geometrischen Musters gebildet, wobei jede Entität durch eine Buchstabenkette
eingeführt
ist, die den Typ der Entität
anzeigt, gefolgt von Parametern, die für die betrachtete Definition
der Entität
nötig sind.
-
Beispielsweise
wird die Definition einer Facette im Raum durch ein Zeilenpaar eingeführt, von dem
die erste Zeile von einer Ziffer 0 gebildet ist, die eine Buchstabenkette
einführt,
gefolgt von einer Zeile, die vom Wortschlüssel 3DFACE gebildet ist.
-
Eine
Facette im Raum ist durch drei oder vier Punkte gebildet, die ein
Dreieck bzw. ein Viereck bilden, wobei der vierte Punkt als identisch
zum dritten Punkt aufgeführt
ist, um durch Vereinbarung eher ein Dreieck statt ein Viereck anzuzeigen.
Jeder der vier Punkte einer Facette ist durch seine drei Koordinaten x,
y und z definiert, und jede der Koordinaten ist, wie vorher angedeutet
wurde, durch ein Zeilenpaar definiert, von dem die erste Zeile ein
ganzzahliger Indikator zwischen 10 und 59 ist und die zweite Zeile
die genannte, geeignete Koordinate ist.
-
In
der Spezifikation des Formats DXF betragen die Indikatoren für die Koordinaten
x1, y1 und z1 des ersten Punkts der Facette in der Reihenfolge 10, 20 und 30,
während
die Indikatoren für
die Koordinaten x2, y2 und
z2 des zweiten Punkts der Facette in der Reihenfolge 11, 21 und 31,
die Indikatoren für
die Koordinaten x3, y3 und
z3 des dritten Punkts der Facette in der
Reihenfolge 12, 22 und 32 und die Indikatoren für die Koordinaten
x4, y4 und z4 des vierten Punkts der Facette in der Reihenfolge 13, 23 und 33 betragen.
-
Mit
anderen Worten ist der numerische Indikator der Koordinate x des
Punkts j für
den Punkt der Nummer j, für
die j-Variante von 1 bis 4 einer Facette, der numerische Indikator
der Koordinate y des Punkts j ist 19+j, und der numerische Indikator
der Koordinate z des Punkts j ist 29+j.
-
Genauer
gesagt erstellt und öffnet
das Modul 3D-Raider 17 unter Bezugnahme auf die 5 gemäß der zweiten
Ausführungsart
der vorliegenden Erfindung in der Stufe 51 eine Ausgabekartei,
die in dem beschriebenen Beispiel „DXF" genannt wird, und dann gelangt dieses
Modul zur Stufe 52. In der Stufe 52 schreibt das
Modul 3D-Raider 17 in die Zeilen oben auf der Kartei im
Format DXF, nämlich
in die vier folgenden Zeilen, ein:
0
SEKTION
2
ENTITÄTEN
-
Dann
initialisiert das Modul die Anzahl i der beschriebenen Facetten
auf 0 in der Kartei „DXF". Das Modul 3D-Raider 17 gelangt
nun zur Stufe, die auf der Stufe 53 beruht. In der Stufe 53 prüft das Modul
3D-Raider 17,
ob die Anzahl i der beschriebenen Facetten unter der Anzahl der
im geteilten Speicher gespeicherten Dreiecke liegt.
-
Wenn
die Antwort in der Stufe 53 positiv ist, wenn nämlich die
Anzahl der vorher in die Kartei DXF eingeschriebenen Dreiecke unter
der Anzahl NDreiecke der im geteilten Speicher 16 gespeicherten
Dreiecke liegt, dann gelangt das Modul 3D-Raider 17 zur Stufe 54.
In der Stufe 54 erhöht
das Modul 3D-Raider 17 die Anzahl i der vorher in die Kartei
eingeschriebenen Dreiecke um eins, und dann schreibt sie in die oberen
Zeilen im Format DXF für
eine Facette, nämlich
in die zwei folgenden Zeilen, ein:
0
3DFACE
-
Außerdem initialisiert
das Modul 3D-Raider 17 immer noch in der Stufe 54 die
Anzahl j der in die Kartei „DXF" eingeschriebenen
Punkte der Dreiecke i auf 0. Dann gelangt dieses Modul zur Stufe 55.
In der Stufe 55 prüft
das Modul 3D-Raider 17, ob die Anzahl j der in der Kartei „DXF" eingeschriebenen Punkte
unter 3 liegt. Wenn die Antwort positiv ist, gelangt das Modul 3D-Raider 17 zur
Stufe 56.
-
In
der Stufe 56 erhöht
das Modul 3D-Raider die Anzahl j der in die Kartei „DXF" eingeschriebenen Punkte
des Dreiecks i um eins, und sie berechnet eine Zahl n, die Dreiecke.nj gleich ist, d.h., dass n sich mit der Zahl
nj des Punkts j des Dreiecks i in gleicher
Weise ändert.
Das Modul schreibt darauf den Indikator der Koordinate x für den Punkt
j der Facette im Format DXF, nämlich
den Wert 9+j, über
eine erste Zeile aufeinanderfolgend ein, dann die Koordinate x selbst über eine
zweite Zeile für
den Punkt, dessen Zahl n in vorstehender Weise berechnet worden
war.
-
Ebenso
schreibt das Modul 3D-Raider 17 immer noch in der Stufe 56 und
immer für
den Punkt der Zahl n in entsprechender Weise den Indikator 19+j über eine
dritte Zeile und die Koordinate Y über eine vierte Zeile sowie
dann den Indikator 29+j über
eine fünfte
Zeile und die Koordinate z über
eine sechste Zeile ein. Das Modul 3D-Raider kehrt dann zur Stufe 55 zurück.
-
Der
Prozess in den Stufen 55 und 56 wird bis zur Stufe 55 wiederholt,
und die Antwort wird negativ, nämlich
wenn die Anzahl j der in die Kartei „DXF" eingeschriebenen Punkte des Dreiecks
gleich 3 beträgt. An
diesem Prozesspunkt wird das Modul 3D-Raider 17 dann die
drei Punkte des Dreicks i einschreiben.
-
Wenn
i gleich 1 ist, d.h. für
das erste Dreick, wird das Modul 3D-Raider 17 dann in die
Kartei „DXF" die folgenden Zeilen
einschreiben:
10
0.0
20
10.0
30
0.0
für den Punkt
n1=1 des Dreiecks 1, dann die Zeilen:
11
0.0
21
10.0
31
–10.0
für den Punkt
n2=2 des Dreiecks 1, dann die Zeilen:
12
0.0
22
0.0
32
0.0
für den Punkt
n3=3 des Dreiecks 1.
-
Wenn
in der Stufe 55 die Anzahl j der in die Kartei „DXF" eingeschriebenen
Punkte gleich 3 ist, gelangt das Modul 3D-Raider zur Stufe 57.
Am Anfang der Stufe 57 wird das Modul 3D-Raider dann in die
Kartei „DXF" die drei Punkte
des Dreiecks i in der Form einschreiben, wie sie oben angegeben
wurde. Gleichwohl wird gemäß der vier
Punkte für
eine eine Facette benötigende
Spezifikation „DXF", wie vorher erwähnt wurde,
der dritte Punkt der Zahl n3 wiederholt,
was nach Übereinkunft
der DXF bedeutet, dass die beschriebene Facette ein Dreieck ist.
-
Deshalb
schreibt das Modul 3D-Raider in der Stufe 57 in die Kartei
den Indikator der Koordinate x für
den vierten Punkt der Facette, nämlich
13, über eine
erste Zeile und dann die Koordinate x über eine zweite Zeile ein.
In gleicher Weise schreibt es den Indikator der Koordinate, nämlich 23, über eine
dritte Zeile und die Koordinate y über eine vierte Zeile bzw. den
Indikator der Koordinate z, nämlich
33, über
eine fünfte
Zeile und die Koordinate z über
eine sechste Zeile ein.
-
In
demjenigen Fall, in dem i gleich 1 ist, d.h., für das erste Dreieck, was sich
aus dem Ereignis in der Stufe 57 ergibt, schreibt das Modul
3D-Raider 17 in die Kartei „DXF" folgende Zeilen ein:
13
0.0
23
0.0
33
0.0,
die
die Koordinaten des vorhergehenden Punkts der laufenden Facette
wiedergeben, nämlich
den dritten Punkt des ersten Dreiecks.
-
Am
Schluss der Stufe 57 kehrt das Modul 3D-Raider 17 dann
wieder zur Stufe 54 zurück,
um das folgende Dreieck auszugeben, wobei es den gleichen Prozess
verwendet, wie er oben für
das erste Dreieck beschrieben wurde, bis die Antwort in der Stufe 54 positiv
wird.
-
Wenn
die Antwort in der Stufe 54 positiv ist, d.h., wenn alle
vorher im geteilten Speicher 16 gespeicherten Dreiecke
in die Kartei „DXF" eingeschrieben worden
sind, dann gelangt das Modul 3D-Raider 17 zur Stufe 58.
In der Stufe 58 schreibt das Modul 3D-Raider 17 die
Endabschnittzeilen, nämlich
folgende zwei Zeilen ein:
0
ENDSEK
-
Dann
schreibt es die zwei Zeilen ein, die das Ende der Ausgabekartei
im Format DXF anzeigt, nämlich:
0
EOF
-
Dann
schließt
das Modul 3D-Raider 17 immer noch in der Stufe 58 die
Kartei „DXF", die folglich dann
die in der folgenden Tabelle 3 dargestellte Form aufweist:
-
-
-
-
Das
Verfahren zur Ausgabe von mit geometrischen Entitäten verbundenen
Daten gemäß der zweiten
Ausführungsart
der vorliegenden Erfindung ist nun beendet, und daraus ist erkennbar,
dass dieses Verfahren die Ausgabe des geometrischen Musters 10 erlaubt,
das durch die Grafikanwendung 11 ohne jegliche Kenntnis
des Datenformats dieser Anwendung, ohne jegliche Änderung
dieser Anwendung 11 und ohne jegliche Entwicklung eines
besonderen Programms für
diese Anwendung 11 erstellt und/oder manipuliert wird.
-
Selbstverständlich ist
das Verfahren gemäß der Erfindung
nicht auf das Unterbrechen und die Ausgabe der oben beschriebenen
Grafikfunktionen von Punkten und von Dreiecken beschränkt. Insbesondere
ist bei dem vorstehend beschriebenen Beispiel die für Erzeugung
von Punkten verwendete Funktion die Funktion glVertex3fv gewesen,
doch dürfte
es für
jeden Fachmann in dieser Technik klar sein, dass die vorstehende
Beschreibung mit elementaren Anpassungen bei jeder Anweisung der Gruppe
glVertex anwendbar ist.
-
Ferner
sollte es auf der Grundlage der vorstehenden Beschreibung völlig klar
sein, dass das Verfahren gemäß der Erfindung
die Ausgabe jeder gewünschten
Funktion OpenGL und in nicht beschränkender Weise die Ausgabe von
Funktionen erlaubt, die viereckförmige
Elemente definieren, die Flächenorientierungsinformationen
wie die Senkrechte im Punkt definieren und die Informationen über die
Farbe, die Oberflächenstruktur,
die Transparenz usw. definieren.
-
Ferner
ist das Verfahren nicht auf die Ausgabe von geometrischen, auch
einfachen Strukturen beschränkt,
wie sie im Beispiel beschrieben wurden, sondern es wird für den Fachmann
klar sein, dass das Verfahren gemäß der Erfindung die Ausgabe
eines beliebigen, geometrischen Musters aufgrund der Tatsache erlaubt,
dass jede, auch eine komplizierte Musterstruktur mit Hilfe von Grundworten
von Punkten, Dreiecken, Vierecken usw. angezeigt werden wird und
dann unter Verwendung des oben beschriebenen Verfahrens ausgegeben
werden kann.
-
In
gleicher Weise ist aus offensichtlichen Gründen der Vereinfachung der
Beschreibung angenommen worden, dass alle verwendeten, geometrischen
Strukturen, insbesondere die Punkte, bestimmte sind und dass es
daher keine Suchstelle zum Zerlegen oder Optimieren in irgendeiner
Weise gibt, als es die verwendeten Tabellen sind. In der Praxis
werden die verdoppelten Elemente selbstverständlich durch ein geeignetes
Verfahren unterdrückt,
entweder während
ihrer Registrierung in den Tabellen Punkte und Dreiecke durch das
Programm der DLL 15 oder während ihrer Ausgabe in die
Speichereinheit 18 durch das Modul 3D-Raider 17.
-
Ebenfalls
ist das Verfahren nicht auf die beschriebenen Ausführungsarten
beschränkt,
die die Grafikbibliothek OpenGL verwenden, und es dürfte für alle in
der Technik bewanderten Personen klar sein, dass das oben beschriebene
Verfahren auf jede andere Bibliothek von Anzeigefunktionen 12 anwendbar
ist, die für
die Modellierungsanwendung oder die Anwendung 10 zur geometrischen
Modellierung geeignet ist, wie beispielsweise (nicht beschränkt) auf
die Anzeigebibliothek DirectX von Microsoft.
-
Andererseits
kann das Verfahren gemäß der Erfindung
nur für
eine besondere, gewünschte
Anwendung 11 durchgeführt
werden, vielmehr für
den Komplex der Grafikanwendungen, die über das System 1 zur
Modellierung und/oder Manipulation eingeführt sind, wobei die DLL 15 installiert
ist, die das Verfahren gemäß der Erfindung
allein im Verzeichnis der gewünschten
Anwendung 11, vielmehr im Verzeichnissystem des Betriebssystems
von Windows durchführt.
-
Entsprechend
dem Vorstehenden sieht man also, dass das Verfahren gemäß der Erfindung
erlaubt hat, die Informationen der Geometrie des Musterbeispiels 10 durch
die Anwendung 11 ohne jegliche Änderung dieser Anwendung 11,
ohne jegliche Entwicklung eines besonderen Programms für diese Anwendung 11 und
ohne jegliche Kenntnis des für diese
Anwendung verwendeten Datenformats auszugeben, wobei nur die Funktionen
und Grafikgrundelemente als diese Anwendung 11 unterbrochen
werden, die für
die Anzeige ihrer geometrischen Muster 10 verwendet wird.
-
Wenn
darauf geachtet wird, dass das verwendete Datenformat für das Speichern
der in die Speichereinheit 18 ausgegebenen, mit geometrischen
Entitäten
verbundenen Daten entweder ein bekanntes und offenes Format wie
das bei der ersten Ausführungsart
dargestellte oder ein Standardbetriebsformat wie das Format DXF
oder ferner jedes andere Format sein wird, das von einer besonderen Anwendung
benötigt
wird, dann wird es sehr leicht sein, diese Daten in jedes andere
gewünschte
geometrische System zur Modellierung oder Manipulation einzugeben.
-
Das
Verfahren gemäß der Erfindung
ist folglich also für
die Anwendung in einer sehr großen
Variation von Bereichen geeignet, insbesondere in allen Bereichen,
in denen die mit geometrischen Entitäten verbundenen Daten zwischen
verschiedenen Systemen ausgetauscht werden müssen, wie es in der gesamten
Industrie und im gesamten Dienstleistungsbereich erfolgt, bei denen
mit geometrischen Entitäten
verbundene Daten verwendet werden, wie etwa in der Industrie und
im Dienstleistungsbereich des Automobil- oder Flugzeugbaus, der
industriellen Entwicklung, des Bauhandwerks und/oder der Architektur,
der Fernsehspiele usw.