Developpez.com

Plus de 2 000 forums
et jusqu'à 5 000 nouveaux messages par jour

Le raytracing, bientôt dans nos jeux vidéo ?
Imagination Technologies dévoile une puce hybride pouvant faire la rasterisation et du raytracing

Le , par LittleWhite, Responsable 2D/3D/Jeux
Certes, la question du raytracing (lancer de rayons) revient assez souvent et malgré quelques avancés régulières dans le domaine, l'application de la technique de raytracing n'est généralement pas du tout applicable aux contraintes des jeux vidéo. En effet, un jeu vidéo demande le rendu de 1920 x 1080 (2 073 600) pixels et cela, 60 fois par seconde. Avec la technique de rendu par rasterisation (envoi d'une liste de triangles au GPU), cela fonctionne plutôt bien et permet de créer les images que l'on a l'habitude de voir. En effet, les cartes graphiques sont optimisées dans ces calculs et elles permettent de fournir des résultats convenables. Toutefois, les images sont bien loin de ce que l'on peut voir dans la nature. Notamment, les lumières sont limitées et il est rare de voir un jeu utilisant la transparence ou des reflets.
Le raytracing permet d'améliorer cette qualité en simulant directement le rayon de lumière (et ses rebonds). Ainsi, le calcul des ombres et des reflets devient facilement possible. Malheureusement, cela demande une puissance accrue en termes de calcul et il est lent de rendre une scène complète, soixante fois par seconde.


À gauche, une image rasterisée (rendu actuel) ; À droite, une image utilisant les deux techniques
(cliquez sur les images pour voir en grand)

Durant la Game Developers Conference 2014, se tenant à San Francisco, Imagination Technologies, un constructeur de puce graphique pour les appareils embarqués a présenté une nouvelle puce permettant un rendu hybride. Pour rappel, Imagination Technologies propose des puces graphiques pour les iPhone et certains appareils sous Android. De plus, la société commerciale propose aussi des cartes professionnelles permettant de faire du raytracing. Dans cette puce, ils ont donc allié leurs deux expertises afin de proposer de faire un rendu temps réel hautement amélioré.


Afin de présenter leur nouveauté, Imagination Technologies a travaillé en collaboration avec Unity Technologies pour développer une version modifiée de Unity, utilisant les nouvelles capacités de cette puce. D'après le constructeur, la puce serait capable de lancer 300 millions de rayons à la seconde (ce qui permettrait d'envoyer environ trois rayons par pixel, pour chaque image). Voici comment fonctionne le nouveau pipeline de rendu :


John Carmack, semble apprécier cette nouvelle solution, comme il l'a indiqué sur son twitter :
I had reviewed some ray tracing hardware before the PVR stuff that was laughably unsuitable to the proposed gaming applications.


Votre opinion

Pensez-vous que le raytracing soit une solution fiable dans le rendu des jeux vidéo ?
Trouvez-vous que c'est une nouveauté intéressante, ou que cela a de grandes chances d'être abandonné ?

Voir aussi

Tutoriels sur le raytracing
Série d'articles sur les cartes graphiques

Source

Gamasutra


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de PilloBuenaGente PilloBuenaGente - Membre éclairé https://www.developpez.com
le 20/03/2014 à 15:36
Pensez-vous que le raytracing soit une solution fiable dans le rendu des jeux vidéo ?

Celle-là parait être la plus précise, mais d'autres solution moins onéreuses existe aussi (Voxel cone tracing, ... )

Trouvez-vous que c'est une nouveauté intéressantes, ou que cela a de grandes chances d'être abandonné ?

Mon moi matérialiste attendait ça depuis des années, cela va marquer un tournant pour le photoréalisme en temps réel.
Cette solution serait aussi un gain de temps pour les métiers de l'architecture, des effets spéciaux... plus de temps perdu au rendu.
Cependant je ne pense pas voir ce genre de carte de sitôt dans nos chaumières, rien est adapté à ce type de technique, et je vois difficilement un moteur capable de gérer cette méthode en plus de celle classique.
Avatar de Dabou Master Dabou Master - Membre expert https://www.developpez.com
le 20/03/2014 à 21:22
1) Fiable ? La question n'est pas dans la fiabilité mais la "faisabilité". Depuis le temps qu'on nous balance du rêve comme ça moi je n'y crois toujours pas. Les images montrent ce qu'on arrive déjà à faire, l'environement mapping rendait sans problème des reflets de ce qui se passe autour, et plein de choses ne fonctionneraient pas alors qu'on les voit dans les jeux qui sont vraiment jolis ? Le truc c'est surtout que de nos jours plein de jeux n'en ont rien à faire d'être à la pointe de la technologie ou salement vieillissant, tout part en cacahuète alors c'est parce qu'on donne de meilleures possibilités de rendu que ça va évoluer côté studio (enfin si mais toujours les mêmes, ceux qui envoient déjà du lourd à l'actuel).
De toute façon ce qu'on voit est très surfait, ça m'agace même, c'est tellement commercial ça m'écoeure...

