Question

I ran across Phong Shading while looking at the Source Engine. The desription sounds very much like Tessellation. But when I looked it up, I didn't really find anything directly comparing the two. Now in DirectX Tessellation isn't used like Phong Shading in HLSL. What's the difference? And which one should I use?

Was it helpful?

Solution

Phong shading is not directly related to DX11 tessellation, but because they both can smooth lighting details I can see how you could be confused.

Tessellation dynamically increases geometric detail based on some parameters (often camera distance). This can increase lighting quality (maybe this is the relationship to phong?) as well as silhouette detail. The shading advantages (not silhouette detail) can actually be simulated entirely in pixel shaders without tessellation.

Phong shading is a pixel shading technique. It does not affect geometric detail. It is similar to standard OpenGL Gouraud shading, except instead of interpolating a lighting value across the pixels of a surface, the normal is interpolated across the surface and renormalized at each pixel. This gives more accurate lighting results often called "per pixel lighting" as opposed to "per vertex lighting"

You could reasonably (and probably commonly) use both effects at the same time at different parts of the pipeline.

OTHER TIPS

As Justin mentioned Phong Shading is a shading routine used for more accurate lighting per pixel. Tessellation is used to alter the geometric detail in a mesh by dynamically generating more triangles to achieve a higher surface detail and a smoother result. It can be used successfully for dynamic level of detail depending on distance to camera or size on screen.

To add to this topic I thought I should mention that there is a Tessellation algorithm called Phong Tessellation that takes inspiration from Phong Shading and applies this algorithm to Tessellation. This means that the vertices are modified with a similar normal interpolation and achieves high detail silhouettes as well as better surface detail. Phong Tessellation has a simpler shader than the common other local tessellation algorithm PN-Triangles and I used this to achieve higher detail heads in one of the games that I worked on.

Phong Tessellation

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top