【问题标题】:SOIL, problems with NPOT textures土壤,NPOT 纹理的问题
【发布时间】:2013-08-09 14:32:41
【问题描述】:

我可以加载 725x483 jpg 纹理,但不能加载 725x544

代码:

texId = SOIL_load_OGL_texture(fileName, SOIL_LOAD_AUTO, 
                              SOIL_CREATE_NEW_ID, 0);

我得到了错误: Access violation reading location 0x06851002 - VS2012 快递

我对 SOIL 进行了一些调试,似乎是在我们调用 glTexImage2D(在 SOIL 库中)之后出现错误。

当我将SOIL_FLAG_MIPMAP 添加到加载代码时,它工作正常。

AMD (5570) 和 Intel (HD 4000) 也出现此错误。

【问题讨论】:

    标签: c++ opengl soil


    【解决方案1】:

    已解决,但我认为值得一提的解决方案:

    • 使用正确的GL_UNPACK_ALIGNMENT,默认为4,但当我将其更改为1时,它起作用了!
    • 或将数据格式从SOIL_LOAD_AUTO 更改为SOIL_RGBAAUTO 表示原始纹理格式,对于 jpg 图像它是 RGB,因此当解包对齐为 4 时可能会出现问题。

    SOIL_FLAG_MIPMAP 土壤实际上将图像重新缩放为 POT,这样解包对齐大小就没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多