Genormte Schnittstellen für die Computergrafik:

GKS und Co. erhöhen die Unabhängigkeit

01.02.1985

Die Entwicklung von Computer-Grafik-Software war in den letzten Jahren geprägt von Bestrebungen, grafische Schnittstellen zu normen. Das Grafische Kernsystem GKS, jetzt ISO-Norm, ist das erste Resultat. Aber die Entwicklung ist noch nicht abgeschlossen.

GKS ist der Ausgangspunkt für eine ganze Reihe weiterer Projekte, die die Standardisierung grafischer Schnittstellen zum Ziel haben. Die wichtigsten Schlagworte sind hier: 3D-GKS, PHIGS, CGM, CGI und WSI.

Auf dem CAD-Gebiet wurde ebenfalls mit der Normung von Schnittstellen begonnen. Das prominenteste Projekt im CAD-Bereich ist IGES, weitere Schlagworte sind VDAFS und TAP. Viele der Normen im Computergrafikbereich sind stark von europäischen Entwicklungen geprägt. GKS ist auch nach der internationalen Normung eindeutig ein deutsches Produkt, bei CGM, CGI, WSI, VDAFS und TAP besteht eine starke deutsche Beteiligung und damit auch Einflußnahme. Das ist ein herausragender Erfolg der beteiligten Personen und Institutionen, des DIN und der deutschen Informatik. Was steht nun hinter solchen Kürzeln wie GKS oder IGES.

Grafisches Kernsystem GKS

Das GKS ist ein Standard für den Programmierer, der grafische Anwendungsprogramme erzeugt. Ein Programmierer, der zum Beispiel ein Programm auf einem grafikfähigen PC in Basic erstellt, das Kreisdiagramme zeichnen soll, könnte dazu das GKS, speziell die Ausgabefunktionen des GKS, benutzen. Die GKS-Implementierung müßte dazu in der Basic-Sprachumgebung bereitstehen. Ein anderer Programmierer, der für ein interaktives Leiterplatten-Layoutprogramm mit grafischem Dialog den Präsentations- und Dialogteil in Fortran programmiert, könnte ebenfalls GKS verwenden. In diesem Falle würden nicht nur die Ausgabefunktionen des GKS, sondern auch die Eingabefunktionen und die Funktionen zur Bildstrukturierung verwendet. GKS müßte dazu in der Fortran-Version vorhanden sein.

Für den Basic-Programmierer stellt sich GKS als Erweiterung der Sprache um grafische Funktionen dar, also um Statements, die zum Beispiel Teile eines Bildes auf dem Bildschirm oder Plotter erzeugen. In allen anderen Sprachen ist GKS für den Anwendungsprogrammierer ein Unterprogrammpaket (Subroutines, Procedures, Functions oder ein Package). Die Funktionalität des GKS wurde zunächst in einer Norm (ISO 7942 beziehungsweise DIN 66252) festgelegt, ohne auf eine bestimmte Programmiersprache abzuheben. Für alle wichtigen Programmiersprachen wird aber in Zusatznormen für "Sprachschalen" (ISO 8651 beziehungsweise DIN 66292) festgelegt, wie GKS innerhalb dieser Programmiersprachen verwendet wird. Für Basic, Fortran und Pascal sind die Arbeiten weitgehend abgeschlossen, für Ada und C bestehen stabile Vorschläge, die Sprachschalen für PL/ 1, Cobol und Algol 68 sind in Arbeit.

Auf den GKS-Sprachschalen aufbauend, können anwendungsabhängige Unterprogrammpakete auf GKS-Basis bereitgestellt werden, beispielsweise für Präsentationsgrafik.

Es gab natürlich schon vor GKS eine ganze Reihe von Systemen, die Grafikfunktionen für den Anwendungsprogrammierer bereitstellen. Frühe prominente Vertreter sind die Plotter-Software von Calcomp und die TCS-Software von Tektronix für die 4014 Speicherröhren, jene Geräte, die in den 70er Jahren der interaktiven grafischen Datenverarbeitung erst zu einem breiten Durchbruch verhalfen. Die Grafiksysteme vor GKS waren fast alle geräteabhängig, anwendungsabhängig oder sprachabhängig. Dem setzt GKS seine Hauptvorteile gegenüber:

