11 votes

CLOD texturation large de la planète en OpenGL

Je termine une planète en 3D avec ROAM (niveau de détail continu).

Mon objectif est maintenant d'obtenir un rendu de bonne qualité en utilisant des textures.

J'essaie de trouver un moyen d'utiliser un système de tuiles (petites textures bien combinées), mais d'une manière qui me permette de tirer parti de mon maillage CLOD.

Les algorithmes actuels (d'après ce que j'ai trouvé) qui utilisent ce système de tuilage produisent une énorme texture et l'appliquent ensuite directement. Ce n'est pas ce que je veux... la planète est très grande, et je veux plus de puissance qu'une simple augmentation de la taille de la texture.

Existe-t-il un algorithme connu ou une fonction d'Opengl pour ce genre de choses ?

Je ne connais pas grand chose aux shaders, mais est-il possible d'en créer un qui peigne un objet seul ? Je veux dire, ne pas donner les texcoords, mais mettre la bonne couleur pour chaque pixel (pas vertex) du mesh ?

PS : Mon monde est construit en utilisant le bruit perlin... donc je peux obtenir la hauteur en n'importe quel point du monde (carte de hauteur avec une résolution infinie)

2voto

Marysia Points 1

Vous avez utilisé le bruit 3D Perlin pour le terrain, pourquoi ne pas générer la texture également ? En général, les programmes comme Terragen, Vistapro et autres utilisent l'altitude pour sélectionner aléatoirement une gamme de couleurs dans la palette, modifier cette couleur en fonction de la pente, et éventuellement ajouter des détails à partir de textures plus petites basées à la fois sur la pente et l'altitude. Dans votre cas, la distance pourrait également modifier les détails. D'ailleurs, le bruit de perlin 2d fonctionnerait bien comme texture de détail.

Avez-vous modifié la carte des hauteurs ? Quelque chose comme un océan serait difficile à réaliser avec du bruit de Perlin 3d pur, mais aplatir tout ce qui est en dessous d'une certaine altitude et appliquer une belle texture d'océan algorithmique (bruit de Perlin 2d correctement réglé avec transparence en dessous d'un certain niveau) aurait un bel effet.

0voto

shoosh Points 34322

Cet article :
http://johanneskopf.de/publications/blue_noise/
fait quelque chose de similaire pour les images 2D. Voir la vidéo.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X