在最近邻插值OpenGL中心像素的情况下会发生什么

What happens in the case of nearest neighbour interpolation OpenGL centre of pixels

本文关键字:情况下 什么 像素 近邻 最近 插值 OpenGL      更新时间:2023-10-16

当最近邻插值发生时,在纹理中计算最近邻插值的像素与两个相邻像素的距离相同,并且像素距离两个像素的长度相等,它试图在放大的情况下正确插入一个新像素。

OpenGL是否采取两个像素,并从纹理中插值颜色,从两个取平均值在相同的长度距离或其他事情发生?

规范非常清楚如何从纹理坐标中选择纹理:

缩小

第8.14节指定了最小化行为(我在这里跳过了很多关于换行模式等的事情,并解释了2D的情况):

设[s(x,y), t(x,y)]为屏幕位置(x,y)的纹理坐标。现在我们定义u(x,y) = s(x,y) * texture_width和v(x,y) = t(x,y) * texture_height。在最近邻插值的情况下,文本由整数坐标(i,j)给出,其中i = floor(u(x,y)),j = floor(v(x,y))。

让我们做一个例子:假设我们有一个大小为2x1的纹理,查找位置为[0.5,0.5]。在这种情况下,u(x,y) = 0.5 * 2 = 1, v(x,y) = 0.5 * 1 = 0.5。现在我们得到i = floor(1) = 1 j = floor(0.5) = 0。因此,结果将是正确的文本的颜色。

放大

第8.15节说明了放大的行为与缩小的行为完全相同。

相关文章: