Я в настоящее время изучаю трехмерную и трехмерную графику в первый раз и пытаюсь создать движок воксела (думаю, Minecraft, Infiniminer). Я обнаружил, что мой сценарий занимает много памяти, но у меня есть подозрения, почему: каждый блок, который я создаю, использует новый объект Mesh, даже если некоторые из блоков выглядят одинаково.Reusing three.js meshes (for voxel worlds)
Я спросил некоторых людей, которых я знал, знают ли они о более эффективном с точки зрения памяти способе сделать это - они предложили создать один Mesh для каждого типа блока и использовать матрицы для преобразования Mesh для каждого экземпляра блока (они " знакомы с OpenGL, но не так много three.js). Имеет ли three.js что-то вроде этого? Если да, как бы вы это сделали, а если нет, есть ли другие альтернативы?
(До сих пор я понимаю, что каждый элемент, который вы хотите визуализировать, должен находиться в графе сцены, поэтому, даже если несколько блоков выглядят одинаково, вам нужно добавить несколько копий блока (с разными x, y, z coords) на диаграмме. Возможно, я ошибаюсь.)
По внешнему виду линии 92 Я думаю, что каждая пирамида - это свой собственный объект Mesh, хотя ... («новый». THREE.Mesh (геометрия, материал)) – Sp3000
да, вы правы, похоже, что они создают 500 треугольников в этом заявлении. :( –