gpt4 book ai didi

OpenGL GL_QUAD_STRIP 使用 glColor3f() 褪色

转载 作者:行者123 更新时间:2023-12-03 23:13:41 28 4
gpt4 key购买 nike

我用 glColor3f() 和 GL_QUAD_STRIP 绘制了 2 个相邻的方 block ,但它们似乎在 2 个方 block 之间褪色,有什么办法可以防止这种情况发生吗?或者 GL_QUAD_STRIP 根本不适合这种事情?更合适的是 GL_QUADS,但这太容易了。

glBegin(GL_QUAD_STRIP);

glColor3f(1.0f, 1.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(1.0f, 0.0f, 0.0f);
glVertex3f(1.0f, 1.0f, 0.0f);
glColor3f(0.0f, 0.0f, 0.0f);
glVertex3f(2.0f, 0.0f, 0.0f);
glVertex3f(2.0f, 1.0f, 0.0f);
glColor3f(1.0f, 1.0f, 1.0f);

glEnd();

最佳答案

通常,颜色附加到每个顶点,而不是每个四边形。因此,由于 2 个顶点在 strip 的 2 个四边形之间共享,因此您将获得用于两者的颜色(以及您正在观察的“褪色”。这称为插值)。

现在,在您的特定情况下,存在一种 OpenGL 模式可以提供帮助:您可以告诉 OpenGL 根本不插值颜色,并且只获取每个基元(此处为四边形)的最后一个顶点的颜色以获得完整的颜色原始。

这是用 the following state 完成的:

glShadeModel(GL_FLAT);

关于OpenGL GL_QUAD_STRIP 使用 glColor3f() 褪色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440320/

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