De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

OpenGL Performer , anteriormente conocido como IRIS Performer y comúnmente conocido simplemente como Performer , es una biblioteca comercial de código de utilidad construida sobre OpenGL con el propósito de habilitar aplicaciones de simulación visual en tiempo real. OpenGL Performer fue desarrollado por SGI, que continúa manteniéndolo y mejorándolo. OpenGL Performer está disponible para IRIX , Linux y varias versiones de Microsoft Windows . Tanto ANSI C y C ++ fijaciones están disponibles.

Historia [ editar ]

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 en la facilidad de programación. Mientras que Inventor entregó objetos fáciles de usar y varios elementos de la interfaz de usuario para interactuar con ellos, Performer se centró en un sistema de gráficos de escena que podría reorganizarse sobre la marcha por razones de rendimiento, lo que permite realizar las diversas pasadas de una tarea de renderizado en paralelo en varios hilos. El intérprete permitió que la escena describiera niveles de detalle con bandas de histéresis y capacidades de desvanecimiento. Se controlaron la velocidad de fotogramas y las estadísticas y se calculó un factor de "estrés". Esto podría usarse para ponderar aún más el nivel de detalle en la escena eliminando detalles para mantener una velocidad de cuadro objetivo.

Otras características clave de Performer fueron el uso de capacidades de multiprocesamiento simétrico , soporte para múltiples tuberías de gráficos y la capacidad de utilizar los recursos escalables de los sistemas de gama alta. En este sentido, Performer fue realmente fácil de usar dada la complejidad subyacente. La selección y el procesamiento de aplicaciones podrían ejecutarse en diferentes subprocesos bloqueados para diferentes procesadores físicos. En una configuración de múltiples tuberías (múltiples subsistemas de gráficos), la representación de cada tubería de gráficos tendría un subproceso dedicado y, de manera similar, la selección selectiva también tendría un procesador dedicado. Funciones avanzadas como paginación de bases de datos, paginación de texturas y gestión de fuentes de luz puntuales (para simulación de vuelo) y pruebas de intersección para detección de colisionestambién tendría procesadores dedicados que permitirían la E / S asíncrona y el procesamiento sin afectar negativamente el rendimiento de los gráficos. La mayor parte de esta complejidad estaba oculta debajo de una API de gráfico de escena más simple con llamadas de configuración de nivel relativamente alto que se podían realizar para configurar los hilos y la comunicación entre procesos.

Performer no tenía un formato de archivo nativo, simplemente cargadores de complementos de terceros, como el cargador de formato OpenFlight de MultiGen . De manera similar, no había un tiempo de ejecución predeterminado, había código de muestra y la aplicación de muestra 'perfly' que se usa con frecuencia y que se modifica a menudo. Esto probablemente contribuyó a su reputación de ser difícil de usar.

A mediados de la década de 1990, empezó a quedar claro que no había ninguna razón por la que Inventor y Performer no pudieran combinarse. Esto llevó al proyecto Cosmo 3D que SGI tenía la intención de construir Inventor y Performer (ahora esencialmente API shims ), así como promoverlo como una API estandarizada nueva y de mayor nivel para el trabajo futuro en la plataforma SGI. Sin embargo, después de la primera versión beta de Cosmo 3D, SGi se unió a Intel e IBM (y luego a DEC ) para crear OpenGL ++ , esencialmente una versión limpia de Cosmo. Este proyecto murió cuando SGI centró su atención en un proyecto casi idéntico al de Microsoft conocido como Fahrenheit., que también fue asesinado. Hoy en día, Inventor y Performer siguen siendo productos separados, y ninguna de las versiones combinadas vio la luz del día.

Funciones [ editar ]

Performer consta principalmente de dos bibliotecas: la libpr de nivel inferior y la libpf de nivel superior. La biblioteca libpr proporciona una interfaz orientada a objetos para funciones de renderizado de alta velocidad basadas en el concepto de un pfGeoSet y un pfGeoState . Un pfGeoSet es una colección de gráficos primitivos, como polígonos o líneas. Un pfGeoState encapsula las propiedades pertenecientes a 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 gráficos de escena jerárquicos, procesamiento de escenas (simulación, intersección, selección y tareas de dibujo), gestión de nivel de detalle, paginación de bases de datos asíncronas, sistemas de coordenadas dinámicas, modelos de entorno, puntos de luz, y así. Esta biblioteca también proporciona soporte transparente para múltiples ventanas gráficas distribuidas en múltiples tuberías de gráficos.

Otras bibliotecas de Performer ( libpfutil, libpfdb, libpfui, etc.) proporcionan funciones para generar geometría optimizada, conversión de base de datos, entrada de dispositivos (como para interactuar con flyboxes externos y buses mux 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 Wavefront .

Enlaces externos [ editar ]

  • Página del producto OpenGL Performer
  • Guía de introducción de OpenGL Performer
  • Guía para programadores de OpenGL Performer
  • Código de muestra de OpenGL Performer