2. Facilité d'utilisation
Le premier critère que nous considérerons en
terme de facilité d'utilisation est la portabilité :
ü DirectX n'est utilisable que sous Windows, et pour sa
dernière version (DirectX12) que sous les versions de Windows
supérieures à Win98.
ü Java3D quant à lui est développable sous
Solaris, SGI, HP-UX, Linux et Windows.
ü Quand à OpenGL, des implémentations
existent sur toutes les plateformes UNIX, sur les machines Windows, et MacOs,
ainsi que sous OS/2, OPENStep, AmigaOS, ou BeOS.
C'est donc OpenGL qui est la norme la plus disponible en
nombre de systèmes. DirectX12 est entièrement sous le
contrôle de Microsoft tandis que Java3D est développé par
SunMicrosystem, seul OpenGL dépend d'un consortium OpenGL Architecture
Review Board (appelé également ARB) composé par des
membres de différentes sociétés (notamment ATI, Nvidia,
IBM, Intel, Sun, 3DLabsMatrox ou Id-Software).
Si le fait d'être développé par une seule
entreprise permet d'accélérer les décisions (pas besoin de
décider d'un compromis entre différent partis), l'influence des
créateurs de cartes graphiques, ou de membres de l'industrie utilisant
OpenGL, au sein de l'ARB semble fournir une normalisation plus équitable
(la norme s'adaptant au possibilités techniques et aux besoins de
l'industrie). Le nombre de langages de programmation dans lequel une norme est
disponible influe également sur la facilité d'utilisation, le
programmeur préférant généralement
développer dans le langage qui lui est le plus familier.
DirectX comme précisé plus haut, est la
propriété de Microsoft, il n'existe donc qu'une seule
implémentation, et la norme se limite au langage C++, Visual Basic et
bien sûr C#. Java3D se présentant comme une extension de Java
n'est disponible qu'en Java.
Enfin OpenGL étant libre, de nombreuses
implémentations existent (parfois plusieurs implémentations pour
un même langage comme par exemple JOGL et JLWGL pour Java) rendant la
norme disponible en Ada, C, C++, Fortran, Python, Scheme, Perl et Java. Le
paradigme de programmation joue également beaucoup sur la
facilité d'utilisation d'une norme. OpenGL se présente comme
étant un ensemble de fonctions de bibliothèque (typiquement un
ensemble de bibliothèque à inclure et de fichier à lier
avec le programme), DirectX utilise le paradigme COM (Component Object Model),
développé par Microsoft, quand à Java3D, il utilise
évidement les capacités objets de Java, et un concept de
représentation d'une scène 3D propre à Java3D.
Chacun des paradigmes a ses avantages et ses
inconvénients, l'usage de fonctions de bibliothèque ou du
paradigme objet de java nous semble plus évident à apprendre,
mais un programmeur habitué au concept COM, préfèrera sans
doute utiliser ce paradigme. Enfin, la programmation d'un moteur 3D
étant généralement entourée par d'autres
fonctionnalités (son, réseau, entrée/sortie ...) ces
différentes fonctionnalités peuvent également influencer
le choix d'un outil. DirectX fournit en plus de DirectDraw et Direct3D, de
nombreuses bibliothèques annexes gérant différents aspects
de programmation (DirectSound, DirectInput, DirectPlay ...). OpenGL ne concerne
que le graphisme. Java3D profite quant à lui de la très riche API
java.
Bien compris les notions théoriques sur la
modélisation 3D, et là, nous venons de voir comment faire la
programmation 3D avec les différentes bibliothèques, ainsi que
les divers algorithmes qu'elle utilise ; nous devons nous mettre à
niveau de connaitre comment rendre palpable cette modélisation faite en
3D.
Le chapitre suivant sur l'étude de système
d'impression 3D, va bien nous aider à comprendre comment le faire.
|