2) Si encore c'était nouveau ... Aucune raison que ça soit abandonné maintenant vu le temps depuis lequel c'est étudié. Mais moi je suis convaincu que c'est pas maintenant qu'on va se mettre à avoir du ray tracing en temps réel ! Si déjà on exploitait pleinement toutes les possibilités qu'offrent nos cartes graphiques actuelles sans rajouter de puces abracadabrantes, mais non de toute façon comme beaucoup de gens de veulent pas faire évoluer leur matos et restent la majorité, ça change rien qu'il y ait de bonnes technologies, les studios se concentreront sur ce que la masse peut afficher. Rappelez-moi combien il y a de jeux qui tournent en DX 11 ?
Avatar de Agrajag Agrajag - Membre actif https://www.developpez.com
le 21/03/2014 à 15:49
Je suis justement sur un projet de RayTracing.

Pour l'instant j'ai un binaire qui parse un fichier scene pour afficher un rendu (raytracing avec l'illumination de phong + reflection lambert).
Une fenêtre de 800*600 mets entre 5 et 10 secondes à s'afficher, selon la complexité de la scene, le nombre d'objets, le nombre de spots de lumières, les calculs d'ombres sur l'objets, d'ombres portées, de la reflexion, etc...

Le lancer de rayon 2D "RayCasting" (wolf3D, Doom), et les calculs de la couleur de chaque pixels étaient effectués par le CPU, et non par le GPU.
Les machines de l'époque (plutôt faiblardes niveau graphique) pouvaient aisément simuler de la 3D, en recalculant instantanément une image 2D pixel par pixel (l'image n'étant qu'un pointeur de pixels).


Puis vint le RayTracing, les rayons projetés en 3D depuis la position de la caméra.


Je suis conscient qu'il doit y avoir moultes optimisations à apporter à mon code, mais entre ce que je suis capable de coder (1 image/10 sec) et le taux de rafraîchissement annoncé (60 images / 1 sec), j'étais plutôt sceptique.

Et puis, j'ai vu ca :

rendu instantanée

Grand fan du lancer de rayon, je ne peux que plussoyer cette initiative.
Je rejoins l'avis de Dabou sur le fait que le raytracing ne sois pas une nouveauté, et que ca ressemble à un gros coup commercial.
Mais bon, on va pas faire des jeux en 4D avec des hypercubes, ca ferai plus trop réaliste
A voir si cette technologie hybride nous arrive un jour dans les mains !
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux https://www.developpez.com
le 21/03/2014 à 16:26
Euh, vous avez mis deux fois le même lien.

Je vous conseille de regarder les techniques de raymarching :


C'est une technique full GPU, qui repose sur une base de raytracing, mais qui permet des rendu temps réels.
Voici quelques productions de la demoscene utilisant le raymarching :




Malheureusement, pas moyen de faire des rendus réalistes avec, car il est nécessaire d'utiliser une fonction mathématique pour générer un objet (surfaces implicites).
Avatar de math_lab math_lab - Membre éclairé https://www.developpez.com
le 21/03/2014 à 18:16
On peut faire des rendus raisonnablement réalistes et complexes avec du raymarching. Evidemment, c'est pas forcement ce qu'il y a de plus pratique, et c'est bien pour ça que pour le moment, on s’intéresse plus a des moteurs hybrides.
Pour ceux qui sont intéressés de voir du raymarching en temps réel, je conseillerai de faire un tour sur shadertoy:
https://www.shadertoy.com/view/4ss3z4
https://www.shadertoy.com/view/XsX3RB
https://www.shadertoy.com/view/XsfGD4
(attention, ces liens font tourner des shaders dans webGL, donc selon le navigateur et le GPU, ca peut freezer un peu )
Avatar de wax78 wax78 - Modérateur https://www.developpez.com
le 27/03/2014 à 13:41
Tiens pas un seul mot contenant "biased" ou "unbiased" dans tout ca, bizarre...
Avatar de math_lab math_lab - Membre éclairé https://www.developpez.com
le 27/03/2014 à 18:18
En même temps, si le raytraceur est juste utilisé pour des reflets et des ombres, le bias/unbiased n'a pas lieu d’être.
Avatar de wax78 wax78 - Modérateur https://www.developpez.com
le 27/03/2014 à 19:30
Ou as tu vu qu'il ne servait qu'a ca ?
Avatar de math_lab math_lab - Membre éclairé https://www.developpez.com
le 28/03/2014 à 14:47
D’après le diagramme, c'est juste un système d'intersection de rayons avec une structure de partitionnement spatial et de cohérence temporelle pour optimiser. Les screenshots au début de ce post et tout le marketing autour du produit laissent penser que ça ne fait rien de plus.
Offres d'emploi IT
RESPONSABLE WEB ANALYTICS F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur Web FULL-STACK
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur WEB PHP F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -