何时禁用透视校正插值(非透视)


13

在GLSL中,顶点属性的透视正确插值是默认设置-可以通过使用非透视限定符对特定的顶点属性禁用它。除了在后处理着色器中,我从未见过禁用透视校正的正确插值-还有其他用例吗?此外,从性能角度来看,它是否还会有所作为?

Answers:


15

用例仅受您的想象力限制!noperspective表示将属性插值到整个三角形上,就像三角形在屏幕表面上完全平坦一样。您可以使用以下方法进行抗锯齿的线框渲染:将屏幕空间距离作为noperspective变化输出到最近的边缘,并将其用作像素着色器中的覆盖率。

或者,如果您要进行非照片级逼真的渲染,并希望在屏幕空间中使用半色调等图案,则可以启用noperspective用于纹理化的UV。

它会影响性能吗?可能,但是您可能不会注意到(潜在的例外是功能较弱的图形硬件)。大多数GPU由一系列并行执行的管线阶段组成,从某种意义上讲,您只需为最昂贵的阶段支付费用。如果光栅化对您来说是最大的限制,那么您可能会发现与跳过每个像素的划分有所不同。我想在渲染阴影贴图或深度预先通过时最有可能,但是这些插值属性也最少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.