栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

1附近的纹理坐标表现异常

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1附近的纹理坐标表现异常

使用
GL_CLAMP_TO_EDGE
您的纹理的
GL_TEXTURE_WRAP_S

出现此问题的部分原因是纹理坐标 1.0 引用的位置超出了最后一个texel的中心。钳夹到边缘将使您的坐标沿该

S
方向被钳夹到边缘纹理像素的中心。

对纹理进行采样时,如果坐标不指向确切的纹理像素中心,则过滤器模式和环绕行为将指示从何处获取纹理像素。默认情况下,OpenGL使用重复模式,因此,接近
1.0
的纹理坐标的最近邻居(最近的纹理像素中心)可能来自纹理的另一侧(重复)。对于普通图像,您甚至可能没有注意到这种行为,但是当您将其环绕在查找表的另一侧时,不连续性可能非常明显。

这是说明此的图:

http://i.msdn.microsoft.com/dynimg/IC83860.gif

注意,纹理坐标 1.0 实际上是如何引用调色板条目 30 之间的边界的?

简短的版本是,如果您的范围是从 0.01.0,
则您的纹理坐标都没有参考texel中心,您可以轻松结束错误的texel采样。您需要调整坐标,以免每个调色板条目都使用纹理像素边界。


另外,由于您使用的GLSL≥130,因此可以

texelFetch(...)
完全忽略所有这些归一化的纹理坐标。如果要使用其
a
组件获取纹理的调色板条目,请尝试如下操作:

gl_FragColor = texelFetch (palette, (int)(texture2D (texture, uv).a * 255.0), 0);

这将显式获取整数索引给定的纹理元素。您不必担心最近的邻居,包装模式,过滤等。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号