繁体   English   中英

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

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

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

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节规定放大率的行为与缩小完全相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM