2009-03-27 3 views
7

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

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

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


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

С помощью google я нашел алгоритм в gamasutra. Любые другие хорошие идеи или выводы? Благодарю.

+0

Похоже, вы используете буфер элемента: http: // stackoverflow.com/questions/498601/what-is-the-best-approach-to-compute-efficiently-the-first-intersection-between-a/570861 # 570861 Это не плохой алгоритм, но будет иметь некоторые проблемы на визуальных краях , –

ответ

3

Он застрял меня, что большинство ответов до сих пор только обсуждает окклюзию изображения порядка , Я не совсем уверен в САПР, но в играх окклюзия начинается на гораздо более высоком уровне, используя деревья BSP, деревья oct и/или рендеринг портала, чтобы быстро определить объекты, которые появляются в пределах усечения просмотра.

+0

+1. DirectX/OpenGL уже выполняет достойную работу по рисованию всего, что вы видите (через Z-буфер). Если вы хотите ограничить количество материала, которое вы оказываете, чтобы получить лучшую производительность, вам нужно изучить один из этих алгоритмов. –

+0

Да; но помимо окклюзии на пикселях, D3D и OpenGL делают граф сцены «волшебным». Обрезания и отбраковки недостаточно, чтобы оправдать отправку всех многоугольников, известных устройству рендеринга, так как обрезка масштабируется несколько линейно. –

5

В играх окклюзия выполняется за сценой, используя одну из двух трехмерных библиотек: DirectX или OpenGL. Чтобы понять специфику, окклюзия выполняется с использованием Z buffer. Каждая точка имеет компонент Z, точки, которые ближе к окклюзии, которые находятся дальше.

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

2

Термин, который вы должны найти, - hidden surface removal.

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

Некоторые интерактивные flash-based demos and explanations.

+0

Этот процесс необходим, но недостаточно. Любой вогнутый объект по-прежнему должен иметь отображаемые поверхности в правильном порядке, и если один объект появляется перед другим, то простое отбрасывание задней поверхности не помогает. –

+0

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

1

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

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

Смежные вопросы