2011-01-12 48 views
2

我有几个关于glTexParameter和过滤的问题glTexParameter和在OpenGL和GLSL中过滤?

1)什么是应用glTexParameter(特别是过滤)的范围?这里有一个场景:

  • 绑定纹理。将滤镜设置为LINEAR
  • 将纹理设置为着色器的“Sampler1”
  • 绑定另一个纹理。设置其筛选器最近
  • 设置该纹理着色器
  • 的“Sampler2”画

当我在着色器使用的纹理,将一个是线性的,而另一个是最近的?或者他们都会因为被称为“最后”而离得最近?

2)是否可以在GLSL中设置过滤方法?

回答

5

1)过滤模式是纹理对象的参数,即过滤模式只适用于设置过滤模式时激活的纹理对象。

2)过滤模式是采样器的一个参数,必须在整个着色器执行过程中保持不变。因此它不能在着色器内改变。然而,可以解决单个纹理级别和采样不适用任何滤波的情况,这可用于实现自定义滤波方法(尽管这些方法性能会低得多)。

2

同样的事情也打扰了我,但是当我看到你的帖子时,我想出了一个解决方案,即在同一着色器上使用最接近的&线性。

首先,将纹理设置为线性。当你需要最近的时候,你只需要将uv位置夹在像素网格的中心。基于线性插值的行为,我希望结果就像最接近的那样。