Ray tracing dans les iPhone 15 Pro, le reflet des ambitions gaming d’Apple

Pierre Dandumont |

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.

Image Apple/iGeneration

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.

Une comparaison issue d'un document de chez Pixar, pour le film Cars. Notez les reflets des yeux, à droite. Image Pixar.

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.

Le principe est de projeter les polygones sur un plan en 2D. Image Canard PC.

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.

Cette comparaison issue de Quake II RTX montre bien le problème, spécialement avec un moteur 3D qui date de 1997.

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.

Les premières cartes compatibles avec le ray tracing, en 2018.

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.

Toutes les implémentations ne se valent pas

avatar powergeek | 

J'attends ça avec impatience pour Pro des mots 😅

avatar totoguile | 

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

avatar Pierre Dandumont | 
Ce serait bénéfique pour Nintendo, mais les rumeurs tendent vers du Nvidia un peu daté quand même (et assez logiquement : on peut pas vendre une Switch 1000 €)
avatar totoguile | 

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

avatar melaure | 

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.

avatar raoolito | 

@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é

avatar Pierre Dandumont | 
Pour Apple, l'iPhone est plus important que les Mac, et ça permet aussi de tester les nouveautés sur des puces relativement compactes, c'est un avantage.
avatar Malvik2 | 

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…

avatar zearno | 

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.

avatar Pierre Dandumont | 
Comme l'article le dit, prendre les PS5 et autres Xbox comme comparaison, c'est biaisé : l'implémentation est notoirement lente. On peut parfaitement faire nettement mieux, Intel l'a montré par exemple.
avatar Brice21 | 

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

avatar mne | 

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.

avatar Zefram | 

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

CONNEXION UTILISATEUR