Вопрос

Алгоритм окклюзии необходим в САПР и игровой индустрии.И я думаю, что в этих двух отраслях они разные.Мои вопросы:

  1. Какие алгоритмы окклюзии применяются соответственно в двух отраслях?
  2. и в чем разница?

Я работаю над разработкой программного обеспечения САПР, и алгоритм окклюзии, который мы приняли, заключается в следующем: установите идентификатор объекта в качестве его цвета (целое число), а затем визуализируйте сцену, наконец, прочитайте пиксель, чтобы найти видимые объекты.Спектакль не очень хороший, поэтому я хочу почерпнуть здесь несколько хороших идей.Спасибо.


Прочитав ответы, хочу уточнить, что алгоритмы окклюзии здесь означает «отсечение окклюзии» — найдите видимую поверхность или объекты, прежде чем отправлять их в конвейер.

С помощью Google я нашел алгоритм по адресу Гамасутра.Есть еще хорошие идеи или выводы?Спасибо.

Это было полезно?

Решение

Меня поразило то, что в большинстве ответов пока обсуждается только окклюзия порядка изображений.Я не совсем уверен насчет CAD, но в играх окклюзия начинается на гораздо более высоком уровне, используя BSP-деревья, октябрьские деревья и/или рендеринг порталов для быстрого определения объектов, которые появляются в усеченной пирамиде просмотра.

Другие советы

В играх окклюзия выполняется «за сценой» с использованием одной из двух 3D-библиотек:ДиректХ или OpenGL.Чтобы разобраться в деталях, окклюзия выполняется с помощью Z-буфер.Каждая точка имеет компонент Z: точки, расположенные ближе, перекрывают точки, находящиеся дальше.

Алгоритм окклюзии обычно реализуется аппаратно с помощью специального чипа обработки 3D-графики, реализующего функции DirectX или OpenGL.Игровая программа, использующая DirectX или OpenGL, будет рисовать объекты в трехмерном пространстве, а библиотека OpenGL/DirectX визуализирует сцену с учетом проекции и окклюзии.

Термин, по которому вам следует выполнить поиск: удаление скрытой поверхности.

Рендеринг в реальном времени обычно использует один простой метод удаления скрытых поверхностей:отбраковка задней поверхности.Каждый полигон будет иметь точку «нормали к поверхности», которая предварительно рассчитывается на заданном расстоянии от поверхности.Проверив угол нормали поверхности по отношению к камере, вы узнаете, что поверхность обращена в сторону и, следовательно, ее не нужно визуализировать.

Вот немного интерактива флэш-демо и пояснения.

Аппаратная Z-буферизация пикселей на сегодняшний день является самым простым методом, однако в сценах с высокой плотностью объектов вы все равно можете пытаться визуализировать один и тот же пиксель несколько раз, что в некоторых ситуациях может стать проблемой производительности.- Вам обязательно нужно убедиться, что вы не накладываете на карту и не текстурируете тысячи невидимых объектов.

В настоящее время я думаю об этой проблеме в одном из своих проектов. Я обнаружил, что это стимулировало несколько идей:http://www.cs.tau.ac.il/~dcor/Graphics/adv-slides/short-image-based-culling.pdf

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top