Введение

Техника, используемая в рендеринге в реальном времени. В компьютерной графике в реальном времени инстанцирование геометрии — это практика одновременного рендеринга нескольких копий одной и той же модели в сцене. Эта техника в основном используется для объектов, таких как деревья, трава или здания, которые могут быть представлены повторяющейся геометрией без излишней однообразности, но также может применяться и к персонажам. Хотя данные вершин дублируются во всех инстансах, каждый экземпляр может иметь различные параметры (например, цвет или позу скелетной анимации), которые изменяются для уменьшения ощущения повторения.

Поддержка API

Начиная с версии Direct3D 9, Microsoft добавила поддержку инстанцирования геометрии. Этот метод повышает потенциальную производительность рендеринга инстанцированной геометрии во время выполнения, явно позволяя последовательно рендерить несколько копий сетки путем указания различающих параметров для каждой из них в отдельном потоке данных. Аналогичная функциональность доступна в ядре Vulkan и в ядре OpenGL, начиная с версии 3.1, но в некоторых более ранних реализациях может быть доступна через расширение EXT_draw_instanced.

В автономном режиме

Геометрическое инстанцирование в Houdini, Maya или других 3D-пакетах обычно заключается в сопоставлении статического или предварительно анимированного объекта или геометрии с частицами или произвольными точками в пространстве, которые затем могут быть отрисованы практически любым оффлайн-рендерером. Геометрическое инстанцирование в оффлайн-рендеринге полезно для создания таких объектов, как рои насекомых, где каждый отдельный объект может быть детализированным, но при этом ведет себя реалистично и не требует ручной анимации. Большинство пакетов позволяют изменять материал или параметры материала для каждого экземпляра в отдельности, что помогает избежать появления точных копий. В Houdini многие атрибуты объекта (например, масштаб) также могут быть изменены для каждого экземпляра. Поскольку инстанцирование геометрии в большинстве 3D-пакетов лишь ссылается на исходный объект, размер файлов остается небольшим, а изменение исходного объекта отражается на всех экземплярах. Во многих оффлайн-рендерах, таких как Pixar's PhotoRealistic RenderMan, инстанцирование реализуется с помощью процедурных техник рендеринга с отложенной загрузкой, которые загружают геометрию только тогда, когда происходит рендеринг области, содержащей экземпляр. Это означает, что геометрия для всех экземпляров не должна одновременно находиться в памяти.