Accueil » Dossier » Quelle utilisation de DirectCompute dans les jeux ? » Page 2

Quelle utilisation de DirectCompute dans les jeux ?

1 : Introduction 3 : Ambient Occlusion (suite) 4 : Benchmarks : Battlefield 3 5 : Benchmarks (suite) et configuration de test 6 : Battlefield 3 en 1920x1080 7 : Battlefield 3 en 1280x768 8 : DiRT 3 9 : Metro 2033 10 : Civilization V 11 : Conclusion

DirectCompute : utile pour l’Ambient Occlusion

Nous avons déjà abordé en long et en large la capacité des GPU à exécuter les charges de travail fortement parallélisées : les CPU et les GPU ont des architectures très différentes qui les rendent tout simplement mieux adaptées à tel ou tel type d’application. Pour appliquer un filtre à une image, par exemple, il faut réaliser simultanément la même opération sur des milliers de pixels ; si on a, d’une part, un processeur quad-core et, d’autre part, un moteur graphique contenant 2000 ALU, il n’est pas difficile de deviner lequel des deux est le plus susceptible de terminer la course en premier.

En théorie, cette approche peut augmenter considérablement la bande passante effective, ne serait-ce que grâce à l’utilisation de GDDR5 à 4 GT/s au lieu de mémoire système à 1600 MT/s, qui vient s’ajouter à l’énorme accélération du traitement proprement dit et à l’augmentation des performances par watts (pour autant que l’on utilise les bons algorithmes).N’oublions pas non plus que, bien que le CPU reste plus rapide que le GPU dans bien des cas, les latences engendrées par la communication entre les deux puces peuvent être telles qu’il vaut parfois mieux confier l’intégralité d’une tâche au GPU plutôt que de la répartir entre elles.

Pour utiliser le potentiel offert par le GPU, les développeurs n’ont d’autre choix que de modifier leurs logiciels. Il y a plusieurs manière d’exploiter les capacités du matériel ; DirectCompute, qui fait partie de Microsoft DirectX, est l’une de ces API qui s’insère entre la puce graphique et les applications. Par le passé, nous avons décrit certaines initiatives académiques et scientifiques (par exemple [email protected] ou [email protected]) qui ont été parmi les premières à faire usage du calcul GPGPU, dont les capacités étaient encore embryonnaires à l’époque. Par la suite, la technologie s’est peu à peu invitée sur le marché grand public, mais uniquement dans un nombre très limité de niches, dont le traitement et la conversion de vidéos. Aujourd’hui, DirectCompute et OpenCL commencent à jouer d’autres rôles : les développeurs de jeux les utilisent peu à peu pour améliorer le rendu, l’intelligence artificielle, l’occlusion, l’éclairage et les effets de physique.

Utiliser DirectCompute pour l’Ambient Occlusion

L’une des utilisations les plus populaires de DirectCompute dans les jeux est l’occlusion ambiante (Ambient Occlusion ou AO), une technologie d’ombrage mise au point à l’origine, il y plus de dix ans, par Industrial Light and Magic et dont le but est de reproduire la manière dont la lumière interagit avec les surfaces et les textures.Elle consiste à faire émaner de chaque surface des rayons lumineux ; ceux qui atteignent l’arrière-plan contribuent à la luminosité de la surface, tandis que ceux qui frappent un autre objet n’en procurent aucune car ils sont absorbés.Les objets entourés d’autres objets sont donc plus sombres que ceux sans objets proches.

Image 1 : Quelle utilisation de DirectCompute dans les jeux ?

C’est ainsi qu’un coin dans une allée ombragée, par exemple, semblera plus sombre que le reste : la quantité de lumière qui y parvient et qui y rebondit est moindre qu’ailleurs car la structure du mur la bloque. L’occlusion ambiante cherche à reproduire cette sorte de « piège à lumière ». Sans elle, l’éclairage a tendance à paraître plus plat et artificiel.

Pour illustrer notre propos, Gareth Thomas, de Codemasters nous a transmis les captures d’écran suivantes, tirées de DiRT 3. Notez tout particulièrement les zones situées à la base des pneus.

Image 2 : Quelle utilisation de DirectCompute dans les jeux ?

Image 3 : Quelle utilisation de DirectCompute dans les jeux ?

« L’occlusion ambiante en haute définition (HDAO) est un effet appliqué au niveau de l’écran ; il part de la profondeur de la scène et calcule un facteur d’assombrissement selon que les zones à modifier se trouvent dans un creux ou non du point de vue du tampon de profondeur, explique-t-il. Par exemple, les crevasses entre les pneus doivent être plus sombres, vu qu’il y a moins de lumière réfléchie qui y parvient. La HDAO nous fournit une approximation de la quantité de lumière que peut ‘voir’ chaque pixel. Nous l’intégrons ensuite au modèle d’éclairage lors du rendu de la scène. La technique n’est pas parfaite, car la profondeur de la scène du point de vue de la caméra ne constitue pas vraiment une information suffisante pour calculer l’occlusion ambiante, mais c’est nettement mieux que rien. »

Sommaire :

  1. Introduction
  2. DirectCompute : utile pour l’Ambient Occlusion
  3. Ambient Occlusion (suite)
  4. Benchmarks : Battlefield 3
  5. Benchmarks (suite) et configuration de test
  6. Battlefield 3 en 1920x1080
  7. Battlefield 3 en 1280x768
  8. DiRT 3
  9. Metro 2033
  10. Civilization V
  11. Conclusion