Играя с созданием пейзажей Minecraftish / Lego World в Unity 3D (процедурно генерируемые воксельные ландшафты с кубами), я обнаружил, что сетки, созданные для этих ландшафтов, занимают много памяти. Сетка в настоящее время состоит только из вершин для видимых сторон куба. Использование памяти для сложной местности может занять 6 или 7 сотен мегабайт.
Эти сетки можно оптимизировать, но я изо всех сил пытаюсь найти достойный алгоритм для этого.
Алгоритм должен учитывать, что вы не хотите «объединять» блоки разных типов местности. Я полагаю, что действительно простым началом было бы просто обработать все блоки вдоль одной оси и выполнить дополнительные развертки для двух других осей.
Мне нужно сохранить форму сетки, чтобы не было слияния вершин до такой степени, что меняется пустое или сплошное пространство. Причина в том, что могут быть существа / и т.д., которые все еще должны перемещаться по мешу. Так что я не могу просто создать очень низкую детализацию, искаженную сетку.
Любые мысли / предложения / советы по этому поводу?