- Geräteunabhängigkeit. Es wurde viel Wert darauf gelegt, die ganze Palette grafischer Geräte, von "dummen" Offline-Plottern bis zu hochinteraktiven intelligenten Bildschirmstationen mit einer einheitlichen Funktionalität anzusprechen, besonders auch Vektor- und Rastergeräte einheitlich zu behandeln.

-Anwendungsunabhängigkeit. Die GKS-Funktionen sollen für alle grafischen Anwendungen geeignet sein. Anwendungsunabhängige Programmpakete sollen als eigene Schicht leicht auf GKS aufbaubar sein.

- Sprachunabhängigkeit. GKS soll in allen wichtigen Programmiersprachen in einer Art und Weise bereitgestellt werden, daß es sich nahtlos in die jeweilige Sprachumgebung einpaßt.

Die GKS-Funktionen gehören zu folgenden Teilbereichen:

Ausgabe

Diese Funktionen erzeugen ein Bild aus Einzelteilen. Die Funktion Polyline

(N, Pi) - in Fortran: CALL GPL (N, X, Y) - erzeugt zum Beispiel einen Streckenzug durch die N-Punkte Pi, i = 1 . . . N (mit den Koordinaten X(I), Y(I), I = 1,N). Es gibt Aufgabefunktionen für Streckenzüge, für zentrierte Symbole (wie +, *,o), für Texte und für Flächen. Neben den geometrischen Ausgaben bietet das GKS umfassende Möglichkeiten, die Darstellungsweise über Attribute zu steuern (Strichstärke, Linienart und Farbe für Linien, Farbe oder Schraffur für Flächen).

Eingabe

Werte, die der Bediener am Gerät eingibt, können über GKS-Funktionen eingelesen werden. Beispiele sind das Einlesen von Koordinaten beim Digitalisieren oder das Identifizieren von Teilbildern durch Zeigen mit dem Lichtgriffel am Bildschirm. GKS bietet ein sehr allgemeines und flexibles Eingabemodell, das auch komplexe Realtime-Interaktionen ermöglicht.

Grafische Arbeitsplätze

GKS stellt Funktionen zur Verfügung, verschiedene grafische Geräte zur Ein- und Ausgabe parallel oder nacheinander zu betreiben und zu verwalten. Dazu wird das Konzept eines abstrakten grafischen Arbeitsplatzes benutzt, auf den die Eigenschaften realer Grafikgeräte abgebildet werden. Gerade dieses GKS-Konzept hat dazu geführt, daß mehrere Gerätehersteller den abstrakten GKS-Arbeitsplatz praktisch eins zu eins in ihren Grafikarbeitsplätzen realisiert haben.

Viewing Pipeline

GKS erlaubt es, die Anwenderkoordinatensysteme, in denen der

GKS-Programmierer Bildteile definiert, auf die Gerätekoordinatensysteme der verschiedenen angeschlossenen Geräte abzubilden.

Bildstruktur

Ein Bild ist in GKS aus separaten Teilbildern ("Segmenten") aufgebaut. Solche Segmente können separat verschoben, gedreht oder skaliert werden, man kann sie selektiv löschen oder Segmente zum Aufbau weiterer Segmente kopieren.

Bildspeicher

GKS enthält eine Schnittstelle zu einer Bilddatei zur langfristigen Speicherung von Bildern oder zur Bildübermittlung (siehe im folgenden auch "CGM").

GKS wird im ersten Halbjahr 1985 sowohl bei ISO als auch beim DIN als Norm erscheinen, ebenso stehen praktisch gleichlautende nationale Normen in USA, Großbritannien und Frankreich vor dem Abschluß.

