Scene Kit : Lion fait rugir son moteur 3D

Scene Kit : Lion fait rugir son moteur 3D

par Arnauld de La Grandière le Vendredi 06 Mai 2011 à 14:33
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.

Lire la page suivante (2/2) >>


|  |  

3
2
1
Vos réactions (42 réactions)
flomo [06/05/2011 15:19] via MacG Mobile

Ca peut le faire.
Giulietta26 [06/05/2011 15:25] via MacG Mobile

Article trés intéressant, merci pour le rédacteur.
w3b [06/05/2011 15:35]

Je sens que mon x3100 va pas trop aimer
boris.ca [06/05/2011 15:36]

je ne croyais pas mon prof de math a l'époque. Maintenant je sais que ce brave Thales et son théorème sert a faire des modèles 3D sous lion !
Eurylaime [06/05/2011 15:38]

"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."

Cette affirmation est dans l'état actuel des choses fausse, c'est un framework privé.
bigham [06/05/2011 15:44]

Les paragraphes expliquant ce qu'est un moteur 3D et sur les différents formats 3D sont bien écrits mais quand une introduction représente 95% d'un article, c'est qu'on n'a pas grand chose à dire au final. Mais ce n'est que mon avis.

Par exemple, l'article omet de mentionner une information capitale sur SceneKit. Est-ce que c'est une API privée ou publique ? En clair, est-ce que le framework est dans /System/Library/Frameworks ou PrivateFrameworks ?

Si c'est une API privée, c'est plutôt difficile de la caser au même niveau que CoreAnimation ou ImageKit. Elle relèverait alors plus du cas du GraphKit qui permet de dessiner des histogrammes et camemberts mais qui est une API privée.

jujuv71 [06/05/2011 15:44] via MacG Mobile

Ben voilà. MacGe vient de me filer mal au crâne...
abstract [06/05/2011 15:50] via MacG Mobile

Quand je pense au temps où je me prenais la tête pour optimiser l'algorithme de Bresenham pour afficher des animations fluides en 3D... fil de fer...

A cette époque on savait faire la différence entre les vrais et les autres!
vintz72 [06/05/2011 15:54]

Et, par ailleurs, Open GL 4.1 sera-t-il supporté ? (ou au moins le 3.2 ?)
Aphelion [06/05/2011 16:10]

Sinon c'est vrai que dans Lion il n'y a que des gagdets inutiles et qu'il va être très mauvais....(ironie..)

Article intéressant en tout cas. Merci MacG.
boumy [06/05/2011 16:28] via MacG Mobile

Bon espérons que ce ne sera pas le xième flop d'Apple. Ça ressemble quand même à une très bonne nouvelle.
iPantoufle [06/05/2011 16:36]

C'est bien beau, mais quand sort le premier logiciel exploitant les nouveautés de Snow Leopard ?
pepez [06/05/2011 17:16]

@bigham

Il utilise une api privée
http://gallery.me.com/cyrilperez/100269/scenekit/web.jpg?ver=13046945400001
elakle [06/05/2011 18:16]

Article intéressant comme toujours sur macG, juste un détail : le or donc en début d'article est juste horrible à lire :)
nonoche [06/05/2011 18:47]

@ elakle : http://fr.wiktionary.org/wiki/or_donc

Et le "juste horrible à lire" est lui-même tout bonnement horrible à lire ;¬p
3
2
1



Réagir

Cinq consignes avant de réagir :
  1. Rester dans le cadre de la dépêche. Pour des discussions plus générales, vous pouvez utiliser nos forums.
  2. Développer son argumentation. Les messages dont le seul but est de mettre de l'huile sur le feu seront modifiés ou effacés sans préavis par la rédaction.
  3. Respecter les acteurs de l'informatique et les autres lecteurs. Les messages agressifs, vulgaires, haineux, etc. seront modifiés ou effacés sans préavis par la rédaction.
  4. Pour toute remarque concernant le contenu de l'article, pour nous signaler une erreur, une faute d'orthographe, une omission, merci de nous contacter exclusivement par e-mail.
  5. Relisez-vous, et pour les utilisateurs de Safari profitez de l'aide du navigateur : activez le menu édition > Orthographe > Vérifier l'orthographe lors de la frappe.