2010-08-06 76 views
0

我在OpenGL 1.1燈光方面遇到問題。我的代碼適用於iPhone 4,但不適用於iPhone 3G。一切都顯得不亮(平淡的顏色)。我沒有3GS,因此我無法確定它是否適用於該3GS。在iPhone 4/iPad上工作的OpenGL燈光,不在iPhone 3G上

這裏是我的燈光設置:

- (void)setupLighting 
{ 
    const GLfloat   lightAmbient[] = {0.2, 0.2, 0.2, 1.0}; 
    const GLfloat   matAmbient[] = {0.6, 0.6, 0.6, 1.0};   
    const GLfloat   matDiffuse[] = {1.0, 1.0, 1.0, 1.0};    
    const GLfloat   matSpecular[] = {0.6, 0.6, 0.6, 0.1};  
    const GLfloat   lightPosition[] = {0.0, 0.0, 0.0, 0.0};   
    const GLfloat   lightShininess = 100.0;  
    glEnable(GL_LIGHTING);  
    glEnable(GL_LIGHT0);   
    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, matAmbient);   
    glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, matDiffuse);   
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, matSpecular);  
    glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, lightShininess);  
    glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient);  
    glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);     
    glShadeModel(GL_SMOOTH);  
    NSLog(@"Lighting sorted"); 
} 

我公司供應的法向量等等之後,它成功地呈現在較新的iPhone。不過,我真的想支持所有三種iPhone手機。 (它也適用於iPad)。

回答

0

嘿,回答我的問題(和其他人同樣的問題提供信息)有與光的位置是一個問題(0,0,0,0)。將其設置爲(0,0,-1,0,0)可以解決問題,並且不會干擾其他設備的照明條件。我仍然不太明白我在這裏做了什麼,但我只是很高興我可以提供兼容性iPhone 3Gs ...

相關問題