Geometry Instancing

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Geometry Instancing (рус. дублирование геометрии) — программная техника (методика) в трёхмерной компьютерной графике преимущественно реального времени. Суть Geometry Instancing состоит в визуализации множества копий одной полигональной сетки в трёхмерной сцене за один подход. Эта методика используется, как правило, для множества однотипных объектов на сцене, которые расположены достаточно далеко от виртуальной камеры: деревьев, кустов, травы, одинаковых сооружениях и предметах.

Geometry Instancing является прежде всего оптимизационной методикой, то есть он предназначен прежде всего для увеличения скорости визуализации без уменьшения качества. Благодаря тому, что Geometry Instancing факторизирует общие данные между экземплярами для снижения затрачиваемой памяти, он является примером реализации шаблона проектирования «Приспособленец».

Описание[править | править вики-текст]

При использовании стандартного подхода к рендерингу сцены и всех её объектов за один вызов Direct3D формируется только один объект (по вершинам, освещенности и т.д.), будь то персонаж на переднем плане или сотня одинаковых кустов на дальнем. До геометрического инстансинга дальние одинаковые объекты можно было рендерить в качестве спрайтов, т.е. двухмерных текстур. Однако при приближении к таким двухмерным объектам и изменении точки зрения наблюдателя их двухмерная природа станет видна. Geometry Instancing позволяет решить эту проблему. При его использовании можно сразу за один вызов Direct3D отрендерить геометрию всех подобных одинаковых объектов. Это позволит сэкономить ресурсы системы и повысить реалистичность сцены в целом, по сравнению со спрайтами.[1] Несмотря на то, что данные о геометрии при дублировании одинаковы, однако каждая копия может иметь различными другие параметры, такие как цвет или поза скелетной анимации. Благодаря этому можно уменьшить видимость повторяющихся объектов в сцене.

Microsoft впервые добавила Geometry Instancing в Direct3D 9. В OpenGL поддержка геометрического инстансинга была добавлена несколько позже в расширении EXT_draw_instanced, которое было выпущено в ноябре 2006 года.[2]

Первыми графическими картами (видеокартами), которые поддерживали аппаратный инстансинг, стали nVidia GeForce 6800 (NV40) и ATI Radeon 9500 (R300) с драйвером ATI Catalyst 4.8. Все последующие модели также поддерживают геометрический инстансинг аппаратно.[3] Одним из самых первых игровых движков, графическая подсистема которого активно использовала геометрический инстансинг, стал CryEngine от компании Crytek, который использовался в шутере от первого лица Far Cry 2004 года выпуска.[1]

См. также[править | править вики-текст]

  • Спрайт (компьютерная графика) — более ранняя методика, имеющая схожую с Geometry Instancing цель.
  • True Impostors — ещё одна методика с очень схожими целями, при этом более близкая к спрайтам, чем к Geometry Instancing.

Примечания[править | править вики-текст]

  1. 1 2 Андрей Воробьев. Тестирование FarCry версии 1.3. iXBT.com (11 ноября 2004 года). Проверено 8 февраля 2010. Архивировано из первоисточника 11 марта 2012.
  2. Michael Gold. EXT_draw_instanced (англ.) (TXT). Официальный сайт OpenGL (9 мая 2008 года (последняя версия)). Проверено 8 февраля 2010. Архивировано из первоисточника 17 апреля 2012.
  3. fin. Демонстрация/бенчмарк работы функции Geometry Instancing. Overclockers (сайт) (23 августа 2004 года). Проверено 8 февраля 2010. Архивировано из первоисточника 17 апреля 2012.

Внешние ссылки[править | править вики-текст]