我可以加载 725x483 jpg纹理,但不能 725x544
代码:
texId = SOIL_load_OGL_texture(fileName, SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID, 0);
我收到了错误:
Access violation reading location 0x06851002
- VS2012 express
我稍微调试了SOIL,似乎错误发生在我们调用glTexImage2D之后(在SOIL库中)。
当我将SOIL_FLAG_MIPMAP
添加到加载代码时,它可以正常工作。
这个错误也出现在AMD(5570)和英特尔(HD 4000)上。
答案 0 :(得分:0)
解决了,但我认为值得一提的是解决方案:
GL_UNPACK_ALIGNMENT
,默认情况下是4,但是当我将其更改为1时,它就有效了!SOIL_LOAD_AUTO
更改为SOIL_RGBA
。 AUTO
表示原始纹理格式,对于jpg图像,它是RGB,因此当解包对齐为4时可能会出现问题。SOIL_FLAG_MIPMAP
土壤的实际上将图像重新调整为POT,这样解压缩对齐大小就没有问题。