jeudi 10 septembre 2009

rendu d'un terrain de taille 16384*16384


j'ai essayé d'utiliser l'algo avec un terrain plus grand et ça fonctionne assez bien :)

mercredi 9 septembre 2009

video du geoclipmapping


je viens de terminer de gérer la géométrie du terrain : le streaming du terrain se fait lors du déplacement, le maillage circulaire s'adapte au mieux à la visibilité(angle variable), il est possible d'augmenter/diminuer la résolution du maillage, ainsi que de commencer à un niveau de détail moins élevé (si on survole de haut ou qu'on se déplace rapidement), les transitions entre niveau de détails sont gérées sans nécessiter de bloc de liaison

lundi 31 août 2009

aperçu du moteur de terrain

aperçu d'un terrain en mode wireframe.
Il utilise un maillage circulaire et réduit le niveau de détail de manière plus progressive : l'espacement entre chaque maillon est augmenté à chaque fois, ce qui permet d'économiser en nombre de polygone et évite des problèmes de transition entre niveau de détail.
On peut observer sur les textures en rouge que le système de mise à jour toroïdale est maintenant utilisé.

samedi 1 août 2009

rendu wireframe du terrain


voici un rendu en mode wireframe du moteur de terrain par géoclipmapping.
les 3 textures sont les 3 niveaux de détail du terrain.

samedi 20 juin 2009

vacance + avancement du gestionnaire de tiles


je suis en vacance maintenant et j'ai donc recommencé le développement du gestionnaire de terrains.
j'ai commencé à gérer le transfert de données depuis le fichier de donnée vers un buffer temporaire et ensuite de ce buffer vers la texture.
L'image à coté est un exemple de cette gestion. Chaque ligne bleue correspond à la limite des tiles sur la plus grosse résolution, les lignes noires représentent la zone autour de laquelle on centre la vue.

jeudi 5 mars 2009

stockage de plusieurs morceaux de textures dans une plus grosse texture

le geoclipmapping sur gpu permet de mettre à jour les vertex texture et diffuse texture du terrain en utilisant une mise à jour toroïdale (voir partie 2.4 update du document de gpu gem).
pour rendre la mise à jour efficace, je suis en train de coder une fonction pour copier tous les morceaux de texture à mettre à jour dans un seul buffer et de l'envoyer au gpu en une seule fois (et utiliser un rendu sur texture pour mettre à jour les textures du terrain)

samedi 28 février 2009

stockage de données

Je suis en train de finaliser une classe de gestion de stockages de données.
Le format de stockage est un format binaire fonctionnant comme un arbre :
Chaque noeud contient un header avec un unsigned short (2 octets) pour l'opcode et un unsigned int (4 octets) pour la taille du noeud.
Cette structure me permet de charger uniquement les données nécessaires sans lire tout le fichier en me déplaçant dedans.
La modification de données peut être effectuée directement dans l'arbre (ajout/suppression de maillons, modification des données, ...) sans devoir charger tout le fichier également.
J'ai utilisé un classe de stream qui permet d'utiliser ça aussi bien sur des données stockées en mémoire, sur des fichiers ou autre (fichiers sur un serveur,...)