Ouvrir le menu principal

MacGeneration

Recherche

Scene Kit : Lion fait rugir son moteur 3D

Arnaud de la Grandière

vendredi 06 mai 2011 à 14:33 • 42

Ailleurs


Or donc, Apple ne prépare rien de moins qu'un petit moteur 3D parmi les nouvelles fonctionnalités de Mac OS X 10.7 (lire Scene Kit, une nouvelle API 3D dans Lion).

Quid d'OpenGL? En réalité, sans la surcouche d'un moteur 3D digne de ce nom, OpenGL ne vous mènera pas bien loin : il s'agit d'un framework de bas niveau, c'est à dire le dernier rempart entre votre code et le matériel, qui n'est capable que de piloter la carte graphique (ou d'émuler les fonctions qu'elle ne prend pas en charge), afin d'afficher des primitives : point, ligne, ou polygone. A charge du développeur de bâtir tout le reste avant l'affichage, et ce ne sont pas les fonctions indispensables qui manquent en matière de 3D.

Ainsi, pour en arriver au point d'afficher un simple modèle 3D réalisé dans un logiciel de modélisation quelconque, il faut en passer par l'implémentation du format de fichier sur lequel le développeur aura jeté son dévolu, la lecture et la conformation de ses données, le chargement des textures, faire le produit en croix des sommets de chaque facette pour déterminer si sa normale (c'est à dire la droite orthogonale au plan défini par la facette) est orientée de manière à être visible par la caméra à l'aide d'un autre calcul, la projection des points sur le plan de la surface d'affichage, perspective incluse, à l'aide du théorème de Thales, la sélection des facettes à afficher (afin d'éviter que celles qui se trouvent en dehors du champ de vision, ou que celles qui sont masquées par d'autres, ne soient calculées pour rien), l'application de la texture suivant des cordonnées UV sur chaque facette (avec filtrage tri-linéaire pour éviter sa pixelisation), et les effets divers tels que l'illumination de l'objet. Pour cette dernière, on peut utiliser divers algorithmes existants (les modèles d'illumination de Lambert, Gouraud, Phong…) et y ajouter des subtilités ou non telles que le bump mapping, qui simule des reliefs sur une surface, ou encore les ombres portées, parmi bien d'autres choses encore. Et il ne s'agit là que du simple affichage d'un seul modèle statique, sans même évoquer des fonctions autrement plus complexes à mettre en œuvre…

Le fait qu'OpenGL soit si proche du matériel offre comme avantage une grande souplesse pour le développeur, qui peut ainsi sortir des sentiers battus quant à la façon d'afficher ses modèles 3D, mais également le lourd inconvénient d'avoir à réinventer la roue (et dans notre cas la roue nécessite de solides bases de géométrie dans l'espace et la maîtrise de concepts mathématiques et d'algorithmes relativement pointus). En somme, la 3D reste hors de portée des développeurs les moins chevronnés, ou du moins elle a de quoi décourager les moins déterminés. Précisons toutefois qu'OpenGL bénéficie sur Mac d'une légère surcouche, Core OpenGL, qui simplifie son intégration avec les autres frameworks du système.

C'est là qu'interviennent les moteurs 3D : ces surcouches prennent en compte tout ou partie des besoins en matière de 3D : importation de modèles 3D à partir de formats de fichier standards, gestion de l'affichage, de l'animation, des collisions, intégration d'un modèle physique, etc.

skitched


Il existe nombre moteurs 3D plus ou moins aboutis et prêts à l'emploi : le monde des jeux vidéo connaît quelques gloires comme l'Unreal Engine, l'Id Tech 5, ou le CryENGINE 3, qui ajoutent également nombre de fonctions dédiées au seul genre du jeu. Il s'agit là de moteurs commerciaux mais il en existe également dans le monde du logiciel libre.

Naturellement, ces moteurs suivent leurs propres rythmes de développement, et restent indépendants des plateformes sur lesquelles ils fonctionnent, ce qui peut parfois poser quelques problèmes. Scene Kit n'aura pas cet inconvénient puisqu'il fait partie du système d'exploitation. Toutefois, cet "agnosticisme" des moteurs 3D relativement à la plateforme d'exécution présente l'avantage de permettre de réaliser la majeure partie du développement une fois pour toutes, le portage d'une plateforme à l'autre étant réduit à sa portion congrue, à savoir tout ce qui ne relève pas du moteur 3D à proprement parler.

En l'état, Scene Kit ne fonctionne donc que sur Lion, mais comme pour d'autres frameworks de Mac OS X il y a fort à parier qu'il fera son apparition dans une future version d'iOS, ce qui devrait lui offrir une force de traction suffisante pour être adopté par un certain nombre de développeurs.

Les formats 3D ont leur tour de Babel

Le format de fichier que Scene Kit permet d'importer nativement est le COLLADA : créé au sein de Sony Computer Entertainment Inc pour la PlayStation 3, et depuis placé sous l'égide du Khronos Group (le consortium qui gère également d'autres standards ouverts tels qu'OpenGL et OpenCL), ce format est sans doute celui qui est le plus largement supporté dans le monde de la 3D aujourd'hui. Il faut ici expliquer qu'à l'inverse d'autres formes de médias, comme l'image, le son voire la vidéo, les modèles tri-dimensionnels ont connu bien des affres avant qu'un standard industriel ne fasse vraiment l'unanimité. Et pour cause, puisque l'agencement des données dépend directement de la manière dont chaque logiciel de 3D mesure son univers : le sens de stockage des points composant une facette, horaire ou anti-horaire, inversera la direction de leur normale : l'extérieur devient l'intérieur, et réciproquement. Les logiciels peuvent également être "gauchers" ou "droitiers", en fonction de l'agencement des axes x,y et z selon lesquels toutes les coordonnées sont rapportées.

skitched


Un logiciel 3D pourra donc stocker les données d'une manière ou de l'autre, quand bien même le fait-il dans un format standard. Et il n'est pas rare d'avoir à inverser les normales d'un modèle à son ouverture, voire de passer d'une "main" à l'autre. Mais les formats standards eux-mêmes se sont succédés à mesure de l'augmentation des capacités des logiciels : en 1982, le DXF d'AutoCAD était l'espéranto des premières heures, mais celui-ci n'intègrait strictement que les modèles en eux-mêmes, et leur géométrie : pas de textures ni de lumières, et encore moins d'animations. Et comme AutoDesk a mis un certain temps avant de publier les spécifications du DXF, nombre d'implémentations du format, dans d'autres logiciels, ont été hasardeuses.

Le DXF a connu nombre d'héritiers et de prétendants à son titre : pour n'en citer que quelques uns, on trouve le format OBJ de Wavefront qui peut intégrer lumières et textures, le VRML, conçu pour le web bien trop tôt, le 3DS de 3D Studio Max (d'AutoDesk encore) qui intègre les animations, Macromedia avant de fusionner avec Adobe y était allée de sa contribution avec SW3D, et Apple elle-même a mis au point le 3DMF pour feu QuickDraw 3D.

Certains formats ne gèrent que les facettes triangulaires, d'autres ne gèrent pas les courbes NURBS ou Bézier, etc. Difficulté supplémentaire, une bonne partie de ces formats existe en deux parfums : binaire (plus compact mais incompréhensible pour un simple mortel) ou en texte ASCII (plus lourd mais lisible par les scribes et autres érudits adeptes du code source de la Matrice).

Dernier tenant de cette longue lignée, le COLLADA offre une grande souplesse : sa dernière itération en date, la version 1.5.0, permet de gérer nombre de paramètres : cibles de morphing pour l'animation, peau pour les personnages, dynamique des solides, support des matériaux d'OpenGL ES, effets de shaders pour les langages de programmation Cg, GLSL et HLSL, cinématique inverse, ou encore représentation des limites en ont fait le succès. Le format COLLADA est aujourd'hui géré par la majorité des logiciels 3D : Maya, 3DS Max, Vue, Poser, LightWave, Cinema 4D, mais également Google Earth ou Photoshop CS5 pour n'en citer que quelques uns. Snow Leopard lui-même gère ce format en standard, puisqu'il permet de manipuler des fichiers COLLADA tant dans Coup d'œil que dans Aperçu.



Scene Kit ou la 3D pour tous

Apple poursuit là une progression cohérente, puisque elle avait précédemment mis au point d'autres frameworks visant à simplifier le travail des développeurs pour aider à améliorer la qualité de leurs applications : Core Animation permet de faire des animations complexes en quelques lignes de code simples, Image Kit permet la manipulation d'image sans rien connaître des matrices de convolution, et de même Scene Kit met la 3D à la portée de tous les développeurs. Outre l'importation de modèles 3D au format COLLADA, Scene Kit permet également leur manipulation (position, orientation, redimensionnement…), et leur affichage dans OpenGL. Avec ce cadeau surprise dans Mac OS X 10.7, Apple permettra donc une utilisation plus vaste de la 3D, qui pourra être mise à profit par plus de développeurs. Si le succès de Core Animation peut être un indice de celui de Scene Kit, cela promet de très belles applications à venir, à plus forte raison lorsque ce framework sera mis à disposition sur iOS.

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Un Steam Deck caché dans un clavier Apple pour l'utiliser avec des lunettes AR

13:00

• 7


En Allemagne, le Schleswig-Holstein va abandonner les outils Microsoft comme Teams ou Office

11:38

• 32


macOS Tahoe change plus facilement la couleur des LED des manettes de PlayStation

10:45

• 10


GlassBar opacifie déjà la barre des menus de macOS Tahoe

09:04

• 12


Nouveautés d’iOS 26, macOS Tahoe, Liquid Glass… Tous nos articles pour tout savoir sur la WWDC 2025

06:00

• 11


Les leçons de la WWDC 2025, et ce qu’elle laisse entrevoir de la suite : la semaine Apple

15/06/2025 à 21:00

• 41


Aperçu de Spotlight dans macOS Tahoe : le lanceur idéal pour débuter ?

14/06/2025 à 11:00

• 35


Sortie de veille : une WWDC 2025 réussie ? Notre débrief d’iOS 26, Liquid Glass…

14/06/2025 à 08:00

• 11


SAV : Apple lance un programme de réparation pour des Mac mini M2 qui ne s'allument plus

14/06/2025 à 07:38

• 41


Avec Tahoe, les applications macOS pourront s’afficher sur le Vision Pro

13/06/2025 à 21:57

• 17


Les Youtubeurs de Linus Tech Tips voulaient se moquer des Mac pendant un mois, mais décident finalement de rester chez Apple

13/06/2025 à 18:56

• 104


watchOS 26 : découverte de la nouvelle interface de l'app Exercice

13/06/2025 à 18:27

• 5


Découvrez le tout nouveau UPDF 2.0 – l’éditeur PDF ultime pour Mac et iOS !

13/06/2025 à 15:18

• 0


macOS 26 peut faire le ménage dans les icônes de la barre des menus

13/06/2025 à 14:52

• 11


Avec EnergyKit, Apple veut charger votre watture au moment le plus opportun

13/06/2025 à 13:45

• 13


3DMark, une référence pour comparer les performances des GPU, débarque sur Mac

13/06/2025 à 13:02

• 31