如何解决纹理地址模式钳制,它如何工作?
| 我正在尝试了解纹理钳制在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];
}
(来源:www.cs.unc.edu上的sud)
对?因此,如果我超出范围,如u方向上的1.1,为什么不将其固定在末尾的黑色上?在此示例中,它不是黑色,而是白色。我误会了吗?为什么黑色旁边的值固定为白色?
或与边缘颜色交替的任何其他扩展。
请帮助我看看我要去哪里。
解决方法
我想我看到了问题。您忽略了纹理的第一行实际上是“白色/黑色”交替线,而不是表面看来是“黑色/白色”线的事实。因此,第一行重复白色/黑色是正确的。在右边缘上发生类似的情况,最后一列重复白色/黑色向下而不是黑色/白色。
这是您的纹理及其轮廓:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。