OpenGL映射不一致?

OpenGL映射不一致?,opengl,graphics,mipmaps,Opengl,Graphics,Mipmaps,我有一个512X512纹理,它保存了许多我想在我的应用程序中使用的图像。将图像数据添加到纹理后,我保存各个图像的纹理坐标。后来我将这些应用于我正在绘制的一些四边形。纹理已激活mipmapping 当我在两个不同的应用程序运行中,在完全相同的实例上拍摄渲染场景的屏幕快照时,我注意到,仅在使用该mipmapped纹理进行纹理处理的那些四边形之间,图像中存在差异。mipmapping会导致这样的问题吗?我最好的猜测是它与着色器中的精度有关。检查一下我曾经遇到的问题(并与之斗争了一段时间)和我的解决方案

我有一个512X512纹理,它保存了许多我想在我的应用程序中使用的图像。将图像数据添加到纹理后,我保存各个图像的纹理坐标。后来我将这些应用于我正在绘制的一些四边形。纹理已激活mipmapping


当我在两个不同的应用程序运行中,在完全相同的实例上拍摄渲染场景的屏幕快照时,我注意到,仅在使用该mipmapped纹理进行纹理处理的那些四边形之间,图像中存在差异。mipmapping会导致这样的问题吗?

我最好的猜测是它与着色器中的精度有关。检查一下我曾经遇到的问题(并与之斗争了一段时间)和我的解决方案:

它可能是mimapping对纹理图集的自动缩放和着色器代码中的精度提示的组合

另见另一个相关问题:


您能显示屏幕截图吗?很抱歉,我目前无法访问它们。但是,使用bmp compare进行的简单图像比较不仅显示了边界的差异,而且显示了这些具有纹理的四边形内部的差异。要识别这样的问题,您真正应该做的是为每个级别使用假彩色mipmap。(例如,纯红色、黄色、蓝色、绿色)。然后,您可以检测颜色带中的任何差异。顺便说一句,如果相机的角度稍有不同,各向异性过滤可能是原因。如果使用带有mipmapping的纹理图集,则必须非常小心使用mipmapping,如果不采取任何预防措施,不同的图像将相互混合。因此,即使没有各向异性过滤,变换中最细微的差异也可能产生明显的效果。