Open Inventor , originalmente IRIS Inventor , es un conjunto de herramientas de gráficos 3D en modo retenido orientado a objetos C ++ diseñado por SGI para proporcionar una capa superior de programación para OpenGL . Sus principales objetivos son una mayor comodidad y eficiencia del programador. Open Inventor existe como software propietario y el software libre y de código abierto , sujeto a los requisitos de la GNU Lesser General Public License (LGPL), versión 2.1.
Lanzamiento estable | 2.1.5.10 / 2003 |
---|---|
Repositorio | ![]() |
Tipo | Kit de herramientas de gráficos 3D |
Licencia | Licencia pública general reducida GNU [1] |
Sitio web | oss |
Historia temprana
Alrededor de 1988-1989, Wei Yen le pidió a Rikk Carey que dirigiera el proyecto IRIS Inventor. Su objetivo era crear un conjunto de herramientas que facilitara el desarrollo de aplicaciones de gráficos 3D. La estrategia se basó en la premisa de que la gente no estaba desarrollando suficientes aplicaciones 3D con IRIS GL porque consumía demasiado tiempo hacerlo con la interfaz de bajo nivel proporcionada por IRIS GL. Si la programación 3D fuera más fácil, mediante el uso de una API orientada a objetos, entonces más personas crearían aplicaciones 3D y SGI se beneficiaría. Por lo tanto, el credo siempre fue "facilidad de uso" antes que "rendimiento", y pronto el eslogan "programación 3D para humanos" se utilizó ampliamente.
Usar
OpenGL (OGL) es una interfaz de programación de aplicaciones de bajo nivel que toma listas de polígonos simples y los procesa lo más rápido posible. Para hacer algo más práctico como "dibujar una casa", el programador debe dividir el objeto en una serie de instrucciones OGL simples y enviarlas al motor para su renderización. Un problema es que el rendimiento de OGL es muy sensible a la forma en que estas instrucciones se envían al sistema, lo que requiere que el usuario sepa qué instrucciones enviar y en qué orden, y lo obliga a seleccionar cuidadosamente los datos para evitar enviar objetos que no están disponibles. t incluso visible en la imagen resultante. En el caso de programas simples, es necesario realizar una gran cantidad de programación para comenzar.
Open Inventor (OI) se escribió para abordar este problema y proporcionar una capa base común con la que empezar a trabajar. Los objetos pueden subclasificarse a partir de una serie de formas pre-enrolladas como cubos y polígonos, y luego modificarse fácilmente en nuevas formas. El "mundo" que se dibujará se colocó en un gráfico de escena ejecutado por OI, con el sistema aplicando el sacrificio de oclusión en los objetos del gráfico automáticamente. OI también incluyó una serie de objetos y sistemas de controlador para aplicarlos a la escena, facilitando las tareas de interacción comunes. Finalmente, OI también proporcionó un formato de archivo común para almacenar "mundos" y el código para guardar o cargar automáticamente un mundo a partir de estos archivos. Las aplicaciones 3D básicas se podrían escribir en unos pocos cientos de líneas debajo de OI, uniendo partes del juego de herramientas con código de "pegamento".
En el lado negativo, OI tendía a ser más lento que el código escrito a mano, ya que las tareas 3D son notoriamente difíciles de hacer que funcionen bien sin mezclar los datos en el gráfico de escena a mano. Otro problema práctico era que OI solo podía usarse con su propio formato de archivo, lo que obligaba a los desarrolladores a escribir convertidores hacia y desde el sistema interno.
Ejecutante
Aproximadamente un año después del proyecto Inventor, comenzó a surgir una filosofía diferente. En lugar de simplemente facilitar la escritura de aplicaciones en sistemas SGI, se cambió el objetivo para dificultar la escritura de aplicaciones lentas. Los miembros del equipo Inventor se fueron para formar su propio grupo, que fundó la base del proyecto OpenGL Performer . Performer también se basó en un gráfico de escena interno, pero se le permitió modificarlo para mejorar la velocidad a su antojo, incluso eliminando objetos y polígonos "menos importantes" para mantener niveles de rendimiento garantizados. Performer también usó una serie de procesos para ejecutar tareas en paralelo para un mayor rendimiento, lo que le permitió ejecutar (en una versión) en múltiples procesadores. A diferencia de Inventor, Performer siguió siendo propietario para que SGI tuviera la agilidad de modificar la API según fuera necesario para mantenerse al día con las últimas mejoras de hardware.
Mediados de la década de 1990
En algún momento a mediados de la década de 1990, se comprendió que no había ninguna buena razón por la que los dos sistemas no pudieran combinarse, lo que resultó en una única API de alto nivel con rendimiento y capacidad de programación. SGI comenzó a trabajar en otro proyecto destinado a fusionar los dos, que finalmente culminó en Cosmo 3D . Sin embargo, Cosmo tenía una serie de problemas prácticos que podrían haberse evitado con un mejor diseño.
Eventualmente, todas estas ideas se unirían para crear el esfuerzo de OpenGL ++ , junto con Intel , IBM y DEC . Esencialmente una versión limpia y más "abierta" de Cosmo 3D, el trabajo en Cosmo terminó y SGI se volvió a OpenGL ++ a tiempo completo. El esfuerzo de OpenGL ++ se prolongaría y eventualmente sería eliminado, y SGI volvió a intentarlo con Microsoft con el proyecto Fahrenheit similar , que también murió. En 1994, SGI concedió la licencia de Open Inventor a dos desarrolladores externos , Template Graphics Software (TGS) y Portable Graphics; en 1996 TGS compró Portable Graphics, convirtiéndolo en el único licenciatario.
Historia reciente
Después de muchos años de estar disponible únicamente bajo licencia propietaria de TGS, ahora FEI , Inventor ha sido lanzado bajo la licencia de código abierto LGPL , en agosto de 2000, que está disponible en SGI.
Aproximadamente al mismo tiempo, la empresa SIM (Systems in Motion) lanzó una biblioteca de clones de API llamada Coin3D . Posteriormente, SIM fue adquirida por el grupo Kongsberg y renombrada como Kongsberg SIM . La biblioteca Coin se había escrito en una sala limpia desde cero, sin compartir código con la biblioteca SGI Inventor original, pero implementando la misma API por razones de compatibilidad. Kongsberg finalizó el desarrollo de Coin3D en 2011 [2] y lanzó el código bajo la licencia BSD de 3 cláusulas.
La versión de código abierto de SGI no se mantiene actualmente y SGI no ha mostrado ningún compromiso para seguir desarrollando la biblioteca. Sin embargo, la versión de código abierto se utiliza en MeVisLab (MeVis Medical Solutions AG y Fraunhofer MEVIS) y su desarrollo continúa. [3]
Thermo Scientific abierto Inventor todavía está prosperando, bajo desarrollo activo y ha añadido numerosas mejoras a la API inventor original específicamente para las imágenes médicas , la computación de imágenes médicas , 3D sismología de reflexión , y el yacimiento petrolífero de modelado.
La API de Open Inventor todavía se usa comúnmente para una amplia gama de sistemas de visualización científicos y de ingeniería en todo el mundo, y ha demostrado estar bien diseñada para el desarrollo eficaz de software de aplicación 3D complejo.
Desarrollador (es) | Thermo Fisher Scientific |
---|---|
Lanzamiento estable | 10.0 / 10 de octubre de 2018 |
Repositorio | ![]() |
Escrito en | C ++ .NET Java |
Plataforma | Windows Linux macOS |
Tipo | SDK de visualización de datos 3D |
Licencia | Software comercial patentado (gratuito para uso académico no comercial) |
Sitio web | ThermoFisher .com / OpenInventor |
En 2004, TGS fue adquirida por Mercury Computer Systems , y en junio de 2009, la entidad se convirtió en una empresa independiente nuevamente llamada Visualization Sciences Group (VSG) . En 2012, VSG fue adquirida por FEI Company . En 2016, FEI Company fue adquirida por Thermo Fisher Scientific (División de Análisis de Materiales y Estructuras), que continúa desarrollando y respaldando Open Inventor .
Referencias
- ^ "SGI - Developer Central Open Source - Open Inventor" .
- ^ "Coin3D / Coin / wiki / Inicio - Github" . 30 de marzo de 2020.
- ^ MeVisLab
enlaces externos
- Sitio oficial de SGI Open Inventor
- Thermo Scientific Open Inventor , implementación comercial de la API
- Abrir foro de usuarios de Inventor
- Coin3D , implementación independiente de la API