Я столкнулся с Phong Shading, глядя на Source Engine. Описание очень похоже на Tessellation. Но когда я посмотрел на него, я не нашел ничего прямого сравнения этих двух. Теперь в DirectX Tessellation не используется, как Phong Shading в HLSL. Какая разница? И какой из них я должен использовать?Phong Shading vs Tessellation
ответ
Затенение Phong не имеет прямого отношения к тесселяции DX11, но поскольку они оба могут сгладить детали освещения, я вижу, как вы можете быть смущены.
Tessellation динамически увеличивает геометрическую деталь на основе некоторых параметров (часто расстояние от камеры). Это может увеличить качество освещения (может быть, это отношение к фонгу?), А также детали силуэта. Преимущества затенения (а не детали силуэта) действительно могут быть полностью имитированы в пиксельных шейдерах без тесселяции.
Фонг-затенение - технология пиксельной затенения. Это не влияет на геометрические детали. Он аналогичен стандарту OpenGL Gouraud shading, за исключением того, что вместо интерполяции значения освещения по пикселям поверхности нормаль интерполируется по поверхности и перенормируется на каждом пикселе. Это дает более точные результаты освещения, часто называемые «за пиксельное освещение», в отличие от «для освещения вершин»
Вы можете разумно (и, вероятно, обычно) использовать оба эффекта одновременно в разных частях трубопровода.
+1, имейте в виду, что есть техника затенения Phong (тот, который вы описали, в основном для пиксельного освещения) и модель отражения Phong. Модель отражения Phong также может быть использована с другими методами затенения (например, зарисовкой Гуро). –
@NicoSchertler true, вы могли бы использовать phong только для зеркального, и gouraud для диффузного. –
Как упоминал Джастин, Phong Shading - это затенение, используемое для более точного освещения на пиксель. Тесселяция используется для изменения геометрической детали в сетке путем динамического создания большего количества треугольников для достижения более высокой детализации поверхности и более плавного результата. Его можно успешно использовать для динамического уровня детализации в зависимости от расстояния до камеры или размера экрана.
Чтобы добавить к этой теме, я подумал, что должен упомянуть, что существует алгоритм Тесселяции, называемый Phong Tessellation, который вдохновляет Phong Shading и применяет этот алгоритм к Tessellation. Это означает, что вершины модифицируются с аналогичной нормальной интерполяцией и достигают высоких деталей, а также улучшают детали поверхности. Phong Tessellation имеет более простой шейдер, чем обычный другой локальный алгоритм Tessellation PN-Triangles, и я использовал его для достижения более высоких подробных головок в одной из игр, над которыми я работал.
- 1. Phong shading model
- 2. Specular Shading Phong Model не работает
- 3. Как реализовать отображение рельефа с phong shading
- 4. Raytracing/Phong
- 5. DirectX Tessellation specific algorithem
- 6. Странные зеркальные результаты от GLSL phong shader
- 7. Использование phong и текстур в glsl
- 8. ActiveReports Chart WallXY Shading
- 9. OpenGL Shading Language TRANSFORM_TEX
- 10. Cell Shading LibGdx
- 11. PowerPoint VBA Cell Shading
- 12. ListBox Alternating Shading PowerShell
- 13. Unity No Shading «Fullbright»
- 14. Google Maps Shading - iOS
- 15. Java 2D Shading/Filling
- 16. Raytracing shadow/shading артефакты
- 17. Shading Площадь в Matlab
- 18. HLSL shading distance fade
- 19. OpenGL shading glitch glsl
- 20. Подсветка Blinn-Phong - наилучший расчет полного цвета
- 21. Glsl phong shader and camera
- 22. Составляя компоненты ADS (Phong/Gourang)
- 23. GLSL Phong-Shader Зеркальные артефакты
- 24. custom phong shader envMap flipped
- 25. Phong Lighting в Vertex Shader
- 26. GLSL Tessellation shader Число треугольников/граней?
- 27. Хороший ресурс по шаблону subdivisonation tessellation
- 28. 2D Cel-Shading в JavaFX
- 29. OpenGL Shading Language обратной совместимости
- 30. OpenGLES 1.x Toon shading
В вики-статье, есть такое же количество полигонов в обоих изображениях. Присмотревшись к краю, вы увидите одинаковое количество сегментов. Трюк, а? : D – user2246674
@ user2246674 lol вам нужно имя пользователя, вы смутили меня на секунду. + 1, это показывает фундаментальное различие. –
Исправлено мое имя пользователя :). –