Phong Shading vs Tessellation



我在查看源引擎时遇到了Phong Shading。这个描述听起来很像镶嵌。但是当我查的时候,我并没有找到任何直接比较这两者的东西。现在在DirectX中,镶嵌不像在hsl中使用Phong Shading。有什么区别?我应该用哪一个呢?

Phong着色与DX11镶嵌没有直接关系,但因为它们都可以平滑照明细节,所以我可以看到您可能会感到困惑。

镶嵌动态地增加几何细节基于一些参数(通常是相机距离)。这可以提高照明质量(也许这是与phong的关系?)以及轮廓细节。阴影优势(不是轮廓细节)实际上可以完全在像素着色器中模拟,而不需要镶嵌。

Phong着色是一种像素着色技术。它不影响几何细节。它类似于标准的OpenGL Gouraud阴影,除了在表面的像素上插值照明值,法线是在表面上插值并在每个像素上重新规范化。这提供了更准确的照明结果,通常称为"每像素照明",而不是"每顶点照明"

您可以合理地(并且可能通常)在管道的不同部分同时使用这两种效果。

正如Justin提到的Phong Shading是一个用于更准确的每像素照明的着色例程。镶嵌是通过动态生成更多的三角形来改变网格中的几何细节,以获得更高的表面细节和更平滑的结果。它可以成功地用于动态细节级别,取决于与相机的距离或屏幕上的大小。

为了补充这个主题,我认为我应该提到有一个称为Phong Tessellation的Tessellation算法,它从Phong Shading中获得灵感,并将该算法应用于Tessellation。这意味着顶点用类似的法向插值进行修改,并获得高细节轮廓以及更好的表面细节。Phong Tessellation比其他常见的局部Tessellation算法pn - triangle有一个更简单的着色器,我用它在我的一款游戏中实现了更高细节的头部。

冯氏镶嵌

相关内容

  • 没有找到相关文章

最新更新