Ray tracing dans les iPhone 15 Pro, le reflet des ambitions gaming d’Apple
Lors du keynote de présentation de l’iPhone 15, Apple a mis en avant une nouveauté de la puce A17 Pro : la prise en charge matérielle du ray tracing. Si vous ne connaissez pas bien le domaine de la 3D dans les jeux vidéo, ce segment a pu sembler un peu obscur. Nous allons donc tenter de vous expliquer ce que ça implique pour les jeux, pour les iPhone et pour tous les autres appareils ornés d'une pomme.


Mais c'est quoi exactement le ray tracing ?
Le ray tracing, ou lancer de rayons en français, est une méthode assez ancienne employée pour construire une image en 3D. L'idée de base est très simple : elle consiste à lancer un rayon à partir du point de vue de l'utilisateur dans un univers en 3D et de suivre sa trajectoire. Il peut arriver sur une surface mate qui réfléchit peu la lumière, comme un mur, ou une surface plus réfléchissante comme un miroir ou une flaque. Le système va calculer les réflexions possibles et faire repartir éventuellement le rayon dans une direction définie par les propriétés physiques de l'obstacle, jusqu'à ce qu'il rencontre une autre surface dans le modèle 3D, et les mêmes calculs recommenceront.
Cette solution est employée depuis des années dans les films d'animation, car elle permet un rendu extrêmement réaliste des reflets, ce qui n'est pas le cas des méthodes classiques qui se basent sur des approximations. Les ombres, les reflets dans les miroirs, dans les vitres ou sur l'eau sont très impressionnants visuellement et c'est depuis quelques années l'obsession des fabricants de cartes graphiques et d'une partie des développeurs. Le ray tracing n'est utilisé dans les jeux vidéo que depuis 2018, et seulement de façon hybride, car les ressources nécessaires sont extraordinairement élevées.

