Simulation d'herbe et d'arbres en temps réel

Kévin Boulanger a récemment mis en ligne sa thèse sur le rendu temps réel d'espaces naturels : herbe, arbres.
Le sujet peut sembler assez banal, d'autant plus que les derniers jeux 3D tels que Crysis ou le futur Far Cry 2 présentent des effets assez réalistes à ce niveau. En pratique, le résultat est assez bluffant, un gros travail sur la qualité de l'éclairage ayant été fait.

Rendu temps réel d'herbe

En 2005 et 2006, Kévin Boulanger a travaillé sur le rendu d'étendues d'herbes.

La difficulté principale de ce type de décor est le nombre de brins d'herbe nécessaires pour obtenir un résultat réaliste. Il est impensable de représenter chaque brin séparément à perte de vue, à moins de vouloir faire fondre sa carte graphique.
Une méthode classique consiste alors à utiliser des billboards :on utilise des textures 2D pour simuler les objets 3D, comme sur l'image suivante.

Nvidia - herbe temps réelsource : Nvidia (1)
L'image du bas montre l'envers du décor : de simples quads (des quadrilatères) sont placés dans la scène ; en affichant sur ces rectangles des textures avec un effet de transparence, on va simuler la présence d'herbe, en utilisant peu de polygones. Si on déforme dynamiquement les quads, on peut même simuler l'effet du vent.

Kevin Boulanger - Simulation d'herbe en temps réelKevin Boulanger - Simulation d'herbe en temps réel

Le travail de Kévin Boulanger reprend un peu ce principe, mais avec utilisation de LOD (level of detail), une technique qui consite à détailler plus ou moins les objets en fonction de leur distance à la caméra : pour les zones très proches, on représente les brins d'herbe de façon géométrique. Dans les zones intermédiaires, des plans verticaux sont employés, un peu comme dans l'illustration issue de NVIDIA. Enfin, pour les zones lointaines, de simples plans horizontaux sont utilisés.

La simulation ne se limite pas là : l'ombrage entre brins d'herbes voisins est rendu de façon efficace (l'auto ombrage est lui laissé de côté car coûteux et peu utile), l'ambient occlusion est prise en compte via une texture prédéfinie : les zones d'herbe sous un arbre ou un banc seront donc plus sombres.

La vidéo qui suit montre le résultat obtenu en temps réel :

Au niveau performances, la méthode décrite par Kévin lui permet de simuler 627 millions de brins d'herbe virtuels à 20 images par seconde minimum (pire cas) sur un terrain de foot, avec une configuration qui n'a rien d'extraordinaire (GeForce 7800 GTX, 1024x768, antialiasing 4X).

Rendu temps réel d'arbres

Kevin Boulanger - éclairage temps réel d'arbres prenant en compte l'éclairage indirectKévin Boulanger - éclairage temps réel d'arbres prenant en compte l'éclairage indirect

Depuis 2007, Kévin Boulanger s'intéresse aussi au rendu réaliste d'arbres, avec une méthode qui permet de prendre en compte non seulement la lumière solaire directe, mais aussi l'éclairage renvoyé par le sol, l'éclairage global du ciel et même la lumière transmise ou réfléchie par les feuilles voisines !

La méthode est plus intéressante que l'utilisation d'une texture prédéfinie ou qu'un précalcul, dans le sens où elle permet d'utiliser un éclairage dynamique et potentiellement de l'animation, tout en conservant un résultat cohérent.

Le principe est d'utiliser pour les calculs une modélisation simplifiée du feuillage, représenté comme une enveloppe convexe ; on considère notamment que les feuilles sont réparties de façon relativement uniformes à l'intérieur, et qu'elles sont de tailles semblables et petites par rapport à l'enveloppe globale (il serait d'ailleurs intéressant de tester les résultats sur des arbres ne vérifiant pas ces hypothèses).

Voyons plutôt le résultat en images :

Au niveau performances, une centaine d'arbres de 98 000 polygones est rendue à 27 fps dans le pire des cas sur une 8800 GTX.

Pour la suite, je vous invite à aller voir directement sur le site de Kévin Boulanger sa page consacrée au rendu d'arbres en temps réel, vous y trouverez de nombreuses captures, mais aussi des documents explicatifs.

Pour en savoir plus

  • Les démos 3D dont sont tirées les vidéos ne sont malheureusement pas accessibles, car elles ont été effectuées sur un moteur 3D encore non finalisé. Patience, donc !
  • Le site de Kévin Boulanger donne accès à de nombreuses captures d'écran en plus haute résolution que celles présentées ici, mais aussi aux vidéos en haute définition.
  • Sa thèse détaille l'ensemble des techniques employées pour ces simulations.
  1. 1. Ceux qui veulent en savoir plus pourront aller voir le site de NVIDIA, qui fournit gratuitement un document sur le rendu d'herbe, tiré de l'excellent livre GPU Gems.

URL de Trackback pour ce billet :

http://www.shadows.fr/trackback/503

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
If you have a Gravatar account, used to display your avatar.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plus d'informations sur les options de formatage

CAPTCHA
Merci de faire ce calcul pour prouver que vous etes humain.
11 + 1 =
Résolvez cette équation et entrez le résultat. Par exemple, pour 1+3, entrez 4.
Syndiquer le contenu