ELOdry : voici les news traitant du terrain traduite en français (c'est assez technique par contre) :
Terrain work begins :
J'ai commencé à travailler sur le système de terrain de DaggerXL. Je suis maintenant capable de lire et de traiter les fichiers WOODS.WLD et CLIMATE.PAK.
WOODS.WLD contient l'altitude de toute la carte, sous la forme d'une carte de 1000x500 pixels en niveaux de gris. Ce sera utilisé l'altitude général du terrain à grande échelle. Les altitudes les plus basses indiquent la présence d'eau. Evidemment, l'altitude en jeu des petites étendues d'eau doit être déterminée par l'altitude des terrains environnants.
Ce fichier conteint aussi les données de "bruit", qui déterminent la rugosité du terrain (dans quelle mesure le terrain ondule), informations que je stocke mais n'utilise pas encore. Daggerfall ne semble pas utiliser nativement les données d'altitude mais les données de bruit pour déterminer l'altitude. Du coup, au lieu de générer des changements d'altitude à grande échelle, Daggerfall génère de grandes ondulations à partir de l'altitude 0. DaggerXL supportera aussi ceci, si vous souhaitez une véritable émulation. Cependant, DaggerXL utilisera par défaut la carte des altitudes pour les changements à grande échelle, qui est ensuite modifiée par le bruit, ramené à des valeurs raisonnables.
Le fichier CLIMATE.PAK contient les données climatiques du monde. Cela détermine quel set de texture est utilisé pour le sol et pour le ciel, et ce à quoi va ressembler la végétation. Cela modifiera aussi les textures utilisées pour les extérieurs, les intérieurs, et les blocs composant les donjons. Ci-après, les différents types de climats colorés sur la carte. Notez que j'ai coloré l'eau en bleu bien que les données correspondantes dans CLIMATE.PAK se rapportent là aussi à l'un des quatre types principaux de climat.
Afin d'obtenir une vue plus intuitive de la forme du terrain, j'ai généré une image en normal map, basée sur la carte d'altitude, et appliquée quelques éclairages simples. Afin d'adoucir les transitions 8 bits, j'ai appliqué un filtre dont la force est concentrée sur l'altitude du pixel central - de façon à ce que les lignes côtières soient conservées. Ceci est fait en temps réel avec des shaders, et devrait être bien meilleur quand tout fonctionnera de concert -- notamment des détails en haute résolution et des transitions plus fluides (correction les lignes côtières, remontée des lacs au niveau du terrain environnant au lieu de les laisser créer d'énormes entonnoirs, etc.).
J'ai aussi commencé à utiliser ces données dans le monde lui-même, à la résolution grossière de 1000x500 pour l'instant. Vous pouvez voir une ligne côtière rudimentaire ci-après : gardez à l'esprit que pour l'instant, une seule texture est utilisée par cellule de terrain ce qui donne ce rendu très grossier. Mais c'est seulement le commencement.
Terrain work continues :
Le travail sur le système de terrain continue. Chaque "case" de terrain (16x16 carrés) est actuellement texturé selon la carte des climats. Vu que la carte de climat mesure uniquement 1000x500 pixel, chaque case ne correspond en fait qu'à une petite partie du pixel, ce qui fait que les textures et les climats sont appliqués de manière très grossière pour le moment. Toutefois, je peut déjà voyager au travers du monde complet, en ayant les textures du terrain et la végétation qui changent correctement selon le climat.
Toutes les photos d'écran montrent la carte du monde, avec une couleur par climat. Le point blanc montre l'endroit où se trouve le joueur.
Ci-dessous, vous pouvez voir deux de ces climats :
<dxl_climate1.png>
<dxl_climate2.png>
Je suis conscient du fait que certaines plantes ne sont pas à la bonne échelle, corriger ceci fait partie de ma liste de choses à faire.
De plus, j'ai commencé à intégrer les informations d'altitude pour générer les reliefs. La hauteur de base est générée à partir d'une version spécialement filtrée de la carte d'altitude en 1000x500, où la hauteur de chaque vertex est calculée à partir de la hauteur de grandes zones de points voisins (en utilisant une interpolation bi-cubique). Les reliefs tendent à varier en général très lentement, quand on utilise cette carte à grande échelle, donc j'ajoute du bruit à la hauteur base. Ce bruit est échelonné sur l'altitude générale, générant des perturbations plus grandes à haute altitude, et plus douces lorsque l'on approche des cotes. Ceci doit évidemment être généré à la volée, à chaque fois que les case visibles sont mises à jour, donc le bruit utilise les paramètres de la case pour la partie fractionnelle et l'emplacement de la case dans le monde pour la partie entière. Cela signifie que le bruit est généré indépendamment pour chaque "case" de terrain, mais les bords restent alignés sans recourir au moindre post-traitement. Il reste encore pas mal de travail à faire, comme s'assurer que la végétation est bien à la surface du terrain (et non à la hauteur 0), ainsi que la détection des collisions. De plus, il reste quelques traces de raccordement, à cause de la méthode que j'utilise pour générer les normales d'altitude, problème que je vais résoudre rapidement. Notez aussi que la densité de polygones pour ces terrains est exactement la même que pour le Daggerfall de base. Toutefois, le bruit est plus cohérent (bruit de Perlin multifréquence amélioré), la distance de vue est repoussée et un lissage de Gouraud est utilisé en lieu et place d'un lissage plat. J'implémenterais plus tard une version qui sera plus proche du terrain original, avec un lissage plat et une gestion simplifiée de l'altitude, pour ceux qui préfèreraient avoir une expérience de jeu plus authentique.
Voici un rapide aperçu de ce nouveau terrain tout bosselé :
<dxl_terrain1.png>
<etc.>
Il y a encore du travail mais le terrrain avance bien.