OpenGL地形灯问题

时间:2013-01-22 10:36:08

标签: opengl terrain

我有一些照明问题。我从高度图创建了地形,计算法线并将其存储在VBO中。然后我用

为我的场景添加光线
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);

如果我尝试显示过剩的茶壶,我会想到它的阴影。 http://imageshack.us/photo/my-images/835/teapot.jpg/

但如果我想展示我的地形,它看起来并不好看。这是用于显示我的地形的代码

glEnableClientState(GL_VERTEX_ARRAY);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, VBOvertices);
glVertexPointer(3, GL_FLOAT, 0, (char *) NULL);

glEnableClientState(GL_NORMAL_ARRAY);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, VBOnormals);
glNormalPointer(GL_FLOAT, 0,  (char *) NULL);

glDrawArrays(GL_TRIANGLES, 0, vertexCount);

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);

它看起来像这样。没有阴影只有白色和黑色。法线计算正确。 http://imageshack.us/photo/my-images/849/terrainb.jpg/我做错了什么?仅使用带有VBO的顶点和普通数组来显示正确的光照是否足够?

0 个答案:

没有答案