include("../include/header.inc.php");
include("../include/topmenu.inc.php");
?>
include("leftmenu.inc.php"); ?>
Présentation du modè utilisé pour les terrains
L'idée ici est de partir d'un terrain composé d'une "heightmap" (carte de hauteurs),
tel que souvent utilisé dans les jeux en 2D isométrique, comme par
exemple
Ultima Online.
De cette heightmap, il est possible d'interpoler différemment les points pour en sortir
un terrain plus ou moins joli. Le choix qui est généralement fait est de créer
un carré (tile) dont le centre est un point de la heightmap, et de le diviser en huit triangles.
Chaque triangle est alors lié au point central et aux extrémités de deux voisins
de la
façon suivante. Les résultats peuvent alors être très
triangulés.
Mais une autre méthode bien meilleure graphiquement existe. Elle consiste à créer
non pas un tile à partir de 9 points (le point central et ses voisins), mais à partir de
16 points : 4 points pour les 4 coins du carré, et 12 points pour les voisins. On obtient alors
une gestion de la heighmap
de ce style. On peut alors utiliser
un algorithme appelé patch de Bezier pour créer les surfaces de ces tiles.
C'est cette méthode que nous avons mise en oeuvre. Elle est certes plus coûteuse en nombre
de polygones (de 32 à 512 triangles par tile dans nos tests), mais les résultats sont
autrement plus beaux et l'on ne voit plus du tout les limitations entre tiles.
Son principal désavantage est alors la difficulté pour placer des objets sur le sol :
la totalité du terrain a tendance à être arrondi, posant alors des problème
graphiques si l'on pose un objet à fond plat.
Les sections suivantes relatent la mise en oeuvre de la gestion de heightmap par patchs de Bezier, les
problèmes rencontrés, et les leçons que nous avons tiré de son utilisation.
include("../include/footer.inc.php");
?>