PHIGS ( Programmer's Hierarchical Interactive Graphics System ) es un estándar de interfaz de programación de aplicaciones (API) para la renderización de gráficos 3D por computadora , considerado el estándar de gráficos 3D desde la década de 1980 hasta principios de la de 1990. Posteriormente, una combinación de características y potencia propició el auge de OpenGL , que se convirtió en la API 3D profesional más popular de mediados a finales de la década de 1990.
Los grandes proveedores solían ofrecer versiones de PHIGS para sus plataformas, incluyendo DEC PHIGS, graPHIGS de IBM y SunPHIGS de Sun. También podía utilizarse dentro del Sistema de Ventanas X , compatible mediante PEX . [ a ] PEX consistía en una extensión de X que añadía comandos que se reenviaban desde el servidor X al sistema PEX para su renderizado. Las estaciones de trabajo se ubicaban normalmente en ventanas, pero también podían reenviarse para ocupar toda la pantalla o a diversos dispositivos de salida de impresora.
PHIGS fue diseñado en la década de 1980, heredando muchas de sus ideas del Sistema de Núcleo Gráfico 2D (GKS) de finales de la década de 1970, y se convirtió en un estándar en 1988: ANSI (ANSI X3.144-1988), FIPS (FIPS 153) y luego ISO (ISO/IEC 9592 e ISO/IEC 9593). Debido a su gestación temprana, el estándar solo admite los gráficos 3D más básicos, incluyendo geometría y mallas básicas, y solo el sombreado básico de Gouraud , "Punto" y Phong para renderizar escenas. Aunque PHIGS finalmente se expandió para incluir funciones avanzadas, incluyendo el modelo de iluminación Phong más preciso y el mapeo de datos, otras características consideradas estándar a mediados de la década de 1990 no eran compatibles, en particular el mapeo de texturas , ni muchas máquinas de la época eran físicamente capaces de optimizarlo para funcionar en tiempo real.
Detalles técnicos
La palabra "jerárquico" en el nombre hace referencia a una característica notable de PHIGS: a diferencia de la mayoría de los sistemas gráficos, PHIGS incluía un sistema de grafo de escena como parte del estándar básico. Los modelos se creaban en un Almacén de Estructura Centralizado (CSS), una base de datos que contenía un "mundo" que incluía tanto las primitivas de dibujo como sus atributos (color, estilo de línea, etc.). Los CSS podían compartirse entre varios dispositivos virtuales, conocidos en PHIGS como estaciones de trabajo , cada uno de los cuales podía contener cualquier número de vistas .
La visualización de gráficos en pantalla en PHIGS era un proceso de tres pasos: primero, se creaba el modelo en una hoja de estilo CSS; luego, se creaba y abría una estación de trabajo; y finalmente, se conectaba el modelo a la estación de trabajo. En ese momento, la estación de trabajo renderizaba el modelo de inmediato, y cualquier cambio posterior se reflejaba instantáneamente en todas las vistas correspondientes de la estación de trabajo.
PHIGS originalmente carecía de la capacidad de renderizar escenas iluminadas y fue reemplazado por PHIGS+ . PHIGS+ funciona esencialmente de la misma manera, pero agregó métodos para iluminar y rellenar superficies dentro de una escena 3D. PHIGS+ también introdujo primitivas gráficas más avanzadas, como las superficies NURBS ( Non-uniform rational B-spline ). Se formó un comité ad hoc de ANSI en torno a estas extensiones propuestas para PHIGS, cambiando su nombre al nombre más descriptivo y (optimistamente) extensible de "PHIGS PLUS", siendo "PLUS" un acrónimo ligeramente irónico de "Plus Lumière Und Surfaces" (Más luz y superficies) (las dos áreas principales de avance con respecto al estándar base PHIGS).
El auge de OpenGL y el declive de PHIGS
OpenGL , a diferencia de PHIGS, era un sistema de renderizado en modo inmediato sin "estado"; una vez que un objeto se enviaba a una vista para su renderizado, prácticamente desaparecía. Los cambios en el modelo debían enviarse nuevamente al sistema y renderizarse de nuevo, lo que implicaba una mentalidad de programación radicalmente diferente. Para proyectos sencillos, PHIGS era considerablemente más fácil de usar y manejar.
Sin embargo, la API de bajo nivel de OpenGL permitía al programador mejorar drásticamente el rendimiento de renderizado al examinar primero los datos en la CPU antes de enviarlos al motor gráfico. Por ejemplo, el programador podía filtrar los objetos analizando cuáles eran realmente visibles en la escena y enviando solo aquellos que aparecerían en pantalla. Esta funcionalidad se mantenía privada en PHIGS, lo que dificultaba la optimización del rendimiento, pero permitía realizarla de forma automática dentro de la implementación de PHIGS.
Dado el bajo rendimiento de los sistemas de la época y la necesidad de renderizado de alto rendimiento, OpenGL se consideraba generalmente mucho más "potente" para la programación 3D. PHIGS cayó en desuso. La versión 6.0 del protocolo PEX se diseñó para admitir también otros modelos de programación 3D, pero no recuperó popularidad. PEX se eliminó casi por completo de XFree86 4.2.x (2002) y finalmente se eliminó del X Window System por completo en X11R6.7.0 (abril de 2004). [ 1 ]
Estándares
ISO
- ISO/IEC 9592 Tecnología de la información – Gráficos por ordenador y procesamiento de imágenes – Sistema gráfico interactivo jerárquico para programadores (PHIGS)
- ISO/IEC 9593 Tecnología de la información – Gráficos por computadora – Enlaces de lenguaje del sistema gráfico interactivo jerárquico para programadores (PHIGS)
Véase también
Notas
- ↑ PEX se conocía originalmente como la "Extensión PHIGS a X"; posteriormente se la denominó "X3d", cuyas letras forman una variante rotacional de las letras "PEX".
Referencias
- Preguntas frecuentes sobre comp.windows.x.pex (28 de marzo de 1994)
- Introducción a PHIGS (en realidad PHIGS+)
- ↑ "La Fundación X.Org lanza el sistema X Window X11R6.7" .
- ↑ "ISO/IEC 9592-1:1997" . ISO . Consultado el 14 de octubre de 2017 .
- ↑ "ISO/IEC 9592-2:1997" . ISO . Consultado el 14 de octubre de 2017 .
- ↑ "ISO/IEC 9593-1:1997" . ISO . Consultado el 14 de octubre de 2017 .
- ↑ "ISO/IEC 9593-1:1990" . ISO . Consultado el 14 de octubre de 2017 .
- ↑ "ISO/IEC 9593-3:1990" . ISO . Consultado el 14 de octubre de 2017 .
- ↑ "ISO/IEC 9593-4:1991" . ISO . Consultado el 14 de octubre de 2017 .
Enlaces externos
- Implementación de código abierto de PHIGS usando OpenGL
- API de grafos de escena 3D
- Normas del Instituto Nacional Estadounidense de Estándares
- Bibliotecas gráficas
- Estándares gráficos
- Normas ISO
- Bibliotecas basadas en X