Как работает генератор Mesh LOD
Mesh LOD предоставляет генератор LOD, который запускается во время импорта модели.
Генератор LOD анализирует сетку и определяет, какие рёбра свернуться, а какие треугольники сохранить, сохраняя при этом первоначальную форму и избегая визуальных артефактов. После выбора треугольников для сохранения для LOD, генератор сохраняет индексы треугольников в буфере индексов первоначальной сетки.
Изначальная сетка должна иметь по крайней мере 256 треугольников для начала процесса упрощения.
В первой итерации генератор запускается на исходной сетке. В каждой последующей итерации он запускается на сетке LOD из предыдущей итерации и добавляет набор индексов в буфер индексов. Генератор не добавляет никаких новых вершин. Все LODs повторно используют один и тот же буфер вершин.
Каждый последующий LOD содержит приблизительно в половину меньше индексов, чем предыдущий.
Процесс создания прекращается, когда выполняется одно из следующих условий:
Генератор достигает индекса LOD, указанного в настройке Limit LODs.
Для продолжения упрощения сетки не хватает треугольников. В большинстве случаев минимальное число составляет около 64.
Генератор не может пропустить больше вершин.
Часть буфера индекса, которую использует конкретный LOD, определяется следующим образом: MeshLodRange структура. Диапазон индексов задаётся относительно диапазона субмеша.
Генератор LOD работает лучше всего для органических форм или относительно плоских поверхностей с высокой плотностью вершин, например: живые существа, скалы, скульптуры и т.д. Генератор может дать нежелательные результаты на мешах с высокой кривизной или мешах, состоящих из многих разъединенных частей.
Сетка LOD посадочное место памяти
Особенностью Mesh LOD является хранение всех данных о LODs в индексном буфере первоначальной сетки. Каждая последующая LOD содержит примерно в половину меньше индексов, чем предыдущая. Максимальное увеличение размера первоначального индексного буфера составляет 100%. Это увеличение меньше, если вы используете свойство Maximum Levels или свойство Discard Odd Levels.
Индексный буфер сетки относительно мал по сравнению с общим размером сетки. Это делает посадочное место памяти Mesh LOD меньше, чем посадочное место Группы LOD. С Группой LOD, Unity должен хранить полную сетку с вершинами и индексным буфером для каждой LOD, а также дополнительные GameObjects и компоненты.