gpt4 book ai didi

c++ - 我对 glBindTexture 的使用有什么问题?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:59 24 4
gpt4 key购买 nike

我正在渲染棋盘,使用 2 种不同的纹理。一个用于黑色方 block ,一个用于白色方 block 。然而,不是每个不同的正方形都有自己的纹理,它们都采用我调用 glBindTexture(GL_TEXTURE_2D, id); 绑定(bind)的最后一个纹理。

这是我的方法:

glEnable(GL_TEXTURE_2D);    
glBegin(GL_QUADS);
// square 0, 0 ( front left )
glBindTexture(GL_TEXTURE_2D, textureBlackSquare->texID);
glNormal3f(0, 1, 0);
glTexCoord2f(0, 0); glVertex3f(-8.0, 0.5, 8.0);
glTexCoord2f(1, 0); glVertex3f(-6.0, 0.5, 8.0);
glTexCoord2f(1, 1); glVertex3f(-6.0, 0.5, 6.0);
glTexCoord2f(0, 1); glVertex3f(-8.0, 0.5, 6.0);
glEnd();

glBegin(GL_QUADS);
// square 1, 0
glBindTexture(GL_TEXTURE_2D, textureWhiteSquare->texID);
glTexCoord2f(0, 0); glVertex3f(-6.0, 0.5, 8.0);
glTexCoord2f(1, 0); glVertex3f(-4.0, 0.5, 8.0);
glTexCoord2f(1, 1); glVertex3f(-4.0, 0.5, 6.0);
glTexCoord2f(0, 1); glVertex3f(-6.0, 0.5, 6.0);
glEnd();

当我运行这段代码时,两个四边形都绑定(bind)了白色纹理。如何让每个四边形都有自己的纹理?

最佳答案

您不能在glBegin/End 中间调用glBindTexture。您只能在 begin/end 内调用顶点函数。

此外,您为什么不只将单个纹理制作为 8x8 棋盘,然后只渲染一个四边形来绘制整个棋盘?

关于c++ - 我对 glBindTexture 的使用有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045241/

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