我试图了解纹理钳制在 OpenGL 或任何其他 API 中是如何工作的。我知道您将操作定义为将范围从 [0,1] 扩展到任何内容,但将其限制在边缘。
所以,如果我有一个伪代码函数:
unsigned int clampedTexel(float u, float v)
{
if(u < 0) u = 0;
if(u >= width) u = width-1;
if(v < 0) v = 0;
if(v >= height) v = height-1;
return image[u][v];
}
正确的?所以,如果我超出范围,比如 u 方向的 1.1,为什么它不被夹在最后的黑色上?在这个例子中,它不是黑色,而是白色。我误解了什么吗?为什么黑色旁边的值被钳制为白色?
或与边缘颜色交替的任何其他扩展。请帮我看看我哪里失败了。