Тесселяция против геометрии Шейдер

Исправьте меня, если я ошибаюсь, но задание Geometry Shader и Tessellation Shader должно генерировать вершины в графическом конвейере. Я хотел бы знать, как они отличаются друг от друга и когда я должен использовать один над другим?

10 голосов | спросил Caesar 30 Maypm14 2014, 22:44:09

1 ответ


13

На самом деле нет, «работа» геометрического шейдера (GS) - это предварительная оценка.

Геометрические шейдеры могут быть привязаны, но они ограничены: a) верхними границами процесса в отношении количества выходных элементов и b) выполнением в пределах одного шейдера ... Конечно, шейдерный инстанс снимает вторую проблему, но в целом геометрические шейдеры более эффективны при первичной оценке и /или интерполяции значений, чем при тесселяции.

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

У Даниэля Ракоса есть хорошая статья об эволюции GS /TS: История тесселяции оборудования

Когда применять каждый из них - это случай «использования правильного инструмента для задания», и вот как это сделать: Build черновой трубопровод без тесселятора, чтобы получить примитивы, правильно оценивающие в VS /GS /FS. Разделите область тесселяции на основе представлений или сцен, затем вставьте TS перед GS, чтобы уплотнить примитивы, которые затем передаются в ваши уже разработанные GS. Если вы хотите попробовать другой TS, тогда создайте альтернативу и замените ее на конвейер ... вы даже можете использовать instanced GS для динамического выбора правильного TS на основе свойств примитива!

ответил JasonInVegas 9 J0000006Europe/Moscow 2014, 02:06:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132