1
我正在为iPad编写3D图形游戏。我使用大量用线条绘制的线框表面。iOS中的OpenGL ES 1.1灯光线的奇怪行为
直到最近,我总是关闭照明,当我画线;我推断线条没有法线,所以照明不起作用。为了好玩,我试着打开灯光来画线,看看会发生什么,我得到了一些令人惊讶的结果。
线条以白色绘制,并且在照明关闭时显示为白色,但打开照明时会变为彩色。具体来说,线条变成最后一个敌人的颜色来进入屏幕。我也认识到与光源位置有关的白色效应。
起初我以为我的glColor4f函数被设置为最近绘制的敌人的颜色,但我绝对将颜色设置为白色,此外,它在关闭照明时绘制为白色。
下面是绘制行代码:
-(void)drawWireFrameWithData:(GLSurfaceData*)bufferData
{
glPushMatrix();
glDisableClientState(GL_NORMAL_ARRAY);
//glDisable(GL_LIGHTING);
glTranslatef(self.centrex, self.centrey, self.centrez);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBindBuffer(GL_ARRAY_BUFFER, bufferData.vertexBuffer);
glVertexPointer(3, GL_FLOAT, 3 * sizeof(GLfloat), 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, bufferData.lineIndexBuffer);
glDrawElements(GL_LINES, bufferData.lineIndexCount, GL_UNSIGNED_SHORT, 0);
glEnableClientState(GL_NORMAL_ARRAY);
//glEnable(GL_LIGHTING);
glPopMatrix();
}