Générateur de lightmaps à partir d'une heightmap

Description

Ça faisait longtemps que je ne postais pas tiens !

Ce code est, comme le titre l'indique, un générateur de lightmaps, c'est à dire : on lui fournit une heightmap (une image en niveaux de gris définissant des hauteurs : plus c'est blanc, plus le point est haut, Cf la leçon 34 de NeHe ici : http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=34 ou même une autre de mes sources lol), et il génère une lightmap, c'est à dire une image, toujours en niveaux de gris, définissant les ombres à appliquer au terrain : on plaque cette texture sur tout le terrain et ça correspond aux ombres que font les reliefs.

Pour fonctionner, ce programme opère donc par lancers de rayons : il part d'une image totalement sombre (à vous de définir le niveau de "sombre" dans l'utilisation du prog) et envoie des rayons suivant un certain angle et de la gauche vers la droite. A vous aussi lors de l'utilisation du programme de spécifier l'angle et la hauteur à partir de laquelle part le dernier rayon (depuis la gauche).

Bon ben globalement c'est tout...le programme enregistre au format PNG mais peut ouvrir dans plusieurs autres formats (merci Gdk-Pixbuf :)).

Je n'ai pas testé le programme sous Windows mais je pense qu'il doit fonctionner.

Pour le compiler, il vous faudra la librairie GTK+ dans sa version 2, récupérable sur http://gtk.alkia.org/index.php pour les utilisateurs de Code::Blocks ou Dev-C++.

Si vraiment vous voulez une version précompilée pour Windows, faites-le moi savoir...

Source / Exemple :


Cf le zip

Conclusion :


Si ce programme vous est utile, un p'tit commentaire serait le bienvenu :) (même s'il ne vous est pas utile hein :p).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.