- Inventor (bibliothèque logicielle)
-
Open Inventor est une bibliothèque logicielle développée à l'origine par la société Silicon Graphics (IRIS Inventor) pour permettre de gérer des graphes de scènes en trois dimensions. Cette bibliothèque, orientée objet et écrite en C++, est capable de gérer son propre format natif de description des scènes : le format Inventor considéré comme étant l'ancêtre de VRML (leurs syntaxes respectives sont d'ailleurs similaires).
Sommaire
Historique
Les débuts
C'est aux environs des années 1988-1989, que la société Silicon Graphics (SGI) lance le projet IRIS Inventor. L'objectif était de créer un outil facilitant le développement d'applications graphiques 3D. La stratégie était basé sur le fait que les développeurs ne concevaient pas assez d'applications 3D à l'aide d'OpenGL parce que cette bibliothèque renferme des primitives de programmation graphique de bas niveau, ce qui augmente d'autant le temps passé à développer. Si la programmation était facilitée, par le biais d'une bibliothèque orientée objet, alors plus de personnes créeraient des applications 3D et SGI, alors en position dominante sur le marché en bénéficierait.
Des licences tiers d'Inventor fut ultérieurement accordée aux sociétés TGS (Template Graphics Software) et Portable Graphics lorsqu'il fût décidé de renommer IRIS Inventor en OpenInventor. La première société ayant racheté la deuxième, TGS a commercialisé OpenInventor pendant des années avant d'être racheté par Mercury Computer Systems.
Dans le milieu des années 1990
SGI a essayé d'améliorer la bibliothèque par le biais de plusieurs projets. Tout d'abord, en fusionnant cette bibliothèque avec l'un de ses autres projets : OpenGL Performer, ce qui a donné Cosmo3D. Cette dernière bibliothèque a connu un succès mitigé en raison de plusieurs problèmes de mise en œuvre pratique.
SGI a alors approché Intel, IBM et DEC en vue de créer OpenGL++, une bibliothèque fournissant une couche orientée objet à OpenGL. Son développement s'est arrêté lorsque SGI a décidé de travailler en partenariat avec Microsoft au projet Fahrenheit visant à fusionner OpenGL et Direct3D. Annoncé officiellement en 1998, la première version aurait due être disponible au début de l'an 2000. Toutefois, ce projet est également resté inachevé.
Depuis l'an 2000
Parallèlement aux licences d'Inventor commercialisées par la société TGS, SGI a ouvert le code source d'OpenInventor en août 2000 sous licence LGPL. A la même époque, Systems in Motion (SIM) a distribué sa propre implémentation de OpenInventor, nommée Coin3D, sous une double licence : commerciale et GPL.
En 2004, TGS est racheté par la société américaine Mercury Computer Systems et devient la business unit "Visualization Sciences Group". En juin 2009, la société américaine Mercury Computer Systems se sépare de l'activité "Visualization Sciences Group" qui devient une entreprise à part entière. A l'heure actuelle, les versions de VSG - Visualization Sciences Group et SIM sont les seules activement maintenues.
Principe
OpenGL est une bibliothèque logicielle renfermant des primitives de bas niveau qui prend des listes de polygones et en effectue le rendu le plus rapidement possible. Pour, par exemple, dessiner une maison, le programmeur doit subdiviser l'objet en une série d'instructions OpenGL simple afin de les fournir au moteur de rendu. Un des problèmes est que les performances d'OpenGl sont sensibles à la manière dont les instructions sont ordonnées et envoyées, forçant les développeurs à préparer les données à envoyer attentivement pour éviter de dessiner des objets qui ne sont même pas présents dans l'image résultante. D'autre part, et ce également pour des scènes de faible complexité, un important effort de programmation est nécessaire, simplement pour débuter.
Inventor a été conçu pour résoudre ce problème et fournir un support de base facilitant la prise en main. Les objets peuvent hériter d'un certain nombre de formes pré-définies comme des cubes ou des polygones et ensuite les modifier en une nouvelle forme géométrique. Le monde à dessiner est alors placé dans un graphe de scène géré par Inventor qui va chercher à optimiser automatiquement la phase de rendu. Inventor incorpore également un certain nombre de mécanismes de contrôle des objets visant à faciliter les interactions basiques avec la scène. Enfin, Inventor fournit également son propre format de données pour décrire les graphes de scènes qui peut être importé et exporté à partir d'une application utilisant Inventor. Le résultat est que des applications graphiques 3D simples peuvent être écrites très facilement.
L'un des inconvénients d'Inventor est que le rendu tend à être plus lent qu'avec du code optimisé à la main, les scènes 3D étant notoirement difficiles à optimiser sans bouleverser manuellement l'ordre de rendu des données stockées dans le graphe de scène.
Voir aussi
Implémentations d'Inventor
- (en) OpenInventor 2.1.6, la version libre délivrée par Silicon Graphics,
- (en) OpenInventor 8.1, la version commerciale délivrée par VSG - Visualization Sciences Group (anciennement TGS),
- (en) Coin3D, implémentation libre réalisée par la société Systems In Motion
Liens externes
- (en) The Inventor Mentor[PDF], la référence de l'API Inventor.
Catégories :- Bibliothèque logicielle graphique
- 3D
Wikimedia Foundation. 2010.