首页 > 解决方案 > 当多个纹素处于相等距离时,在纹理的点采样期间返回哪个纹素值?

问题描述

当多个纹素处于相等距离时,采样器在点/最近邻采样期间返回哪个纹素值?

屏幕像素和纹素重叠

例如:在这种情况下(放大后),对于许多像素(或纹理坐标),2 个纹理像素与其中心的距离相同。将返回哪些纹素用于这些像素的采样。

黑点 = 像素中心黄点 = 纹素中心

标签: openglgraphicsshaderopengl-es-2.0

解决方案


来自OpenGL 维基

如果使用 GL_NEAREST,则实现将选择最接近纹理坐标的纹素

所以最终,显卡供应商决定他们认为最接近的纹素。

一个可能的公式将纹理坐标乘以图像宽度/图像高度并将其向下舍入以获得纹理索引。

(i, j) = floor(uv * (width, height)),

其中*是逐分量乘法。


推荐阅读