PHIGS (Programmer's Hierarchical Interactive Graphics System) is an
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
(API) standard for rendering
3D computer graphics
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
, considered to be the 3D graphics standard for the 1980s through the early 1990s. Subsequently, a combination of features and power led to the rise of
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
, which became the most popular professional 3D API of the mid to late 1990s.
Large vendors typically offered versions of PHIGS for their platforms, including DEC PHIGS, IBM's graPHIGS and Sun's SunPHIGS. It could also be used within the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
, supported via PEX. PEX consisted of an extension to X, adding commands that would be forwarded from the X server to the PEX system for rendering. Workstations were placed in windows typically, but could also be forwarded to take over the whole screen, or to various printer-output devices.
PHIGS was designed in the 1980s, inheriting many of its ideas from the
Graphical Kernel System
The Graphical Kernel System (GKS) was the first ISO standard for low-level computer graphics, introduced in 1977. A draft international standard was circulated for review in September 1983.
Final ratification of the standard was achieved in 1985. ...
(GKS) of the late 1970s, and became a standard by 1988:
ANSI
The American National Standards Institute (ANSI ) is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organi ...
(ANSI X3.144-1988),
FIPS (FIPS 153) and then
ISO
ISO is the most common abbreviation for the International Organization for Standardization.
ISO or Iso may also refer to: Business and finance
* Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007
* Iso ...
(ISO/IEC 9592 and ISO/IEC 9593). Due to its early gestation, the standard supports only the most basic 3D graphics, including basic geometry and meshes, and only the basic
Gouraud, "Dot", and
Phong shading for
rendering scenes. Although PHIGS ultimately expanded to contain advanced functions (including the more accurate Phong lighting model and Data Mapping), other features considered standard by the mid-1990s were not supported (notably
texture mapping
Texture mapping is a method for mapping a texture on a computer-generated graphic. Texture here can be high frequency detail, surface texture, or color.
History
The original technique was pioneered by Edwin Catmull in 1974.
Texture mapping ...
), nor were many machines of the era physically capable of optimizing it to perform in real time.
Technical details
The word "hierarchical" in the name refers to a notable feature of PHIGS: unlike most graphics systems, PHIGS included a
scene graph
Scene (from Greek σκηνή ''skēnḗ'') may refer to:
Arts, entertainment, and media Music
*Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers
* The Scene who recor ...
system as a part of the basic standard. Models were built up in a Centralized Structure Store (CSS), a database containing a "world" including both the drawing ''primitives'' and their ''attributes'' (color, line style, etc.). CSSes could be shared among a number of virtual devices, known under PHIGS as ''workstations'', each of which could contain any number of ''views''.
Displaying graphics on the screen in PHIGS was a three-step process; first the model would be built into a CSS, then a workstation would be created and opened, and finally the model would be connected to the workstation. At that point the workstation would immediately render the model, and any future changes made to the model would instantly be reflected in all applicable workstation views.
PHIGS originally lacked the capability to render illuminated scenes, and was superseded by ''PHIGS+''. PHIGS+ works in essentially the same manner, but added methods for lighting and filling surfaces within a 3D scene. PHIGS+ also introduced more advanced graphics primitives, such as
Non-uniform rational B-spline
Non-uniform rational basis spline (NURBS) is a mathematical model using basis splines (B-splines) that is commonly used in computer graphics for representing curves and surfaces. It offers great flexibility and precision for handling both analy ...
(NURBS) surfaces. An ad hoc ANSI committee was formed around these proposed extensions to PHIGS, changing its name to the more descriptive and (optimistically) extensible name "PHIGS PLUS" -- "PLUS" being a slightly tongue-in-cheek acronym for "Plus Lumière Und Surfaces" (the two major areas of advancement over the base PHIGS standard).
The rise of OpenGL and the decline of PHIGS
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
, unlike PHIGS, was an
immediate-mode rendering system with no "state"; once an object is sent to a view to be rendered it essentially disappears. Changes to the model had to be re-sent into the system and re-rendered, a dramatically different programming mindset. For simple projects, PHIGS was considerably easier to use and work with.
However, OpenGL's "low-level" API allowed the programmer to make dramatic improvements in rendering performance by first examining the data on the
CPU-side before trying to send it over the bus to the graphics engine. For instance, the programmer could "cull" the objects by examining which objects were actually visible in the scene, and sending only those objects that would actually end up on the screen. This was kept private in PHIGS, making it much more difficult to tune performance, but enabling tuning to happen "for free" within the PHIGS implementation.
Given the low performance systems of the era and the need for high-performance rendering, OpenGL was generally considered to be much more "powerful" for 3D programming. PHIGS fell into disuse. Version 6.0 of the PEX protocol was designed to support other 3D programming models as well, but did not regain popularity. PEX was mostly removed from
XFree86
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free and open source software under the X ...
4.2.x (2002) and finally removed from the X Window System altogether in X11R6.7.0 (April 2004).
Standards
ISO
* ISO/IEC 9592 ''Information technology – Computer graphics and image processing – Programmer's Hierarchical Interactive Graphics System (PHIGS)''
** ISO/IEC 9592-1:1997 ''Part 1: Functional description''
** ISO/IEC 9592-2:1997 ''Part 2: Archive file format''
** ISO/IEC 9592-3:1997 ''Part 3: Specification for clear-text encoding of archive file''
* ISO/IEC 9593 ''Information technology – Computer graphics – Programmer's Hierarchical Interactive Graphics System (PHIGS) language bindings''
** ISO/IEC 9593-1:1990 ''Part 1: FORTRAN''
** ISO/IEC 9593-3:1990 ''Part 3: ADA''
** ISO/IEC 9593-4:1991 ''Part 4: C''
See also
*
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", ...
Notes
References
comp.windows.x.pex FAQ(28 March 1994)
(actually PHIGS+)
External links
Open_Source_Implementation_of_PHIGS_using_OpenGL.html" ;"title="OpenGL">Open Source Implementation of PHIGS using OpenGL
">OpenGL">Open Source Implementation of PHIGS using OpenGL
{{List of International Electrotechnical Commission standards
3D scenegraph APIs
American National Standards Institute standards
Graphics libraries
Graphics standards
ISO standards
X-based libraries