1
我正在創建一個用於iOS的對象加載器,我設法從OBJ文件加載頂點,法線和麪數據,然後將這些數據放入數組中以重建目的。但是,我所遇到的與照明的問題,在底部是從我的節目的模擬視頻 - 這是在以下位置的照明:不尋常的燈光效果 - 隨機多邊形顏色
CGFloat position[] = { 0.0f, -1.0f, 0.0f, 0.0f };
glLightfv(GL_LIGHT0, GL_POSITION, position);
這兩種渲染每種方法規定框架和設置時調用一次的設置視圖方法。
其他各種照明細節都在這裏,這些在安裝過程中被調用一次:
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
CGFloat ambientLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };
CGFloat diffuseLight[] = { 1.0f, 0.0f, 0.0, 1.0f };
glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight);
CGFloat position[] = { 0.0f, -1.0f, 0.0f, 0.0f };
glLightfv(GL_LIGHT0, GL_POSITION, position);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_NORMALIZE);
問題的視頻可以在這裏找到:
感謝,
Paul
[編輯]
進一步信息法線也被下面的代碼提供的,他們目前都在一個大的法線數組或XYZ XYZ XYZ等等
// FACE SHADING
glColorPointer(4, GL_FLOAT, 0, colors);
glEnableClientState(GL_COLOR_ARRAY);
glNormalPointer(GL_FLOAT, 3, normals);
glEnableClientState(GL_NORMAL_ARRAY);
glDrawArrays(GL_TRIANGLES, 0, 3*numOfFaces);
glDisableClientState(GL_COLOR_ARRAY);