С современными fillrate и отложенным рендерингом, все еще актуален выборочный процесс окклюзии?

10

Например, несмотря на то, что это текущий самый лучший графический процессор, GTX 980 имеет ошеломляющую скорость заполнения 72,1 гигапикселя / секунду, что при рендеринге задних сторон и / или проверках Z-буфера кажется почти смехотворно большим, возможно, даже в разрешении 4k. Что касается количества полигонов, современные графические процессоры могут делать десятки и сотни миллионов текстурированных треугольников без заминки, если вы их пакетируете и / или создаете правильно.

При прямом рендеринге количество фрагментов, на которых будут работать шейдеры, может быстро стать подавляющим, но при отложенном рендеринге стоимость, как правило, более или менее постоянна, в зависимости от разрешения, и мы уже давно прошли точку, когда большинство затенений или эффекты постобработки могут быть выполнены в режиме реального времени в 1080p.

В любом случае, ограничивающими факторами в настоящее время являются чаще всего подсчет количества вызовов и затраты на затенение, которые поддерживаются на относительно низком уровне благодаря надлежащему отложенному рендерингу и пакетной обработке геометрии, поэтому, имея в виду, отбраковку не только задних и выходных данных. Полигоны Frustrum какой-либо существенной выгоды? Разве затраты (время CPU / GPU, время программиста) не перевесят преимущества?

Llamageddon
источник
1080p это новый пиксель арт.
Джесси

Ответы:

9

Да, отбор окклюзии все еще стоит.

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

На SIGGRAPH 2015 была представлена отличная презентация от двух студий Ubisoft о конвейерах рендеринга на GPU. На первый взгляд, это о некоторых вещах, которые вы упомянули: пакетирование и создание экземпляров, уменьшение количества вызовов отрисовки. Но одно из основных преимуществ, которые они получают от конвейера на основе графического процессора, - это невероятно мелкозернистый отбор окклюзии: лучший отбор, чем вы обычно можете видеть на уровне извлечения вызовов. Все дело в асимптотическом приближении к цели: обрабатывать только то, что вы видите, а это значит, что то, что вы видите, выглядит лучше.

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

Джон Калсбек
источник
Как насчет того, когда вершинные шейдеры используются для деформации сеток? (что, я полагаю, возможно ... Я новичок в графическом программировании)
Llamageddon
Кроме того, есть ли у вас какие-либо документы по выбору прикуса с помощью графического процессора? Это встроенная функция современных графических процессоров или ..?
Лламагеддон,
@Llamageddon В современных архитектурах графических процессоров вершинный шейдер всегда запущен и способен деформировать сетки - это просто негибкое преобразование вершин. Более дорогой вершинный шейдер, который выполняет больше работы, - это, конечно, больше работы, которая будет пропущена при отбраковке. У меня нет никаких работ по выбраковке GPU, академия, кажется, не очень увлечена этим. Это не встроенная функция графических процессоров, а просто творческое использование вычислений.
Джон Калсбек
О, я имел в виду, как насчет отбраковки сеток, которые будут деформированы? Вы отбираете их после запуска вершинных шейдеров? Это звучит запутанно.
Лламагеддон,
@Llamageddon Обычно вы просто отбрасываете их против консервативного тома. Или несколько меньших объемов, которые вы деформируете с помощью сетки (например, при снятии шкурки вы можете прикрепить объемы выбраковки к соединениям).
Джон Калсбек
2

Это зависит от стиля игры, насколько требуется отбраковка. Например, шутеры от первого лица извлекают из этого большую выгоду, так как в каждый момент времени появляется много вещей, в то время как RTS с видом сверху - нет, поскольку вы эффективно смотрите на самолет с вещами в этом самолете. Даже в RTS, тем не менее, выполнение «только рендеринга глубины» для устранения перерисовки все еще полезно.

Алан Вульф
источник