Mit GKS wurde eine solide und belastungsfähige Grundlage für eine Systematik der Grafiksoftware geschaffen. Dieser Prozeß ist noch nicht abgeschlossen, vor allem die GKS-Sprachschalen erfordern noch weitere Anstrengungen. Auf der Grundlage von GKS sind aber eine ganze Reihe von Projekten in der Bearbeitung, die weitere Standard-Schnittstellen im Grafikbereich bereitstellen sollen. Das sind die Projekte 3D-GKS, PHIGS, CGM, CGI/ WSI. Dabei erfährt GKS zwei wesentliche Erweiterungen - einmal in Richtung 3D-Grafik, da GKS ein 2D-System ist und andererseits in Richtung hierarchisch strukturierter Bilder und dynamischen Bildänderungen. Diese Erweiterungen erfordern wie GKS Sprachschalen. Alle Grafiknormen haben eine einheitliche Schnittstelle in Richtung Bildspeicherung (CGM) und eine andere einheitliche Schnittstelle zu den grafischen Geräten (CGI und WSI).

3D-GKS und PHIGS

Das GKS ist ein zweidimensionales grafisches System. Es deckt damit einen großen Teil der Anwendungen solcher Systeme ab. Es bleiben jedoch Anwendungsbereiche, für die ein dreidimensionales (3D) grafisches System als Grundlage wünschenswert ist. Ein solches System, das als Erweiterungsmodul nahtlos an das 2D-GKS angepaßt ist, steht vor der Vollendung. Noch dieses Jahr kann mit einem ISO-Normentwurf gerechnet werden. Die bestehende GKS-Norm wird dadurch nicht verändert.

In manchen Bereichen ist es wünschenswert, die behandelten grafischen Darstellungen in hierarchischer Bildstruktur zu untergliedern und Teilbilder realtime-dynamisch zu ändern. Das erfordert allerdings eine sehr aufwendige Hardware. Für diesen Bereich ist ein zu GKS kompatibles System - PHIGS - in der Entwicklung, das den obersten Bereich der Computergrafik abdeckt. PHIGS wird in etwa zwei bis drei Jahren als ISO-Normentwurf vorliegen.

CGM, CGI und WSI

Zur Speicherung und Übertragung von Bildern dienen Bilddateien. Ein Vorschlag für eine grundlegende Bilddatei-Norm (Computer Graphics Metafile-CGM) liegt mittlerweile vor. Eine solche Norm wird die Speicherung von Bildern vereinheitlichen und die Übermittlung grafischer Daten zwischen verschiedenen Institutionen erleichtern. Die Integration von Prozeduren zur Bildübermittlung in standardisierte Rechnernetze ist geplant. Die Bilddatei ist zu GKS kompatibel, sie wird über die (schon genormte) Bilddatei-Schnittstelle des GKS angesprochen werden. Die Codierung der Bilddatei wurde mit den Normungsstellen der Postverwaltung so abgestimmt, daß auch zur Bildübermittlung in öffentlichen Netzen genau die GKS/CGM-Schnittstellen verwendet werden.

GKS normt die Anwenderschnitt stelle eines grafischen Systems, die Anpassung an die vielfältigen Geräteschnittstellen verschiedener Geräte müssen zur Zeit noch die (oft sehr komplexen) Gerätetreiber vornehmen. Mit der Normung der Geräteschnittstelle (Computer Graphics Interface-CGI) wird der Anschluß von Geräten an das GKS stark vereinfacht werden. Mit dieser Schnittstelle können alle Geräte, von einfachen Plottern zu hochinteraktiven Arbeitsplätzen, angesteuert werden. Eine spezielle Untermenge der CGI-Funktionen bildet das GKS-Workstation-Interface (WSI), das genau die GKS-Funktionen an der Geräteschnittstelle bereitstellt. Eine ganze Reihe von Geräteherstellern bieten diese Schnittstelle an - quasi ein GKS im grafischen Arbeitsplatz.

Grafik und CAD

In einem CAD-System ist der Grafikteil verantwortlich für die Darstellung von Bildern und für die Behandlung der Interaktionen mit dem Bediener. Der Grafikteil kann mit GKS realisiert werden; das GKS steuert über das CGI den CAD-Arbeitsplatz an und kann über den CGM Bilder (zum Beispiel fertige technische Zeichnungen) speichern und übertragen. Ein CAD-System verwaltet aber nicht nur Zeichnungen, sondern komplexe CAD-Objekte wie mechanische Teile mit ihrer 3D-Geometrie und sonstigen Eigenschaften. Solche CAD-Objekte können ganze Produkte, beispielsweise ein Getriebe oder eine Kamera, beschreiben.

