2014-01-27 134 views
-1

我正在为Android应用程序的瓷砖地图系统上工作,我试图平铺一个钻石等轴测图,现在它工作正常,但只要我将mipmapping打开(如你可以放大和缩小)纹理变成黑色轮廓。OpenGL ES 1.1 Android Mipmap纹理上不需要的黑色轮廓

我附上了一张图片,所以你可以看到我的意思,我尝试了很多方法,并搜索了几十个搜索谷歌无济于事。

我尝试过试验不同的混合选项,但那也行不通。我可以确认它在mipmapping关闭时工作正常,但纹理变得粗糙,所以这对我来说不是一个可行的解决方案。

我确实使用了图集的配料,图集有边框填充,每个图片都有边框填充,我的纹理是POT。

我也测试过这个,没有将四边形转换成倾斜的菱形,但问题也存在那里。

我使用自动生成mipmaps功能OpenGL ES 1.1。

enter image description here

回答

0

什么颜色是你的图集图像之间的填充?如果它是黑色(或者可能是透明的黑色),那么问题是当使用较小的mipmap时它会渗入图像中。它应该有一个与图像边缘延伸相同颜色的边框,因为这可以防止出血。

如果边框颜色正确,可能需要更多信息。

+0

地图集的背景是透明的,图像格式是RGBA8888。我认为这是流血,因为如果没有填充,某些瓷砖会产生其他纹理的伪影。但给填充修复这个问题。我猜这是造成这个问题的原因。 –

+0

由于奇怪的方式没有预测到alpha混合工作,甚至透明的黑色都会将黑色渗入相邻的不透明纹理元素。如果您使用premultipled-alpha图像,问题应该消失。 –

+0

我给了一个尝试与预倍α相同的问题仍然存在。 –