stringtranslate.com

Прозрачность, не зависящая от порядка

Независимая от порядка прозрачность (OIT) — это класс методов в растровой компьютерной графике для рендеринга прозрачности в трехмерной сцене, которые не требуют рендеринга геометрии в отсортированном порядке для альфа-композиции .

Описание

Обычно 3D-геометрия с прозрачностью визуализируется путем смешивания (с использованием альфа-композиции ) всех поверхностей в один буфер (представьте себе холст). Каждая поверхность закрывает существующий цвет и добавляет немного своего собственного цвета в зависимости от своего альфа- значения, коэффициента пропускания света . Порядок, в котором смешиваются поверхности, влияет на общую окклюзию или видимость каждой поверхности. Для получения правильного результата поверхности должны быть смешаны от самой дальней к ближайшей или от самой дальней к самой дальней, в зависимости от операции альфа-композиции , над или под . Упорядочение может быть достигнуто путем визуализации геометрии в отсортированном порядке, например, сортировки треугольников по глубине, но может занять значительное количество времени, не всегда дает решение (в случае пересекающейся или круговой перекрывающейся геометрии), и реализация сложна. Вместо этого независимая от порядка прозрачность сортирует геометрию попиксельно после растеризации. Для получения точных результатов это требует сохранения всех фрагментов перед сортировкой и композицией.

История

A -буфер — это технология компьютерной графики, представленная в 1984 году, которая позволяет хранить попиксельные списки фрагментных данных (включая информацию о микрополигонах ) в программном растеризаторе REYES , изначально разработанном для сглаживания , но также поддерживающем прозрачность.

Совсем недавно, в 2001 году, deep peeling [1] описал аппаратно-ускоренную технику OIT. С ограничениями в графическом оборудовании геометрия сцены должна была визуализироваться много раз. Затем последовало несколько техник, чтобы улучшить производительность deep peeling, все еще с ограничением многопроходного рендеринга. Например, Dual Depth Peeling (2008). [2]

В 2009 году в аппаратном обеспечении/драйверах/графических API ГП появились две важные функции, которые позволили захватывать и сохранять фрагментные данные за один проход рендеринга сцены, что ранее было невозможно. Это возможность записи в произвольную память ГП из шейдеров и атомарных операций. Благодаря этим функциям стал возможен новый класс методов OIT, не требующих множества проходов рендеринга геометрии сцены.

Точный ОИТ

Точный, в отличие от приблизительного, OIT точно вычисляет конечный цвет, для которого все фрагменты должны быть отсортированы. Для сцен с высокой глубиной сложности сортировка становится узким местом.

Одной из проблем этапа сортировки является ограниченная занятость локальной памяти , в данном случае атрибут SIMT , связанный с пропускной способностью и скрытием задержки работы графических процессоров. Обратное распределение памяти [8] (BMA) группирует пиксели по их глубинной сложности и сортирует их партиями для улучшения занятости и, следовательно, производительности пикселей с низкой глубинной сложностью в контексте сцены с потенциально высокой глубинной сложностью. Сообщается о трехкратном увеличении общей производительности OIT.

Сортировка обычно выполняется в локальном массиве, однако производительность можно повысить еще больше, используя иерархию памяти графического процессора и сортировку в регистрах [9] , аналогично внешней сортировке слиянием , особенно в сочетании с BMA.

Приблизительный OIT

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

OIT в аппаратном обеспечении

Смотрите также

Ссылки

  1. ^ Эверитт, Касс (2001-05-15). "Интерактивная порядково-независимая прозрачность". Nvidia . Архивировано из оригинала 2011-09-27 . Получено 2008-10-12 .
  2. ^ Бавойл, Луи (февраль 2008 г.). "Независимая прозрачность с двойной глубиной отслоения" (PDF) . Nvidia . Получено 12.03.2013 .
  3. ^ Фан Лю, Мэн-Чэн Хуан, Сюэ-Хуэй Лю и Эн-Хуа Ву. «Однопроходное глубинное шелушение с помощью растеризатора CUDA», в SIGGRAPH 2009: Доклады (SIGGRAPH '09), 2009
  4. ^ Крейг Пипер. «Проход префиксной суммы для линеаризации хранилища A-буфера», Заявка на патент, декабрь 2008 г.
  5. ^ Марилена Мауле и Жуан Л. Д. Комба и Рафаэль Торчельсен и Руи Бастос. «Оптимизированная для памяти порядково-независимая прозрачность с динамическим буфером фрагментов», в Computers & Graphics, 2014.
  6. ^ ab Pyarelal Knowles, Geoff Leach и Fabio Zambetta. "Глава 20: Эффективные методы многослойного буфера фрагментов", OpenGL Insights, страницы 279-292, редакторы Cozzi и Riccio, CRC Press, 2012
  7. ^ Джейсон С. Янг, Джастин Хенсли, Хольгер Грюн и Николас Тибьерос. «Концептуальное построение связанных списков в реальном времени на GPU», в трудах 21-й конференции Eurographics по рендерингу (EGSR'10), 2010 г.
  8. ^ Knowles; et al. (октябрь 2013 г.). "Backwards Memory Allocation and Improved OIT" (PDF) . Eurographics Digital Library. Архивировано из оригинала (PDF) 2014-03-02 . Получено 2014-01-21 .
  9. ^ Knowles; et al. (Июнь 2014). "Быстрая сортировка для точного OIT сложных сцен" (PDF) . Springer Berlin Heidelberg . Архивировано из оригинала (PDF) 2014-08-09 . Получено 2014-08-05 .
  10. ^ Эндертон, Эрик (nd). «Стохастическая прозрачность» (PDF) . Труды IEEE по визуализации и компьютерной графике . 17 (8). Nvidia : 1036–1047. doi :10.1109/TVCG.2010.123. PMID  20921587 . Получено 12.03.2013 .
  11. ^ Salvi; et al. (2013-07-18). "Адаптивная прозрачность" . Получено 2014-01-21 .
  12. ^ Дэвис, Ли (2013-07-18). «Порядково-независимая аппроксимация прозрачности с синхронизацией пикселей». Intel . Получено 2014-01-21 .
  13. ^ МакГвайр, Морган; Бавойл, Луис (2013). «Взвешенная смешанная порядково-независимая прозрачность». Журнал компьютерных графических технологий . 2 (2): 122–141.
  14. ^ "Оптимизация производительности Dreamcast Microsoft Direct3D". Microsoft . 1999-03-01.