提问人:Don'tDownVote 提问时间:4/21/2021 最后编辑:genpfaultDon'tDownVote 更新时间:4/21/2021 访问量:116
加载了 SOIL 的 OpenGL jpg 图像倾斜显示
OpenGL jpg image loaded with SOIL is displayed slanted
问:
使用SOIL加载jpg图片时,图片显示倾斜,颜色不对(不知道怎么形容,因为是彩色的,但看起来是黑白的)
预期版本
但是,它是这样显示的
着色器包括:
顶点着色器
#version 330 core
layout (location = 0) in vec3 position;
layout (location = 1) in vec3 color;
layout (location = 2) in vec2 texCoord;
out vec3 ourColor;
out vec2 TexCoord;
void main(){
gl_Position = vec4(position, 1.0f);
ourColor = color;
TexCoord = texCoord;
}
片段着色器
#version 330 core
in vec3 ourColor;
in vec2 TexCoord;
out vec4 color;
uniform sampler2D ourTexture;
void main(){
color = texture(ourTexture, TexCoord);
}
如何正确显示它,预期的方式?
答:
2赞
Rabbid76
4/21/2021
#1
默认情况下,OpenGL 假定图像每行的开头与 4 个字节对齐。这是因为默认情况下 GL_UNPACK_ALIGNMENT
参数为 4。如果图像的格式为 RGB 且 width*3 不被 4 整除,则必须在指定二维纹理图像之前更改参数 ():glTexImage2D
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
评论
glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
glTexImage2D