gpt4 book ai didi

C++ OpenGL 绘制一个房间

转载 作者:太空狗 更新时间:2023-10-29 21:01:04 30 4
gpt4 key购买 nike

我想在 openGL 中绘制一个方形房间,我有这个:

void drawWalls()
{

glColor3f(1,0,0);
glPushMatrix();
//glRotatef(0,0,0,1);
//glScalef(2,1,2);
glBegin(GL_QUADS);
/* Floor */
glVertex3f(-1,-1,-1);
glVertex3f(1,-1,-1);
glVertex3f(1,-1,1);
glVertex3f(-1,-1,1);
/* Ceiling */
glVertex3f(-1,1,-1);
glVertex3f(1,1,-1);
glVertex3f(1,1,1);
glVertex3f(-1,1,1);
/* Walls */
glVertex3f(-1,-1,1);
glVertex3f(1,-1,1);
glVertex3f(1,1,1);
glVertex3f(-1,1,1);

glVertex3f(-1,-1,-1);
glVertex3f(1,-1,-1);
glVertex3f(1,1,-1);
glVertex3f(-1,1,-1);

glVertex3f(1,1,1);
glVertex3f(1,-1,1);
glVertex3f(1,-1,-1);
glVertex3f(1,1,-1);

glVertex3f(-1,1,1);
glVertex3f(-1,-1,1);
glVertex3f(-1,-1,-1);
glVertex3f(-1,1,-1);
glEnd();

glPopMatrix();

}

无论出于何种原因,它并没有吸引我的全部注意力!我查看了我的 vector ,它似乎是正确的......但是当你向内看时,你会看到这个:

walls

我做错了什么?或者如果可能的话,有没有比这个更好的画房间的方法?谢谢

最佳答案

你的地板是顺时针定义的,而你的天花板是逆时针定义的(关于我从你的描述中暗示的法线)。启用剔除后,不会绘制背向相机的每个四边形。

为了解决这个问题,地板必须这样定义:

(-1, -1, -1)
(-1, -1, 1)
(1, -1, 1)
(1, -1, -1)

对未显示的其他墙执行相同操作。也只需逆时针定义它们即可。

关于C++ OpenGL 绘制一个房间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737807/

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