Articulo de referencia

Rendimiento de OpenGL

OpenGL Performer , anteriormente conocido como IRIS Performer y comúnmente llamado simplemente Performer , es un entorno de desarrollo de aplicaciones. [ 1 ] [ 2 ] Es una biblio...

OpenGL Performer , anteriormente conocido como IRIS Performer y comúnmente llamado simplemente Performer , es un entorno de desarrollo de aplicaciones. [ 1 ] [ 2 ] Es una biblioteca comercial de código de utilidad [ 3 ] construida sobre OpenGL con el propósito de habilitar aplicaciones de simulación visual en tiempo real estricto . OpenGL Performer fue desarrollado por SGI . OpenGL Performer está disponible para IRIX , Linux y varias versiones de Microsoft Windows . Hay disponibles enlaces tanto para ANSI C como para C++ .

Historia

Performer surgió en 1991 cuando un grupo del proyecto Open Inventor de SGI , entonces conocido como IRIS Inventor, decidió centrarse en el rendimiento en lugar de la facilidad de programación. Mientras que Inventor ofrecía objetos fáciles de usar y diversos elementos de interfaz de usuario para interactuar con ellos, Performer se centró en un sistema de grafo de escena que podía reorganizarse sobre la marcha por motivos de rendimiento, permitiendo que las distintas fases de una tarea de renderizado se ejecutaran en paralelo en múltiples hilos . Performer permitía que la escena describiera los niveles de detalle con bandas de histéresis y capacidades de desvanecimiento. Se monitorizaban la velocidad de fotogramas y las estadísticas, y se calculaba un factor de "estrés". Este factor podía utilizarse para ponderar aún más el nivel de detalle en la escena, eliminando detalles para mantener una velocidad de fotogramas objetivo.

Otras características clave de Performer fueron el uso de capacidades de multiprocesamiento simétrico , la compatibilidad con múltiples canales gráficos y la capacidad de utilizar los recursos escalables de sistemas de gama alta. En este sentido, Performer era sorprendentemente sencillo de usar dada su complejidad subyacente. El descarte y la renderización de aplicaciones podían ejecutarse en diferentes hilos, asignados a distintos procesadores físicos. En una configuración de múltiples canales (múltiples subsistemas gráficos), la renderización a cada canal gráfico tendría un hilo dedicado, y de forma similar, el descarte también tendría un procesador dedicado. Las funciones avanzadas, como la paginación de bases de datos, la paginación de texturas y la gestión de fuentes de luz puntuales (para simulación de vuelo), así como las pruebas de intersección para la detección de colisiones, también tendrían procesadores dedicados, lo que permitiría que la E/S y el procesamiento asíncronos se produjeran sin afectar negativamente al rendimiento gráfico. La mayor parte de esta complejidad estaba oculta bajo una API de grafo de escena más sencilla, con llamadas de configuración de nivel relativamente alto que permitían configurar los hilos y la comunicación entre procesos.

Performer no tenía un formato de archivo nativo, solo cargadores de complementos de terceros, como el cargador de formato OpenFlight de MultiGen . De igual manera, no tenía un entorno de ejecución predeterminado, solo código de ejemplo y la aplicación de ejemplo 'perfly', que se usaba y modificaba con frecuencia. Esto probablemente contribuyó a su reputación de ser difícil de usar.

A mediados de la década de 1990, se hizo evidente que no había razón para que Inventor y Performer no pudieran combinarse. Esto dio lugar al proyecto Cosmo 3D , con el que SGI pretendía desarrollar tanto Inventor como Performer (ahora esencialmente adaptadores de API ), además de promoverlo como una nueva API estandarizada de nivel superior para futuros trabajos en la plataforma SGI. Sin embargo, tras la primera versión beta de Cosmo 3D, SGI se asoció con Intel e IBM (y posteriormente con DEC ) para crear OpenGL++ , esencialmente una versión optimizada de Cosmo. Este proyecto fracasó cuando SGI centró su atención en un proyecto casi idéntico con Microsoft , conocido como Fahrenheit , que también fue cancelado. Hoy en día, Inventor y Performer siguen siendo productos independientes, y ninguna de las versiones combinadas llegó a ver la luz.

Características

Performer se compone principalmente de dos bibliotecas: la de bajo nivel libpr y la de alto nivel libpf. La biblioteca libpr proporciona una interfaz orientada a objetos para funciones de renderizado de alta velocidad basadas en los conceptos de pfGeoSet y pfGeoState . Un pfGeoSet es una colección de primitivas gráficas, como polígonos o líneas. Un pfGeoState encapsula propiedades relacionadas con un pfGeoSet dado, como la iluminación, la transparencia y el texturizado.

La biblioteca libpf incluye funciones para la generación y manipulación de grafos de escena jerárquicos, procesamiento de escenas (simulación, intersección, eliminación de objetos ocultos y tareas de dibujo), gestión del nivel de detalle, paginación asíncrona de bases de datos, sistemas de coordenadas dinámicos, modelos de entorno, puntos de luz, etc. Esta biblioteca también proporciona soporte transparente para múltiples ventanas gráficas distribuidas en múltiples pipelines gráficos.

Otras bibliotecas de Performer (libpfutil, libpfdb, libpfui, etc.) proporcionan funciones para generar geometría optimizada, conversión de bases de datos, entrada de dispositivos (como para la interfaz con flyboxes externos y buses multiplexores MIL-STD-1553 ), modelos de movimiento, modelos de colisión y una interfaz de base de datos independiente del formato que admite formatos de datos comunes como Open Inventor , OpenFlight , Designer's Workbench , Medit y archivos .obj de Wavefront .

Referencias

  1. "PROGRAMACIÓN DE ESCENÓGRAFOS CON OPENGL" (PDF) . Universidad HW . Consultado el 27 de marzo de 2025 .
  2. Chen, Ran (25 de noviembre de 2011). Actas de la Conferencia Internacional de Electricidad, Comunicación y Control Automático de 2011. Nueva York, NY: Springer Science & Business Media. pág. 1668. ISBN  978-1-4419-8849-2.
  3. "Capítulo 2. Conceptos básicos de OpenGL Performer" . TechPubs . 28 de marzo de 1968. Consultado el 27 de marzo de 2025 .
  • Página del producto OpenGL Performer
  • Guía de inicio rápido de OpenGL Performer
  • Guía del programador de OpenGL Performer
  • OpenGL Performer archivado el 1 de abril de 2010 en el código de ejemplo de Wayback Machine.
Obtenido de " https://en.wikipedia.org/w/index.php?title=OpenGL_Performer&oldid=1305435671 "