OpenGL画纹理的时候出现了倾斜

狄大本事 2017-12-12 02:17:31

//image
data = stbi_load("../myOpenGL/resource/pic/qrcode.jpg", &width, &height, &channels, 0);
if (data)
{
if(channels == 3)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
else if(channels == 4)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
//minimap
glGenerateMipmap(GL_TEXTURE_2D);
}

以上是画纹理的代码,在显示的时候效果如下:

正常的图片效果应该是这样的:


我现在怀疑是stb这个库解析jpg有问题,但是不是很确定~
想问一下是什么原因导致的?多谢各位~
...全文
1024 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizheng163 2019-01-23
  • 打赏
  • 举报
回复
谢谢lz~~~
青澄咂 2018-10-11
  • 打赏
  • 举报
回复
谢谢lz~~~
狄大本事 2017-12-29
  • 打赏
  • 举报
回复
这个问题查出来了,OpenGL要求所有的纹理都是4字节对齐的,即纹理的大小永远是4字节的倍数。通常这并不会出现什么问题,因为大部分纹理的宽度都为4的倍数并/或每像素使用4个字节。但是这个图片是jpg并且宽高不是4的倍数,所以出现了问题。通过将纹理解压对齐参数设为1,这样才能确保不会有对齐问题。使用这个接口glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
WJN92 2017-12-16
  • 打赏
  • 举报
回复
纹理坐标不正确吧

456

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