当前位置: 首页 > 知识库问答 >
问题:

土壤,NPOT纹理问题

全昊焜
2023-03-14

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

代码:

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

我有错误:访问违规读取位置0x06851002-VS2012 Express

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

当我在加载代码中添加SOIL\u FLAG\u MIPMAP时,效果很好。

这个错误也发生在AMD(5570)和英特尔(HD 4000)上。

共有1个答案

孟新知
2023-03-14

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

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

使用SOIL_FLAG_MIPMAPSOIL实际上会将图像重新缩放到POT,这样就不会出现解包对齐大小的问题。

 类似资料:
  • 我用这个答案将我的图像嵌入到。exe: 使用GCC在可执行文件中嵌入资源 以下是我代码的相关部分: 然而,纹理不加载,我只是得到一个白色的灰色表面。 编辑:我知道这不是我最初的问题,但是我在使用mipmaps时遇到了困难。我将loadTexture函数修改为:short loadTexture(char*imageData[],GLuint*texture,int width,int height

  • 检测土壤湿度 用法 案例:懒人浇花器 说明:通过土壤传感器检测土壤干湿度,如果土壤湿度过低则显示哭脸需要浇水;如果土壤湿度过高则显示笑脸表示无需浇水。 所需模块:智能电源、土壤传感器、LED面板。

  • 土壤湿度传感器模块用于检测土壤湿度。 净重量:17.2g 体积:24×24×14mm 参数 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度(模块):<95% 注意事项 土壤具备一定的腐蚀能力,请勿长期将土壤湿度传感器探头放在土壤中。

  • 土壤湿度传感器能够检测土壤中的水分湿度。 原理介绍 常见的土壤湿度传感器分为电容式和电阻式两种。电容式通过测量土壤湿度引起的电容的变化推测土壤的湿度,电阻式则是根据测量两个触点间的电阻大小来推测土壤湿度的大小。土壤湿度的严格定义上是土壤中水分所占质量的百分比,因此无论是电阻式或是电容式都无法准确地预估土壤中的含水量,而只能尽可能地做到读值与土壤中的含水量正相关。 mBuild 的土壤湿度传感器是电

  • 土壤湿度传感器能够检测土壤中的水分湿度。 原理介绍 常见的土壤湿度传感器分为电容式和电阻式两种。电容式通过测量土壤湿度引起的电容的变化推测土壤的湿度,电阻式则是根据测量两个触点间的电阻大小来推测土壤湿度的大小。土壤湿度的严格定义上是土壤中水分所占质量的百分比,因此无论是电阻式或是电容式都无法准确地预估土壤中的含水量,而只能尽可能地做到读值与土壤中的含水量正相关。 mBuild 的土壤湿度传感器是电

  • 所以我一直在为openGL课程玩土壤,我的项目遇到了一个奇怪的问题。我将显示两个窗口,每个窗口包含三个视口,在其中绘制一个带纹理的立方体或椭圆体,以展示我对深度和面剔除的理解。现在,所有形状都正确绘制,并且当单独测试时,它看起来完全符合预期,但是一旦我同时启用两个窗口,纹理就会在第一个窗口中禁用。我之前已经发布了类似的问题,所以只是为了澄清,如果我禁用窗口二,或者如果我在窗口二中使用窗口一绘制功能