PHIGS ( Programmer's Hierarchical Interactive Graphics System ) es un estándar de interfaz de programación de aplicaciones (API) para renderizar gráficos por computadora en 3D , considerado el estándar de gráficos en 3D desde la década de 1980 hasta principios de la de 1990. Posteriormente, una combinación de características y potencia llevó al surgimiento 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 suelen ofrecer versiones de PHIGS para sus plataformas, incluidos DEC PHIGS, graPHIGS de IBM y SunPHIGS de Sun. También podría usarse dentro del sistema X Window , compatible a través de PEX . [a] PEX consistía en una extensión de X, agregando comandos que serían reenviados desde el servidor X al sistema PEX para renderizar. Normalmente, las estaciones de trabajo se colocaban en ventanas, pero también se podían reenviar para ocupar toda la pantalla oa varios dispositivos de salida de impresora.
PHIGS fue diseñado en la década de 1980, heredando muchas de sus ideas del Graphical Kernel System (GKS) de finales de la década de 1970, y se convirtió en un estándar en 1989: 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, incluida la geometría y mallas básicas, y solo el sombreado básico de Gouraud , "Dot" y Phong para renderizar escenas. Aunque PHIGS finalmente se expandió para contener funciones avanzadas (incluido 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 optimizar que se realice en tiempo real.
Detalles técnicos
La palabra "jerárquica" en el nombre se refiere a una característica notable de PHIGS: a diferencia de la mayoría de los sistemas gráficos, PHIGS incluía un sistema de gráficos de escena como parte del estándar básico. Los modelos se construyeron en un Almacén de Estructura Centralizada (CSS), una base de datos que contiene un "mundo" que incluye tanto las primitivas de dibujo como sus atributos (color, estilo de línea, etc.). Los CSS se pueden compartir entre varios dispositivos virtuales, conocidos en PHIGS como estaciones de trabajo , cada uno de los cuales puede contener cualquier número de vistas .
Mostrar gráficos en la pantalla en PHIGS fue un proceso de tres pasos; Primero, el modelo se integraría en un CSS, luego se crearía y abriría una estación de trabajo y, finalmente, el modelo se conectaría a la estación de trabajo. En ese momento, la estación de trabajo representaría inmediatamente el modelo y cualquier cambio futuro realizado en el modelo se reflejaría instantáneamente en todas las vistas de la estación de trabajo aplicables.
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 superficies B-spline racionales no uniformes (NURBS). Se formó un comité ANSI ad hoc en torno a estas extensiones propuestas para PHIGS, cambiando su nombre por el nombre más descriptivo y (optimista) extensible "PHIGS PLUS" - "PLUS" es un acrónimo ligeramente irónico de "Plus Lumière Und Superficies "(las dos áreas principales de avance sobre el estándar básico PHIGS).
El auge de OpenGL y el declive de PHIGS
OpenGL , a diferencia de PHIGS, era un sistema de renderizado de modo inmediato sin "estado"; una vez que un objeto se envía a una vista para ser renderizado, esencialmente desaparece. Los cambios en el modelo tuvieron que ser reenviados al sistema y renderizados, una mentalidad de programación dramáticamente diferente. Para proyectos simples, PHIGS fue considerablemente más fácil de usar y trabajar.
Sin embargo, la API de "bajo nivel" de OpenGL permitió al programador realizar mejoras dramáticas en el rendimiento de la representación examinando primero los datos en el lado de la CPU antes de intentar enviarlos por el bus al motor gráfico. Por ejemplo, el programador podría "seleccionar" los objetos examinando qué objetos eran realmente visibles en la escena y enviando solo aquellos objetos que realmente terminarían en la pantalla. Esto se mantuvo en privado en PHIGS, lo que dificultaba mucho el ajuste del rendimiento, pero permitía que el ajuste se realizara "gratis" dentro de la implementación de PHIGS.
Dados los sistemas de bajo rendimiento de la época y la necesidad de un renderizado de alto rendimiento, generalmente se consideraba que OpenGL era mucho más "poderoso" para la programación 3D. PHIGS cayó en desuso. La versión 6.0 del protocolo PEX también fue diseñada para admitir otros modelos de programación 3D, pero no recuperó popularidad. PEX se eliminó principalmente de XFree86 4.2.x (2002) y finalmente se eliminó del sistema X Window por completo en X11R6.7.0 (abril de 2004). [1]
Estándares
YO ASI
- ISO / IEC 9592 Tecnología de la información - Procesamiento de imágenes y gráficos por computadora - Sistema de gráficos interactivos jerárquicos del programador (PHIGS)
- ISO / IEC 9593 Tecnología de la información - Gráficos por computadora - Vinculaciones de lenguaje del Sistema de gráficos interactivos jerárquicos del programador (PHIGS)
Ver también
Notas
- ^ PEX se conocía originalmente como la "Extensión PHIGS a X"; posteriormente denominado "X3d", cuyas letras forman una variante rotacional de las letras "PEX"
Referencias
- Comp.windows.x.pex FAQ (28 de marzo de 1994)
- Una introducción a PHIGS (en realidad PHIGS +)
- ^ "X.Org Foundation lanza X Window System 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 .