Um diese CAD-Objekte systemunabhängig archivieren oder zu anderen Systemen übertragen zu können, bedarf es einer genormten sequentiellen Schnittstelle. Hierher gehören die Schlagworte IGES, TAP und VDAFS. Es handelt sich um Formate für sequentielle Dateien, die zum Beispiel auf Band gespeichert oder über Leitungen übertragen werden können. IGES (Initial Graphics Exchange Specification) wurde vom amerikanischen NBS (National Bureau of Standards) entwickelt. Die Spezifikation des IGES-Formates wurde 1981 amerikanische Norm.

Version 1 der IGES-Spezifikation dient in erster Linie der Übertragung und Archivierung von Produktdaten aus dem Bereich des Maschinenbaus. Version 2 enthält darüberhinaus Übertragungsmöglichkeiten für den Bereich Elektrik und Elektronik, für Finite-Elemente-Modelle und für rationale B-Splines-Flächen. die IGES Datei enthält die Beschreibung mechanischer Teile, sie enthält so die gleiche Information wie eine klassische Maschinenbauzeichnung. Während eine technische Zeichnung die Information in Form zweidimensionaler Abbildungen enthält, aus denen auf die dreidimensionale geometrische Form geschlossen werden kann, enthält die IGES-Datei dreidimensionale geometrische Modelle.

Seit 1984 werden die CAD-Objekt-Datei-Normen in der ISO behandelt. Der deutsche Beitrag heißt TAP (Transfer und Archivierung produktdefinierender Daten).

Der VDA (Verband der Automobilindustrie) und der VDMA (Verband Deutscher Maschinen- und Anlagenbau) entwickelten aus einem dringenden Bedarf heraus die Schnittstelle zur Übertragung von freien Oberflächen VDAFS (VDA-Flächenschnittstelle). Sie stellt für ein eng begrenztes Aufgabenspektrum eine funktionsfähige Lösung dar und wird daher auch eine DIN-Norm werden.

Neue Projekte

Die Computergrafiknormen beeinflussen stark die Normung auf angrenzenden Gebieten. Ein wichtiges neues Projekt ist die Einbeziehung von Grafik in Dokumentenarchitekturen-Normen zur Beschreibung, Speicherung, Übermittlung und Ausgabe von Dokumenten, bestehend aus Text und Grafik. Diese Normen werden im Grafikbereich GKS-kompatibel definiert.

Ein weiteres wichtiges Projekt ist die Normung von Fenstersystemen die zum Beispiel durch den Mikrocomputer Lisa in den Mittelpunkt des Interesses gerückt werden. Dafür wurden Vorarbeiten begonnen.

Neuerdings erfahren einige Normungsvorhaben eine starke Beschleunigung, verbunden mit der Stärkung des europäischen und deutschen Einflusses, durch begleitende geförderte Projekte. Hervorzuheben sind hier das Esprit-Projekt "CAD-Schnittstellen" und die vom BMFT geförderten Projekte des DFN (Verein Deutsches Forschungsnetz) zum Thema "Grafik in Rechnernetzen" das die Bereiche CGM, CGI, WSI und Grafik in Dokumenten bearbeitet.

Probleme mit der Finanzierung

In der Mehrzahl der anderen Projekte ist allerdings die mangelnde Unterstützung der ehrenamtlich tätigen Mitarbeiter bei der DIN-Normung grafischer Schnittstellen ein ständig drückendes Problem. Die international anerkannte deutsche Spitzenstellung in diesem Bereich droht dadurch verloren zu gehen. Es sind so elementare Dinge wie die Deckung von Reisekosten zu internationalen ISO-Koordinierungstreffen oder von Kopier- und Portokosten, die die deutsche Wissenschaft auf einem Gebiet zurückwerfen, wo sie führend ist. Vor allem die deutsche Informatik-Normungsstelle DIN-NI (Normenausschuß Informationsverarbeitungssysteme des Deutschen Instituts für Normung) kann wegen Personal- und Geldmangels nur eine sehr ungenügende Unterstützung für diese wichtigen Arbeiten bieten.

+Dr. Günter Enderle, SEL AG, Stuttgart