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

Quelle utilisation de DirectCompute dans les jeux ?

1 : Introduction 2 : DirectCompute : utile pour l’Ambient Occlusion 3 : Ambient Occlusion (suite) 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

Benchmarks : Battlefield 3

Les développeurs de DICE utilisent DirectCompute pour accélérer le calcul des lumières non ombragées de Battlefield 3. Ce processus consiste à diviser l’écran en carrés puis à calculer quelles lumières éclairent chacun d’entre eux ; cela contribue à simplifier le calcul de l’éclairage de chaque pixel.

Comme nous l’explique Johan Andersson, Rendering Architect chez DICE, « DirectCompute nous permet d’accélérer considérablement ce calcul, car il est très parallélisable. Nous devons exécuter simultanément une série de tâches au sein de chaque carré de 8×8 pixels. L’avantage des GPU modernes, avec leurs multiples unités de traitement, est qu’ils sont capables de traiter plusieurs carrés à la fois. Être à même de calculer rapidement les lumières non ombragées, c’est l’un des éléments clés des moteurs de rendu différé (NDLR : Deferred Rendering), qui sont de plus en plus utilisés dans les jeux. »

On peut voir cette technique en action dans la démo « Leo » qu’AMD a mise en ligne pour le lancement de la Radeon HD 7970. Selon le fondeur, cette démo utilise les mêmes calculs que ceux de DICE, mais les traite encore plus rapidement grâce à un moteur de rendu de type Forward Rendering. Cette approche permet de procéder au calcul de l’éclairage avec la majorité des techniques de rendu actuelles.

Comme la plupart des jeux, Battlefield 3 dépend encore beaucoup des shaders pour ses effets et doit par conséquent trouver des moyens de contourner leurs limitations. Le titre utilise par exemple le shader de Bilateral Upsampling pour accélérer le rendu de certains effets appliqués à l’espace écran : il procède au rendu de l’effet désiré (par exemple la SSAO) à une résolution réduite de moitié puis remet cet effet à la résolution cible par interpolation couplée à un filtre permet de préserver la qualité des bords et calculé via DirectCompute. Les itérations suivantes peuvent ensuite réaliser cette opération à pleine résolution sans diminuer les performances ; si nécessaire, il reste toujours possible de faire appel à DirectCompute.

Image 1 : Quelle utilisation de DirectCompute dans les jeux ?

Image 2 : Quelle utilisation de DirectCompute dans les jeux ?

Image 3 : Quelle utilisation de DirectCompute dans les jeux ?

Gareth Thomas, de Codemasters, note que DiRT 3 utilise une technique d’interpolation similaire pour la HDAO, car un échantillonnage réalisé à partir d’un buffer de profondeur à demi-résolution est équivalent à un échantillonnage réalisé à partit d’un kernel de double diamètre à pleine résolution. Il serait possible de calculer le filtre à pleine résolution, mais cela n’améliorerait que très peu la qualité alors que cela ferait chuter considérablement les performances. Pour l’instant, le rendu à demi-résolution semble être la solution idéale.

Le recours à DirectCompute pour le calcul d’effets tels que l’occlusion ambiante n’est cependant pas gratuit : selon la scène, il peut améliorer ou dégrader les performances.

D’après Neal Robison, d’AMD, « Il est important de faire des tests dans des zones comportant de nombreuses sources lumineuses, par exemple dans les couloirs de la carte Metro MP. Le calcul GPGPU ne sert pas à accélérer les situations habituelles ni idéales, mais bien les scénarios catastrophes, ceux où il y a le plus de sources lumineuses. Bien qu’il soit activé tout le temps, il réduit en fait les performances en raison des latences qu’il introduit dans les scènes où il n’y a que quelques sources d’éclairage. »

Vous pouvez voir exactement ce que nous utilisons pour benchmarker Battlefield 3 dans cette démo enregistrée (les 90 secondes que nous utilisons pour réaliser tous nos tests). Alliant passages dans des intérieurs sombres et d’autres dans des décors extérieurs plus lumineux (bien que le temps soit couvert), elle devrait nous permettre de dégager une moyenne relativement équilibrée.

Image 4 : Quelle utilisation de DirectCompute dans les jeux ?

Nous nous sommes rendu compte très rapidement que les APU actuels d’AMD étaient incapables de générer un framerate suffisamment élevé pour que Battlefield 3 soit jouable, si ce n’est avec les détails au minimum. Afin d’obtenir des chiffres comparables lors de nos tests, nous avons donc décidé de régler les textures, les ombres, les effets, les maillages, la qualité du terrain et la décoration du terrain sur Faible ; de désactiver l’AA différé, le post-AA et le flou de mouvement ; et de régler le filtrage anisotrope sur 1x.

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