En jouant avec la création de paysages du monde minecraftish / lego dans Unity 3D (paysages voxels générés de manière procédurale avec des cubes), je trouve que les maillages créés pour ces paysages prennent beaucoup de mémoire. Le maillage n'est actuellement composé que de sommets pour les côtés visibles d'un cube. L'utilisation de la mémoire pour un terrain complexe peut prendre 6 à 7 cents mégaoctets.
Ces maillages pourraient être optimisés, mais j'ai du mal à trouver un algorithme décent pour le faire.
L'algorithme doit tenir compte du fait que vous ne voulez pas «fusionner» des blocs de différents types de terrain. Je suppose qu'un début très simple pourrait être de simplement traiter tous les blocs le long d'un axe et d'effectuer des balayages supplémentaires pour les deux autres axes.
J'ai besoin de garder la forme du maillage, c'est-à-dire pas de fusion de sommets au point que l'espace vide ou solide est modifié. La raison en est qu'il peut y avoir des créatures / etc qui doivent encore naviguer dans le maillage. Donc, je ne peux pas simplement créer un détail très bas, un maillage déformé.
Des réflexions / suggestions / conseils à ce sujet?