Reprenons avec un rendu classique. La rasterisation consiste à découper la scène en triangles (les polygones) placés dans un environnement en 3D, et ensuite projeter le tout sur un plan en 2D (l'image affichée sur votre écran). Les différentes étapes du rendu sont complexes, mais si vous devez ne retenir qu’une chose, c’est que la scène est construite triangle par triangle, sans interaction entre ces derniers. Une grande partie du travail consiste en réalité à corriger les « erreurs » de cette méthode, pour simuler les interactions, justement.

Un exemple schématique va être le reflet d'une lampe : il est souvent calculé par une simple approximation qui consiste à définir une texture de « reflet de lampe » qui va être placée sur le mur en face de cette dernière. C'est basique et finalement assez efficace, mais avec quelques défauts. Ce choix n'est fonctionnel que si vous êtes dans la bonne position et ne prend pas en compte le fait que votre personnage peut se trouver entre la lampe et le mur. C'est le problème vu au paragraphe précédent : les triangles du personnage et ceux du murs sont rendus de façon indépendante. Qui plus est, cette méthode ne prend pas en compte les reflets qui interviennent « dans la vraie vie ». Une lampe qui se reflète sur un mur un peu brillant peut aussi amener des reflets plus légers sur les autres murs, ce qui devient compliqué de gérer avec un rendu classique mais est très simple à faire avec le ray tracing d'un point de vue purement technique.

Maintenant, comprenons nous bien : c'est un exemple très schématique pour bien appréhender les bases et les développeurs qui ont une trentaines d'années de jeux en 3D derrière eux ont des solutions pour cacher tout ceci, mais le ray tracing règle le problème plus facilement, ce qui explique en partie son succès.
La rasterisation a d'autres défauts, liés à son fonctionnement intrinsèque. Prenons un autre exemple : le rétroviseur d'un véhicule. Dans un rendu classique, il n'y a pas de méthode simple pour afficher son contenu et il faut généralement en réalité animer une seconde scène 3D, ce qui réduit évidemment les performances et peut induire un décalage. Le ray tracing, en théorie, règle le souci : il s'agit d'une réflexion de la scène principale, ce qui ne demande pas d'étapes supplémentaires. Mais c'est ici que le problème des performances se pose : afficher le contenu du rétroviseur est simple en théorie mais nécessite beaucoup de calculs.

La première société à ajouter une prise en charge du ray tracing dans les jeux vidéo a été Nvidia, avec les GeForce RTX de la famille 2000 en 2018. La compagnie a ensuite amélioré le tout (au niveau des performances) avec les versions RTX 3000 et RTX 4000 (2020 et 2022) et d'autres ont suivi. AMD a intégré le ray tracing dans les Radeon RX 60001 en 2020 et Intel dans ses Arc en 2022. Dans les appareils mobiles, Qualcomm propose le ray tracing dans le Snapdragon 8 Gen 2 et Samsung dans l'Exynos 2200, basé sur une technologie AMD. Enfin, les consoles modernes — PlayStation 5, Xbox Series X et Xbos Series S — sont compatibles avec le ray tracing grâce à leurs cartes graphiques AMD.
J'attends ça avec impatience pour Pro des mots 😅
"De la même façon, imaginer une console portable du niveau de l'éventuelle « Nintendo Switch 2 » n'est là encore probablement pas un souci, et l'iPhone 15 Pro est même sûrement déjà plus rapide, mais le prix n'est pas le même"
J'attends le crossover ultime: Apple fournit ses puces A17pro et suivantes à Nintendo pour les futures switchs :-D
Nintendo propose + de jeux sur iPhone ...
Bah quoi on peut rêver non ?
@Pierre Dandumont
ouais j'ai vu passer un T239 dans les rumeurs. Et puis il y a la partie logicielle : rester sur nvidia permet de garder un SDK assez similaire je pense.
C’est un peu dommage de voir que les M sont basés sur des A plus anciens. Ca devrait être l’inverse et le Mac être le fer de lance sur les nouvelles implémentations technique.
@melaure
les puces A sont et de tres loin le coeur du réacteur à puce de chez apple. Ce sont et seront toujours elles les premieres, tout simplement par leur rentabilité
Le raytracing sur iPhone…n’en attendez pas grand chose. Déjà que sur PS5 et Xbox séries x lorsque les consoles le gère c’est 30fps avec réso souvent assez faible, alors sur iPhone…le A17 doit probablement correspondre à une PS4 pro peu ou prou vu ce qui est annoncé, avec peut être un léger boost.
C’est plus un argument marketing qu’autre chose, comme sur les boites PS5 où est inscrit 8k 120fps…
Ce qui compte c’est que l’A17 semble paré pour recevoir des moteurs 3d complexes, et c’est ça le point à retenir.
Le RT c’est juste pour capter l’attention du public et faire comprendre qu’Apple veut vraiment s’investir dans le gaming.
Pour ce faire il serait bien d’ailleurs qu’ils pensent à sortir un vrai bon accessoire pour connecter une manette a l’iPhone, les solutions tiers ne sont pas très esthétiques…
Il faut voir comment les Apple Silicon s'en sortent, car sur console on reste sur des composants PC milieu de gamme (de chez AMD), alors que les SoC Apple les dégommes toutes.
Je n'ai pas de référence sur la comparaison du GPU intégré au SoC Apple contre une 4xxxRTX ou une 7xxxXT, mais intuitivement j'imagine Apple pas si mal en termes de performances niveau GPU. Peut être quelques cores graphiques en plus dans un futur M3 pourrait bien faire le travail.
@Pierre Dandumont
L’important pour Apple c’est que les studios puissent compiler leur jeux AAA avec à peu près le même ‘profile’ que la génération de consoles actuelle. Si c’est facile (voir le Game Porting Toolkit), qu’il n’y a pas trop de compromis sur le framerate et la qualité (nouveau GPU), et que l’ensemble des plateformes d’Apple (iPhone, iPad, Mac et … Apple TV) tournent le même binaire dans des conditions similaires, il y aura pléthore de jeux AAA pour les clients d’Apple.
C’est pour cela que je crois à un nouvel Apple TV, à base d’A17… dans 3 ans.
Évidemment tout cela va mettre un peu de temps.
Je mets une pièce sur l'intégration de l'accélération matérielle du RT dans les M3 : cela permettrait plus facilement aux développeurs d'implémenter et tester le RT dans leurs jeux iOS. Incitation des devs à utiliser le RT -> validation de la stratégie d'Apple dans le domaine.
On peut toujours rêver d'avoir des bons jeux AAA sur macs, en revanche iOS est la première plateforme de jeux en terme de revenus, donc ça ne m'étonnerai pas qu'apple veuille chouchouter un peu les devs qui bossent sur ce genre de jeux.
"Ray tracing dans les iPhone 15 Pro, le reflet des ambitions d’Apple dans le jeu vidéo"
C'est pas mieux tout en français, plutôt que de mélanger deux langues ?
Sinon ça fait Jean-Claude Van Damme.