Graphics Standards

Copyright (c) Susan Laflin. August 1999.

G.K.S. was the first and most successful attempt to design an international standard for computer graphics. The original German title becomes "Graphical Kernel System" when translated into English or American, which luckily preserves the same initials. It is a two-dimensional system (since most if not all graphics output appears on two-dimensional screens or plotter paper) and assumes that software for the more complex three-dimensional pictures will be designed to surround the kernel. It has received approval from the International Standards Organisation (I.S.O.) and is fully documented. Software written to run on one certified implementation of GKS should run without alteration on any other.

Following the acceptance of GKS as an international standard, work commenced on two related standards, namely CGI and CGM. The "Computer Graphics Interface" provides a low-level standard between the actual hardware and GKS and specifies how device-drivers should be written. This is described fully in the text by Arnold and Bono (ref 10). The "Computer Graphics Metafile" is used to transfer graphics segments from one computer system to another. This is described in references 10 and 11.

In March 1989, the annual conference of the UK Chapter of Eurographics was held at Manchester. One of the highlights of this conference was a demonstration of the use of the Computer Graphics Metafile to transfer information between many different configurations of hardware and software. This proved beyond argument that all three versions of CGM were now implemented and that pictures could be transferred quickly and accurately between many different software packages and the results displayed on a wide variety of output devices. Some minor problems remained, relating to points not defined by CGM. For example, all systems had assumed linestyle No.1 was a solid line and so there were no surprises here, but the choice of colour was far from unanimous and pictures would often change colour when they arrived at a new system. This could easily be reset by the receiving system, provided they were given information about the colours needed, the only major problem being the section which was drawn in black on black and so disappeared completely until the background colour was changed to grey. Then it reappeared in all its original detail.

Discussions began in 1986, concerning standards for three-dimensional graphics with 3D-GKS (an extension of GKS) and PHIGS (Programmers Hierarchical Interactive Graphics System) as the main contenders. Not surprisingly, the advocates of 3D-GKS are those who formulated the original GKS and now wish to provide a three-dimensional extension compatible with GKS. This is largely a European initiative. P.H.I.G.S. (which stands for Programmers Hierarchical Interactive Graphics System) is a mainly American invention and resembles the old SIGGRAPH Core in some respects. It claims compatibilty with GKS and so also has similaritites with this standard. The official I.S.O. viewpoint is that both these proposals form part of a set of compatible standards which will be used for different applications and hardware requirements. Program compatability should be achieved via a processor, PHI-GKS, which will allow for exchange of software between the two systems. By 1988, the specifications for both 3D-GKS and PHIGS were at an advanced stage and at the 1988 Eurographics conference, it was announced that the first five-year review of GKS was about to start.

Although many ideas are common to both GKS and the Core, there are a few important differences. For example, in GKS all parts of the drawing are defined in terms of world coordinates and the concept of "current cursor position" is completely omitted. Consequently GKS has no MOVE command to move the cursor (or the pen on the plotter) to a new position nor does it have any commands for moving or drawing relative to the current cursor position. This may seem strange to some of you who are familiar with certain home computers, but in fact it is no handicap once you have become used to designing graphics software with GKS in mind.

Let us consider what is needed for a three dimensional graphics structure. Firstly, within the two and three dimensional systems, we have essentially one-dimensional entities. These are "polyline", "polymarker" and "polysmooth" (or whatever we use to denote a smooth curve through a set of points). In two dimensions, these lie within a plane, while in three dimensions they need not do so. The two-dimensional case can be regarded as the z=0 plane, and so these points have coordinates [x,y,0] in three dimensions.

Secondly we have the area or two-dimensional entities. In GKS, these are "fill-area" and "cell-array". "Fill-area" is the area surrounded by a closed polygon and has obvious similarities to "polyline". We could also postulate a "Fill-curve" entity whose boundary consists of one or more smooth curves. Both of these would be flat areas in the z=0 plane in the three-dimensional case.

The "cell-array" entity provides a mechanism for storing pixel values in a two-dimensional array. This can be mapped onto a rectangular area on the screen, provided the sides of the rectangle are parallel to the coordinate axes and the size of the area is large enough for each element of the array to map on to one or more pixels in the output device. This may either be regarded as a rectangular area in the z=0 plane, or an area in the flat output device.

The "fill-area" or "fill-curve" entities in two-dimensions may be generalised into their three-dimensional equivalents. The "fill-area", being bounded by straight lines, should probably remain as the interior of a plane polygon, but should be at any angle and so allow the use of many plane facets to build up the boundary of a volume. The smooth-curve version, here called "fill-curve", should refer to an area on any curved surface and can again be used to build up the boundary of a volume.

The three-dimensional equivalent of "cell-array" is a three-dimensional array of voxels (possibly called "voxel-array") and these are widely used in the Cellular Methods of Geometric Modelling.

Finally we come to truely three-dimensional entities, i.e. the volumes within any of the boundaries described above. These may be generated as volumes from the Half-space methods or as all points in the interior of a specified boundary as produced by the Boundary-representation methods of geometric modelling.

By the mid 1990s, effort on standards had moved from standards in graphics to those for image formats and complete documents including pictures, sound and moving images. The effort of getting a standard through all the procedures for its acceptance by ISO is too large in such a fast-moving field. It should settle down shortly and then ISO standards should become available.