【问题标题】:OpenGL mipmapping inconsistent?OpenGL mipmapping 不一致?
【发布时间】:2014-05-08 15:58:20
【问题描述】:

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

当我在应用程序的两次不同运行中对完全相同的实例截取渲染场景的屏幕截图时,我注意到仅在使用此 mipmaped 纹理纹理的四边形之间存在图像差异。 mipmapping 会导致这样的问题吗?

【问题讨论】:

  • 你能显示截图吗?
  • 很抱歉,我目前无法访问它们。但是使用 bmp compare 完成的简单图像比较不仅在边界处显示差异,而且在这些具有纹理的四边形内也存在差异
  • 您真正应该做的是识别此类问题,即为每个级别使用假色 mipmap。 (例如 solid 红色、黄色、蓝色、绿色)。然后,您可以检测色带中的任何差异。顺便说一句,如果相机稍微不同的角度,各向异性过滤可能是罪魁祸首。
  • 如果你使用带有 mipmapping 的纹理图集,你必须非常小心 mipmapping,如果不采取任何预防措施,不同的图像会相互融合。因此,即使没有各向异性过滤,转换中最细微的差异也可能会产生显着影响。

标签: opengl graphics mipmaps


【解决方案1】:

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

opengl texture mapping off by 5-8 pixels

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

另见其他链接问题:

Why is a texture coordinate of 1.0 getting beyond the edge of the texture?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2016-02-01
    相关资源
    最近更新 更多