directxshadertesselationphong

Phong Shading vs Tessellation


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?


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.