glsl的texture2d命令如何与GL_LINEAR纹理一起使用

时间:2015-10-06 20:32:15

标签: opengl textures glsl texture2d linear-interpolation

我不确定texture2D命令在带有线性过滤的GLSL中是如何工作的。它如何选择并在像素之间进行线性插值。

想象一下,我的纹理有4个灰度像素,值为{0,1,2,3}。我希望OpenGL能够在一条8像素宽的线上绘制它。 texture2D如何填充这8个像素?

会是这样的:{0,.375(3/8),。75(6/8),1.125(9/8),1.5(12/8),1.875(15/8),2.25 (18/8),2.625(21/8),3}?

1 个答案:

答案 0 :(得分:0)

事实上,问题中有两个方面: - 是的,GL_LINEAR意味着它是每个方向的线性插值(因此,双线性)。 - 现在,纹理像素和屏幕像素可能不会精确地面对面,这取决于顶点的浮点值是将其投影在中心还是角落。所以它改变了第一个,最后一个,甚至是所有中间值。

请注意,对于这些问题,实验比讨论它要快得多:例如,在shadertoy等网站上进行GLSL(ES)快速小型实验非常简单。