[net.micro] Graphics standard needed

Boebert.NSP@hi-multics@sri-unix.UUCP (09/09/83)

I am currently working on a proposal for a system which produces
graphics output.  The output is to be the results of scientific
calculations--curves in 2- and 3-space, and surfaces.  We wish to make
the system as device-independent as possible.  We are adopting the
obvious strategy of carrying pictures in some standard format and then
writing device-specific drivers.  Does anyone know of an existing or de
facto standard for the storage of such pictoral information?  Is there a
graphics chip that dominates the market to an extent that its repetiore
is the effective standard?  Any and all ideas welcome.

Earl

brucec@tekecs.UUCP (Bruce Cohen) (09/26/83)

Ah, yes, graphic standards.  At the moment the only standard for the
storage of pictorial information is IGES (ANSI Y14 something or other)
which has to do with the form of data for interchange of CAD
information.  I don't think that that's what you are talking about
though.

There is a standard for graphics software interface, called GKS.  It
is currently an ISO (international) standard, and an American version
is about to become a standard.  Unfortunately, it is intended to be a
subroutine package interface, so that's not what you need either.
ANSI is working on something called the Virtual Device Metafile (VDM),
which is an interchange standard for graphic (pictorial) data.  It is
intended to support GKS, as a storage and communication medium for
images defined using GKS.  The standard contains a binary encoding,
useful for files and parallel interfaces, and a character encoding,
useful for transmission over communications channels (such as uucp).
VDM is now being voted on to see whether it is ready to go out for
public review, so unless disaster befalls it, it should be standard
by sometime early next year.

Regrettably, GKS and VDM are two-dimensional graphics interfaces,
intended largely for plotting and drawing applications rather than
solids or surface modeling.  SIGGRAPH Core is an interface which
includes 3D, but is not really a standard (the thirty or so
implementations available are all mutually incompatible in some way or
other), and the metafile proposal for it leaves something to be
desired.

For what its worth, here are sources for information on these
standards:

	Core - "Status Report of the Graphic Standards Planning
	Committee" published as Vol. 13, #3 of Computer Graphics by
	ACM SIGGRAPH

	GKS and VDM -	Barry Shepherd
			Vice Chair, ANSI X3H3
			Committee on Computer Graphics
			IBM Corp.
			445/050-2
			Highway 52 and NW 37th Street
			Rochester, MN 55901
			phone (507) 286-5543

As for the question on de facto standard chips: take my advice and
DON'T.  There is one VLSI graphics controller available now (the NEC
7220, aka Intel 82720), but it's not just brain-damaged, it's
quadreplegic.  I have served as software consultant to two graphic
controller hardware projects in the last year, and in both cases,
after analyzing the kinds of graphics to be done, and doing estimates
of the performance of software to replace the 7220, I advised that the
designers dump the chip and use the software instead.  The software
turns out to be faster for any really useful graphics.

I know of at least three other chips which will be on the market in the
near future, and at least five much more powerful ones being worked on.
None of these chips looks much like any of the others, so don't look to
them for some sort of interface standard.  Even if you have to roll
your own interface standard, you're better off having one which
reflects the graphics you have to draw rather than the drawing the
hardware is good at.

				Bruce Cohen
				UUCP:	...!teklabs!tekecs!brucec
				CSNET:	tekecs!brucec@tektronix
				ARPA:	tekecs!brucec.tektronix@rand-relay

rld@pyuxnn.UUCP (09/28/83)

Please pardon my ignorance, but isn't the AT&T-blessed NAPLPS
a "standard" for data representation of graphics images
(and called a "protocol" by some, but since its only one-way I wouldn't.)?

>>>>> Bob Duncanson, AT&T Bell Laboratories, eagle!pyuxnn!rld <<<<<

brucec@tekecs.UUCP (Bruce Cohen) (10/01/83)

I would not call NAPLPS a *graphic* standard.  Rather it is an image
or picture communication standard.  The difference is not trivial.
Graphic standards or would-be standards to date have been attempts to
provide a standard method of describing an abstract set of objects in
an abstract graphic coordinate space, using some fairly universal set of
primitive operations like line, curve, etc.  These abstractions were
deliberately as device-independent as the designers of the standard
could make them.  Thus GKS or Core can be displayed on plotters,
directed beam tubes, DVSTs, or raster displays.  Also, the standards
try to deal with the sorts of abstractions that the application
programs running on them use.  Thus you can deal with relatively ideal
lines of (near) zero thickness, etc.  Editing graphics is easy, in
general.  To take out a line from a graphic object, remove the
description of the line from the list of graphic primitives in the
object.

NAPLPS is a device-dependent drawing protocol kludged onto the standard
techniques for transmitting character-coded alphanumeric and terminal
control information.  The resultant pictures are inherently raster
oriented, are described in a pixel space, rather than a
device-independent coordinate space, and suffer from the same sorts of
side-effects as terminal control codes (relationship to the cursor,
scrolling, protected text areas, etc.)  Editing is highly complicated
by the admixture of characters and graphics, by the complicated parsing
required to determine the meaning of a given character, and by the
side-effects.

My point is not that NAPLPS is a bad standard (though I have some
reservations about parts of it), but that it was not designed for use
as a standard interface to graphic utilities, or as a standard
description language for building and editing images.  Rather, it was
designed for the efficient transmission of already created pictures.
The typical operation of a videotex system, which is what NAPLPS was
developed for, is to fetch a data stream representing a picture from a
database, and send it to a terminal.

				Bruce Cohen
				UUCP:	...!teklabs!tekecs!brucec
				CSNET:	tekecs!brucec@tektronix
				ARPA:	tekecs!brucec.tektronix@rand-relay