是光栅化器使用透视校正插值的每个变化的顶点值(或更新版本的glsl值是否超出顶点着色器)?这是硬件依赖吗?
发生削波时,如何计算削波顶点的值?
我尝试撤消透视校正并注意剪裁的多边形的奇怪行为,我想更好地了解幕后发生的事情。
答案 0 :(得分:3)
Pre-GL 3.0,影响透视校正插值的唯一方法是使用提示。通常,glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
会激活所有变化的透视校正插值,而glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST)
通常会将其关闭。请注意,这些是驱动程序提示,仅此而已;司机不 以这种方式做出反应。
在GLSL 1.30+(OpenGL 3.0+)中,您可以强制每个输出/输入以特定方式进行插值。 interpolation qualifier smooth
表示透视正确;如果您未指定限定符,则这是默认值。 noperspective
表示......显而易见。
剪切总是以这样的方式完成,就好像它没有被剪裁一样(或者在硬件精度范围内足够接近)。因此,如果一个值透视正确插值,那么为剪切顶点生成的值也必须使用透视校正插值。