Inventor (bibliothèque logicielle)

Un article de Wikipédia, l'encyclopédie libre.

Inventor est une bibliothèque logicielle développée à l'origine par la société Silicon Graphics 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

[modifier] Historique

[modifier] 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 graphique 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 application 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.

[modifier] 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 oeuvre 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 du être disponible au début de l'an 2000. Toutefois, ce projet est également resté inachevé.

[modifier] Depuis l'an 2000

Parrallè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.

A l'heure actuelle, les versions de Mercury et SIM sont les seules activement maintenues.

[modifier] 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ésent 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écanisme de contrôle des objets visant à faciliter les interactions basiques avec la scène. Enfin, Inventor fournit également sous 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.

[modifier] Voir aussi

[modifier] Implémentations d'Inventor

[modifier] Liens externes