Présenté comme une technique nouvelle pour le rendu des sols dans FS 22, le parallax occlusion mapping a pourtant fêté sa vingtaine de bougies. Retour sur une méthode de rendu/mapping qui soulage aujourd’hui nos cartes graphiques et fait briller nos yeux.
Giants Software a annoncé utiliser le parallax occlusion mapping pour le rendu de certains types de sol sur Farming Simulator 22. Nous avons pu avoir un premier aperçu sur une terre labourée. Et vous êtes nombreux à ne pas savoir de quoi il s’agit. Il n’est pas question ici de rentrer dans les détails techniques car il n’y a pas une mais plusieurs méthodes pour implanter le parallax occlusion mapping dans un jeu vidéo.
Rappelons que cette technique découle du displacement mapping, qui permet, à partir d’une image en niveau de gris, de déformer un maillage comme dans l’exemple ci-dessous :
Cette technique permet de réaliser des modélisations rapides et détaillées mais à l’énorme inconvénient de nécessitera un maillage dense. Dans notre exemple, le Plane est composé de 10.000 polygones, ce qui permet d’avoir de la matière à déformer, mais peut très vite surcharger le CPU et le GPU dans le cadre d’un affichage en temps réel. Ce n’est pas une méthode utilisée dans le monde du jeu vidéo, dans lequel on préfère l’usage des normal maps, qui créent une sensation de léger relief.
Le parallax occlusion mapping, un polygone en vaut 10.000
Pour expliquer le plus simplement du monde le parallax occlusion mapping, il s’agit d’une méthode similaire dans l’usage au displacement mapping. C’est à dire que l’on va créer de la 3D (ou plutôt ici, une illusion de 3D) à partir d’une map en niveau de gris (ou d’une normal map, ça fonctionne aussi). La grande différence c’est qu’ici nous allons travailler sur la texture et non directement sur la 3D. Le displacement déforme la 3D, le parallax occlusion mapping « déforme » la texture.
Concrètement, la texture d’une face est calculée en fonction de l’éclairage, de l’angle de vue de l’utilisateur, et d’une map de displacement. Une fois le rendu de cette texture effectué, elle est « replaquée » sur le polygone pour simuler le relief. L’efficacité, comparée à la normal map, est supérieure. Le parallax occlusion mapping est capable de masquer des éléments. Dans l’exemple ci-dessous, si la caméra se rapproche du sol, alors les pierres en premier plan vont masquer les pierres en arrière plan. Et pourtant, ce même sol n’est composé que d’un seul et unique polygone !
La carte graphique est ainsi soulagée dans le calcul de l’affichage de la partie 3D, puisque la balance s’équilibre entre rendu des textures et rendu du maillage 3D d’un objet. L’efficacité n’en est que meilleure.
Cette technique se chargera de l’affichage des sols dans FS22, mais on ne sait pas encore si il sera possible de l’utiliser sur des véhicules ou bâtiments, afin, à partir d’une vieille modélisation, d’obtenir un peu plus de détail. Wait and see…
Pour les utilisateurs de 3DSMAX, un plugin en 2003 permettait déjà d’utiliser cette méthode, il était gratuit et se nommait tout simplement « Relief Mapping ». Désormais, c’est un peu plus compliqué pour le mettre en œuvre. Il faut utiliser le langage OSL lors de la création des textures. Vous pouvez télécharger le shader sur le site de Racoon Artworks en cliquant ici. L’histoire ne dit pas si cette méthode fonctionnera avec FS 22, ou si Giants Software prévoit de fournir un module d’export simplifié.