2013-05-21 5 views
0

Я столкнулся с Phong Shading, глядя на Source Engine. Описание очень похоже на Tessellation. Но когда я посмотрел на него, я не нашел ничего прямого сравнения этих двух. Теперь в DirectX Tessellation не используется, как Phong Shading в HLSL. Какая разница? И какой из них я должен использовать?Phong Shading vs Tessellation

+1

В вики-статье, есть такое же количество полигонов в обоих изображениях. Присмотревшись к краю, вы увидите одинаковое количество сегментов. Трюк, а? : D – user2246674

+0

@ user2246674 lol вам нужно имя пользователя, вы смутили меня на секунду. + 1, это показывает фундаментальное различие. –

+0

Исправлено мое имя пользователя :). –

ответ

3

Затенение Phong не имеет прямого отношения к тесселяции DX11, но поскольку они оба могут сгладить детали освещения, я вижу, как вы можете быть смущены.

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

Фонг-затенение - технология пиксельной затенения. Это не влияет на геометрические детали. Он аналогичен стандарту OpenGL Gouraud shading, за исключением того, что вместо интерполяции значения освещения по пикселям поверхности нормаль интерполируется по поверхности и перенормируется на каждом пикселе. Это дает более точные результаты освещения, часто называемые «за пиксельное освещение», в отличие от «для освещения вершин»

Вы можете разумно (и, вероятно, обычно) использовать оба эффекта одновременно в разных частях трубопровода.

+0

+1, имейте в виду, что есть техника затенения Phong (тот, который вы описали, в основном для пиксельного освещения) и модель отражения Phong. Модель отражения Phong также может быть использована с другими методами затенения (например, зарисовкой Гуро). –

+0

@NicoSchertler true, вы могли бы использовать phong только для зеркального, и gouraud для диффузного. –

1

Как упоминал Джастин, Phong Shading - это затенение, используемое для более точного освещения на пиксель. Тесселяция используется для изменения геометрической детали в сетке путем динамического создания большего количества треугольников для достижения более высокой детализации поверхности и более плавного результата. Его можно успешно использовать для динамического уровня детализации в зависимости от расстояния до камеры или размера экрана.

Чтобы добавить к этой теме, я подумал, что должен упомянуть, что существует алгоритм Тесселяции, называемый Phong Tessellation, который вдохновляет Phong Shading и применяет этот алгоритм к Tessellation. Это означает, что вершины модифицируются с аналогичной нормальной интерполяцией и достигают высоких деталей, а также улучшают детали поверхности. Phong Tessellation имеет более простой шейдер, чем обычный другой локальный алгоритм Tessellation PN-Triangles, и я использовал его для достижения более высоких подробных головок в одной из игр, над которыми я работал.

Phong Tessellation