我正在尝试以正常填充模式渲染图元,然后作为线框。
渲染代码:
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(0.9f, 0.9f, 0.9f, 1);
// reset matrix
glLoadIdentity();
// fill display list
glColor3c(150, 255, 255);
glCallList(lDList);
// wireframe display list
glColor3f(0, 0, 0);
glLineWidth(10);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINES);
glCallList(lDList);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
显示列表创建代码:
lDList = glGenLists(1);
glNewList(lDList, GL_COMPILE);
glBegin(GL_QUADS);
glVertex3i(-1, -1, 0);
glVertex3i(1, -1, 0);
glVertex3i(1, -1, -25);
glVertex3i(-1, -1, -25);
glEnd();
glEndList();
glColor3c 宏:
#define glColor3c(r, g, b) glColor3f(r / 255, g / 255, b / 255)
我期望得到一个周围有黑色框架的青色平面,但所发生的只是我第二次渲染显示列表时,它只是填充和绘制整个东西,覆盖另一个基元的像素。我最终得到了我想要绘制的平面,但它只是黑色(我为“版本”行指定的颜色)。
任何其他可能有用的信息是我在带有 MSVC++ 2010 的 Windows 7 上使用 SDL。我没有对 glEnable 进行任何调用,所以我没有启用会搞砸的奇怪设置,或者,也许可以解决问题. 我唯一的 OpenGL 设置代码设置投影和模型视图矩阵,然后创建显示列表。
显然我的问题是为什么我第二次绘制显示列表是填充图元而不是创建线条?我该如何解决?