3-7  GRAPHICS AND VISUALIZATION 
 *******************************
(Thanks to Andery Sigalov for the information and useful comments) 

 It is rarely sufficient to display computation results in a printed 
 table or some similar way. Sometimes the volume of the results is 
 very large, usually they are the values of a scalar or vector field 
 in one, two, or three dimensions.

 In almost every case you need to display the results in a way suitable 
 for visual analysis.

 Directly controlling display devices is difficult, display devices 
 are complex, the documentation needed for writing programs that 
 control them is difficult to get, you may need to work with more 
 than one display device (for example a terminal and a printer).

 Another problem is that just writing a point or a line on the display 
 device is not enough, you have to draw frames, axes, tic marks, varied 
 size text. If you need to display your data with contour lines or 
 three dimensional surfaces you have to do a lot of complicated computing.

 you should call graphical routines from your program, or write the 
 results to a file that will be read by an interactive graphics program.


 Practical classification of graphical software
 ----------------------------------------------
    Graphical environments
       Complete software systems, integrated with the operating system, 
       that can manage windows on the screen, perform graphical I/O for
       all the windows/processes (draw on the screen, get input from the 
       keyboard and mouse), possibly handle communication over the network,
       and of course provide a graphical library that can be accessed by 
       user programs. Various utility programs may also be included.       
       (X-windows, Microsoft Windows).

    Basic 2D graphics libraries
       Graphical libraries that provide routines for drawing simple 2D
       geometric shapes (also called objects, primitives), e.g. lines 
       circles, 
       (GKS, Xlib).

    Basic 3D graphics libraries
       Graphical libraries that provide routines for drawing simple 3D
       objects ... 
       (GL, Open GL, Phigs)

    2D widget libraries 
       Provide routines that create and operates widgets - graphical
       objects used for interactive control and data input, e.g. dials,
       sliding buttons etc.
       (MOTIF)

    High level libraries 
       Provide routines for 3D graphics and widgets and in addition 
       also routines for visual data processing (contours, vector-fields)
       (Inventor, AVS/Express, DISPLA)

    Visualization libraries
          EXPLORER, AVS, ToolMaster


   Overview of graphical software
   ==============================

    Name         |  Description                  |  Originating     | Popul
                 |                               |  organization    | arity
  ---------------|-------------------------------|------------------|--------
   CGI           | Interface 2D (?)              | ISO (1991)       |  0
  ---------------|-------------------------------|------------------|--------
   X-windows     | Low-level 2D environment      | MIT X-consortium |  5
                 | contains the Xlib library     |                  |
  ---------------|-------------------------------|------------------|--------
   WIN32 API     | Low-level 2D library          | Microsoft        |  5
  ---------------|-------------------------------|------------------|--------
   GKS (Graphics | "classic" 2D library          | ISO (1985)       |  3
   kernel system |                               |                  |
  ---------------|-------------------------------|------------------|--------
   GKS/3D        | "primitive" 3D library        | ISO (1988)       |  0
  ---------------|-------------------------------|------------------|--------
   PHIGS         | Old 3D library, list directed | ISO (1989)       |  3
  ---------------|-------------------------------|------------------|--------
   PHIGS PLUS    | PHIGS + lighting control      | ISO (1992)       |  3
  ---------------|-------------------------------|------------------|--------
   PEXlib        | 3D extension to Xlib          | MIT X-consortium |  2 
  ---------------|-------------------------------|------------------|--------
   OpenGL        | Advanced 3D library,          | consortium       |  5
                 | window-system independent     | developed by SGI |
  ---------------|-------------------------------|------------------|--------
   PostScript    | 2D page description language  | Adobe            |  5
  ---------------|-------------------------------|------------------|--------
   CGM           | "classic" 2D metafile         | ISO (1992)       |  3
  ---------------|-------------------------------|------------------|--------
   Open Inventor | Advanced 3D Object Oriented   | consortium       |  3
                 | toolkit, based on OpenGL      | licensed by SGI  |  
  ---------------|-------------------------------|------------------|--------
   VRML          | 3D interactive format         | consortium       |  3
  ---------------|-------------------------------|------------------|--------


 It would be impossible to recommend here a graphical package, there
 are so many of them, and anyway you usually have what someone else
 decided to purchase.

 Three remarks may still have some value:

   Silicon Graphics has nice libraries, the low-level OpenGL and the
   high-level Inventor. Their interactive program is called Explorer.

   AVS from AVS/UNIRAS is a very popular interactive program.

   GNUPLOT is a simple FREE interactive program, works on lots 
   of display devices and comes with source code!


 Visualization is a rapidly developing field, it is highly recommended 
 to consult experts before embarking on a new project. To get more 
 information you may send mail to:  andrey@cc.huji.ac.il


   Evolutionary tree for graphics libraries 
   ========================================

      GKS                                                   
      1985                                                  
       |                             Xlib              
     GKS3D                           1987               GL  
     1988        PHIGS         _______|_______         1988
                 1989          |             |          |
                  |           PEX            |          |
                  |           1990           |          |
              PHIGS PLUS       |             |          |        CGI        
                 1992          |             |          |        1991
                  |____________|             |        OpenGL
                         |                   |         1993
                       PEXlib              Xlib         |
                        1994               1994       OpenGL
                                                  Open Inventor
                                                       VRML
                                                       1995


Return to contents page