include("../include/header.inc.php"); include("../include/topmenu.inc.php"); ?> include("leftmenu.inc.php"); ?>
![]() |
Voici une image du premier élément de terrain généré.
Sa forme particulière est dûe à l'algorithme utilisé : A partir de 4 sommets et d'informations sur les sommets alentour, tous les points du carré Sont générés par Interpolation Cubique (autre formule ayant le même effet qu'une courbe de Bezier, mais avec les points de contrôle à l'extérieur). Les couleurs sont inexactes car le calcul de luminosité est incorrect (mauvaises normales). |
![]() | Voici ce que le test précédent donne sur un premier plateau de 4x4 cases. Le résultat n'est pas convainquant. Les bordures sont bien jointives mais le reste ne suit pas. La faute à l'algorithme qui interpole les points qui ne font pas de la bordure, qui moyenne la valeur des points environnants, d'oû l'effet de "peau tendue" sur une armature. |
![]() | Là c'est déjà mieux : l'algorithme d'interpolation est le même pour le centre que pour les bords. C'est plus compliqué niveau programmation, mais ca se tient encore. Notez aussi que l'éclairage a changé : j'utilise à présent le "Gouraud Shading", qui consiste à donner un ombraeg différent pour chaque sommet d'un triangle, ce qui à l'oeil adoucit les angles. Avec ce système on peut alors baisser le nombre de subdivisions de chaque carré (plus léger car moins de triangles à rendre), l'oeil ne voit pas la différence. |
![]() | Voici le même terrain, mais en dessinant juste les "côtés" des triangles (le wireframe). C'est-y pas joli ? Pour info chaque carré du jeu est subdivisé en 16*16 sous-carrés, mais a terme cela va encore baisser. Il y a donc 2048 triangles dans cette scène. A noter : l'affichage est beaucoup plus lent en affichant les bords des triangles plutôt que les triangles entiers. La faute aux algorithmes vérifiant qu'un triangle n'est pas caché, qui ne fonctionne pas sur les lignes (une ligne en cache rarement une autre). |
![]() | Désormais la carte de test est texturée (texture trouvée sur Gamasutra), Et la heightmap est lue à partir d'un fichier jpeg. La carte complète fait 30x30, doit 27x27 carrés. Sur un 2.5ghz avec Geforce FX 5900 le programme tourne à plusieurs centaines de FPS, et environs 30 FPS sur un 700mhz avec une carte premier prix. La lumière bouge quelque peu, ce qui donne un joli effet lorsque l'on est au ras du sol. Prochaine étape : poser de la végétation. |