gpt4 book ai didi

仅当我在 glEnd 之后调用 glPopMatrix 时才会显示立方体(而不是相反)

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:42 26 4
gpt4 key购买 nike

我在 OpenGl 中遇到了一个非常奇怪的问题。以下代码按预期生成黄色立方体

glPushMatrix();
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (GLfloat[]){ 1, 1, 0, 1 });
glBegin(GL_LINE_LOOP);
glutSolidCube(1);
glPopMatrix();
glEnd();

但是,当我在 glEnd() 之后放置 glpopM​​atrix() 时,我只会看到没有立方体的黑屏。

glPushMatrix();
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (GLfloat[]){ 1, 1, 0, 1 });
glBegin(GL_LINE_LOOP);
glutSolidCube(1);
glEnd();
glPopMatrix();

对我来说,第二种方法更有意义(推送、开始、结束然后弹出),我真的不知道为什么它不起作用。感谢任何帮助,谢谢!

最佳答案

问题不在于 glPopMatrix() 调用的位置。问题在于 glBegin()glEnd()。删除它们,glutSolidCube() 已经这样做了。

如果您正在使用 FreeGLUT,那么 glutSolidCube() 甚至不会使用 glBegin()glEnd(),并且会在引擎盖下使用顶点数组。所以简而言之,您可能只是混淆了您的驱动程序,这就是您得到奇怪结果的原因。

关于仅当我在 glEnd 之后调用 glPopMatrix 时才会显示立方体(而不是相反),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43012362/

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