gpt4 book ai didi

c++ - 土壤,NPOT 纹理问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:03:26 26 4
gpt4 key购买 nike

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

代码:

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

我得到错误:访问冲突读取位置 0x06851002 - VS2012 express

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

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

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

最佳答案

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

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

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

关于c++ - 土壤,NPOT 纹理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18149194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com