Фонг Шейдинг против тесселяции
Я столкнулся с Phong Shading, глядя на Source Engine. Описание звучит очень похоже на тесселяцию. Но когда я посмотрел, я не нашел ничего, что напрямую сравнивало бы их. Теперь в DirectX Tessellation не используется как Phong Shading в HLSL. Какая разница? И какой я должен использовать?
2 ответа
Затенение Фонга не имеет прямого отношения к тесселяции DX11, но, поскольку они оба могут сгладить детали освещения, я понимаю, как вы можете запутаться.
Тесселяция динамически увеличивает геометрические детали на основе некоторых параметров (часто расстояние от камеры). Это может повысить качество освещения (может быть, это отношение к фонгу?), А также детализацию силуэта. Преимущества затенения (не детали силуэта) можно фактически полностью смоделировать в пиксельных шейдерах без тесселяции.
Затенение по Фонгу - это метод затенения пикселей. Это не влияет на геометрические детали. Это похоже на стандартное затенение Гуро в OpenGL, за исключением того, что вместо интерполяции значения освещения по пикселям поверхности, нормаль интерполируется по поверхности и перенормируется в каждом пикселе. Это дает более точные результаты освещения, часто называемые "освещением на пиксель", а не "освещением на вершину"
Вы можете разумно (и, вероятно, обычно) использовать оба эффекта одновременно в разных частях конвейера.
Как заметил Джастин, Phong Shading - это процедура затенения, используемая для более точного освещения на пиксель. Тесселяция используется для изменения геометрических деталей в сетке путем динамического генерирования большего количества треугольников для достижения более высокой детализации поверхности и более гладкого результата. Он может успешно использоваться для динамического уровня детализации в зависимости от расстояния до камеры или размера на экране.
Чтобы добавить к этой теме, я подумал, что должен упомянуть, что есть алгоритм тесселяции Phong Tessellation, который черпает вдохновение из Phong Shading и применяет этот алгоритм к тесселяции. Это означает, что вершины модифицируются с помощью аналогичной нормальной интерполяции и достигают высокой детализации силуэтов, а также лучшей детализации поверхности. У Phong Tessellation более простой шейдер, чем у обычного локального алгоритма тесселяции PN-Triangles, и я использовал его для достижения более высокого уровня детализации в одной из игр, над которыми я работал.