InstancedMesh - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать InstancedMesh в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

Mesh →

# InstancedMesh

Специальная версия Mesh с поддержкой экземплярного рендеринга. Используйте InstancedMesh если вам необходимо отрендерить большое количество объектов с одинаковой геометрией и материалом, но с разными мировыми преобразованиями. Использование InstancedMesh поможет вам уменьшить количество вызовов отрисовки и тем самым улучшить общую производительность рендеринга в вашем приложении.

## Конструктор

### InstancedMesh(geometry : BufferGeometry, material : Material, count : Integer)

- geometry — экземпляр BufferGeometry.
- material — экземпляр Material. По умолчанию это новый MeshBasicMaterial.
- count — количество экземпляров.

## Свойства

Общие свойства см. в базовом классе Mesh.

### # .count : Integer

Количество экземпляров. Значение `count`, переданное в конструктор, представляет собой максимальное количество экземпляров этого меша. Вы можете изменить количество экземпляров во время выполнения на целочисленное значение в диапазоне [0, count].

Если вам нужно больше экземпляров, чем первоначальное значение подсчета, вы должны создать новый InstancedMesh.

### # .instanceColor : BufferAttribute

Представляет цвета экземпляров. По умолчанию `null`. Вы должны установить параметр needsUpdate в `true`, если вы изменяете данные экземпляра через .setColorAt().

### # .instanceMatrix : BufferAttribute

Представляет собой локальное преобразование экземпляров. Вы должны установить параметр needsUpdate в `true`, если вы изменяете данные экземпляра через .setMatrixAt().

### # .isInstancedMesh : Boolean

Флаг, указывающий, что данный объект является экземпляром InstancedMesh. Только для чтения.

## Методы

Общие методы см. в базовом классе Mesh.

### # .dispose()

Освобождает все связанные с GPU ресурсы, используемые экземпляром InstancedMesh. Этот метод следует вызвать, если InstancedMesh больше не используется в приложении.

### # .getColorAt(index : Integer, color : Color)

- index — индекс экземпляра. Значения должны находиться в диапазоне [0, count].
- color — этот цвет объекта будет установлен как цвет определяемого экземпляра.

Получить цвет указанного экземпляра.

### # .getMatrixAt(index : Integer, matrix : Matrix4)

- index — индекс экземпляра. Значения должны находиться в диапазоне [0, count].
- matrix — эта матрица 4x4 будет установлена в локальную матрицу преобразования определенного экземпляра.

Получить локальную матрицу преобразования указанного экземпляра.

### # .setColorAt(index : Integer, color : Color)

- index — индекс экземпляра. Значения должны находиться в диапазоне [0, count].
- color — цвет отдельного экземпляра.

Устанавливает цвет для указанного экземпляра. Убедитесь, что значение параметра .instanceColor.needsUpdate равно `true` после обновления всех цветов.

### # .setMatrixAt(index : Integer, matrix : Matrix4)

- index — индекс экземпляра. Значения должны находиться в диапазоне [0, count].
- matrix — матрица 4x4, представляющая локальную трансформацию одного экземпляра.

Устанавливает локальную матрицу преобразования для указанного экземпляра. Убедитесь, что после обновления всех матриц вы установили параметр .instanceMatrix.needsUpdate в `true`.

## Пазлы

Используйте следующий пазл для создания экземплярных объектов без программирования: create instances.

## Исходный файл

О том как получить исходный код этого модуля читайте тут.