Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
PHIGS
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|API standard for rendering 3D computer graphics, commonly used in the 1980s–early 1990s}} {{Infobox standardref | title = Programmer's Hierarchical Interactive Graphics System | status = Published | year_started = {{Start date and age|1988}} | version = ISO/IEC 9592 and ISO/IEC 9593 | versionDate = {{Start date|1997}} and {{Start date|1990}}/{{Start date|1991}} | organization = [[American National Standards Institute|ANSI]], [[Federal Information Processing Standards|FIPS]], [[International Organization for Standardization|ISO]], [[International Electrotechnical Commission|IEC]] | related_standards = ANSI X3.144-1988, FIPS 153 | abbreviation = PHIGS | domain = [[3D computer graphics]] [[application programming interface]] | website = }} '''PHIGS''' ('''Programmer's Hierarchical Interactive Graphics System''') is an [[application programming interface]] (API) standard for rendering [[3D computer graphics]], 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]], 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]], supported via '''PEX'''.{{efn|PEX was originally known as the "PHIGS Extension to X"; subsequently referred to as "X3d", whose letters form a rotational variant on the letters "P-E-X"}} 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]] (GKS) of the late 1970s, and became a standard by 1988: [[ANSI]] (ANSI X3.144-1988), [[Federal Information Processing Standards|FIPS]] (FIPS 153) and then [[International Organization for Standardization|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 shading|Gouraud]], "Dot", and [[Phong shading|Phong]] shading for [[Rendering (computer graphics)|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]]), 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]] 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]] (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]], unlike PHIGS, was an [[Immediate mode (computer graphics)|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 [[Central processing unit|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]] 4.2.x (2002) and finally removed from the X Window System altogether in X11R6.7.0 (April 2004).<ref>{{cite web|url=https://lwn.net/Articles/79302/|title=X.Org Foundation releases X Window System X11R6.7}}</ref> ==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''<ref>{{cite web|url=https://www.iso.org/standard/29417.html|title=ISO/IEC 9592-1:1997|publisher=ISO|access-date=2017-10-14}}</ref> ** ISO/IEC 9592-2:1997 ''Part 2: Archive file format''<ref>{{cite web|url=https://www.iso.org/standard/29419.html|title=ISO/IEC 9592-2:1997|publisher=ISO|access-date=2017-10-14}}</ref> ** ISO/IEC 9592-3:1997 ''Part 3: Specification for clear-text encoding of archive file''<ref>{{cite web|url=https://www.iso.org/standard/29421.html|title=ISO/IEC 9593-1:1997|publisher=ISO|access-date=2017-10-14}}</ref> * ISO/IEC 9593 ''Information technology – Computer graphics – Programmer's Hierarchical Interactive Graphics System (PHIGS) language bindings'' ** ISO/IEC 9593-1:1990 ''Part 1: FORTRAN''<ref>{{cite web|url=https://www.iso.org/standard/17366.html|title=ISO/IEC 9593-1:1990|publisher=ISO|access-date=2017-10-14}}</ref> ** ISO/IEC 9593-3:1990 ''Part 3: ADA''<ref>{{cite web|url=https://www.iso.org/standard/17368.html|title=ISO/IEC 9593-3:1990|publisher=ISO|access-date=2017-10-14}}</ref> ** ISO/IEC 9593-4:1991 ''Part 4: C''<ref>{{cite web|url=https://www.iso.org/standard/17369.html|title=ISO/IEC 9593-4:1991|publisher=ISO|access-date=2017-10-14}}</ref> == See also == * [[OpenGL]] * [[Vulkan]] * [[DirectX]] ==Notes== {{notelist}} == References == *[https://web.archive.org/web/20050209211233/http://www.uni-giessen.de/faq/archiv/pex-faq/msg00000.html comp.windows.x.pex FAQ] (28 March 1994) *[https://web.archive.org/web/20121025055446/http://terrysmith.net/archives/collegehomepage/research/phigs/phigs.html An Introduction to PHIGS] (actually PHIGS+) {{reflist}} == External links == * [http://sourceforge.net/projects/phigs Open Source Implementation of PHIGS] using [[OpenGL]] {{ISO standards}} {{List of International Electrotechnical Commission standards}} [[Category:3D scenegraph APIs]] [[Category:American National Standards Institute standards]] [[Category:Graphics libraries]] [[Category:Graphics standards]] [[Category:ISO standards]] [[Category:X-based libraries]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Efn
(
edit
)
Template:ISO standards
(
edit
)
Template:Infobox standardref
(
edit
)
Template:List of International Electrotechnical Commission standards
(
edit
)
Template:Notelist
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)