Glusphere给出了奇怪的灯光

时间:2013-09-27 09:06:51

标签: opengl glfw glu

当使用过剩时,我使用glutsolidsphere绘制我的球体,但是移动到glfw后,我不得不使用glusphere。我基本上将整个函数“glutsolidsphere”复制到我自己的代码中,但是在我没有之前我遇到了一个奇怪的光照问题。下面是球体的代码:

Sphere

void drawSolidSphere(GLdouble radius, GLint slices, GLint stacks)
{
    GLUquadric *shape = gluNewQuadric();
    gluQuadricDrawStyle(shape, GLU_FILL);
    gluQuadricNormals(shape, GLU_SMOOTH);
    gluSphere(shape, radius, slices, stacks);
}

这里的问题是什么?

编辑:出于某种原因,我无法从大学上传图片,所以我会尝试描述它:球体轮廓看起来很好,但是你可以看到内部的片段,就像球体的外部是透明的,它导致在这个领域存在明显的分歧。

1 个答案:

答案 0 :(得分:1)

看起来深度测试存在问题。

假设你有一个来自glfw的深度缓冲区,这会解决吗?

glEnable(GL_DEPTH_TEST);

我没有使用过glfw,但是为了请求深度缓冲区,你只需要传递24例如depthbits的{​​{1}}参数。

如果您尚未加入glfwOpenWindow,则还需要GL_DEPTH_BUFFER_BIT

我之前在使用glut / freeglut的windows和linux中遇到了默认GL状态(特别是GL_DEPTH_TEST)的不一致。

另请参阅gluNewQuadric leaking memory

相关问题