В настоящее время я впервые изучаю three.js и 3D-графику и пытаюсь создать воксельный движок (например, Minecraft, Infiniminer). Я обнаружил, что мой скрипт занимает много памяти, но у меня есть подозрения почему - каждый блок, который я создаю, использует новый объект Mesh, даже если некоторые из блоков выглядят одинаково.
Я спросил некоторых людей, которых я знал, знают ли они о более эффективном использовании памяти способа сделать это - они предложили создать одну сетку для каждого типа блока и использовать матрицы для преобразования сетки для каждого экземпляра блока (они знакомы с OpenGL , но не столько в three.js). Позволяет ли three.js что-то подобное? Если да, то как бы вы поступили, а если нет, то есть ли другие альтернативы?
(До сих пор я понимаю, что каждый элемент, который вы хотите визуализировать, должен быть в графе сцены, поэтому, даже если несколько блоков выглядят одинаково, вам нужно добавить несколько копий блока (с разными координатами x, y, z). график. Я, вероятно, ошибаюсь.)