gpt4 book ai didi

opengl - 这个纹理映射有什么问题?

转载 作者:行者123 更新时间:2023-12-02 05:18:03 25 4
gpt4 key购买 nike

因为openGL的纹理映射,我快要疯了。它从来没有映射正确的东西,请看一下。

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, speed.texID);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);

glBegin(GL_QUADS);
glTexCoord2f(1,0);
glVertex2f(210, 638); //Top-Left
glTexCoord2f(1,1);
glVertex2f(210, 438); //Top-Right
glTexCoord2f(0,1);
glVertex2f(10, 438); //Bottom-Right
glTexCoord2f(0,0);
glVertex2f(10, 638); //Bottom-Left
glEnd();
glDisable(GL_TEXTURE_2D);

这段代码输出图片后变成这样: enter image description here

但我希望它是这样的:enter image description here

当我将纹理更改为其他东西时,它会正确映射它,但显然不是这个。为什么会这样?

最佳答案

如果其他纹理有效,则可能是此纹理的大小不正常或格式不同,并且已加载而没有观察到一些必要的填充。

纹理格式通常需要为偶数个像素,或者四舍五入为其他倍数。

纹理的 45 度倾斜也表明了此类问题,因为它通常是由于在管道中的某个点每行读取(或跳过)额外的像素所致。

可能的解决办法是:

  • 更改纹理的尺寸,这样就没有填充了。
  • 更改纹理的加载,使填充与 GL 期望的一致
  • 使用 glPixelStorei()
  • 告诉 GL 你的纹理是如何打包的

关于opengl - 这个纹理映射有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14316604/

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