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. Архивировано 9 мая 2012 года.
  2. Michael Gold. EXT_draw_instanced (англ.) (TXT). Официальный сайт OpenGL (9 мая 2008). Дата обращения: 8 февраля 2010. Архивировано 17 апреля 2012 года.
  3. fin. Демонстрация/бенчмарк работы функции Geometry Instancing. Overclockers (сайт) (23 августа 2004). Дата обращения: 8 февраля 2010. Архивировано 7 января 2010 года.

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