android - 为 Sprite 表使用纹理时防止间隙/边界

标签 android opengl-es textures

我正在使用带纹理的四边形从 sprite 表中渲染图 block 网格。不幸的是,渲染时,各个图 block 之间存在小间隙:

visual gaps between tiled quads

更改纹理参数以使用 GL_NEAREST 而不是 GL_LINEAR 缩放纹理可以修复此问题,但会导致纹理四边形本身出现伪影。有什么方法可以防止 GL_LINEAR 使用指定 UV 坐标之外的像素进行插值吗?关于如何解决此问题的任何其他建议?

作为引用,这是我正在使用的 Sprite 表:

tile sheet that causes gaps

最佳答案

看起来你的纹理贴图存在精度问题,你使用的是 float (32 位)还是更小的东西?以及如何计算坐标?

在纹理之间留一个 1 像素的边界有时会有所帮助(有时您总是会遇到舍入错误)。

我自己 我使用这个程序 http://www.texturepacker.com/ (不以任何方式附属),你从中得到纹理贴图和 UV 坐标,你也可以在纹理周围指定一个填充,它也可以挤出你纹理周围的最后一种颜色,所以即使得到奇怪的舍入概率你也可以总能得到完美的接缝。

不过,我会先检查您的精度和计算结果。

关于android - 为 Sprite 表使用纹理时防止间隙/边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8115164/

相关文章:

java - glTexImage3D - 无效操作

directx 纹理尺寸

opengl-es - 使用 Three.js 在 WebGL 中的环形几何体上进行非径向纹理映射

android - 使用 Httpsurlconnection 连接到服务器 (SSL)

android - 使用 NativeActivity 硬件缩放 OpenGL 表面

opengl - GLSL 变量默认初始化为什么值?

javascript - webgl 2d 将两个透明纹理相互叠加

android - 使 onSensorChanged 不会减慢 UI

Android:过滤图库结果(日期范围)

android - 使用 app-debug.apk 在我的设备上安装