2010-08-06 3 views
0

У меня возникли проблемы с освещением OpenGL 1.1. Мой код работает на iPhone 4, но не на iPhone 3G. Все выглядит нечетким (плоские цвета). У меня нет 3GS, поэтому я не могу узнать, работает ли он на этом или нет.Освещение OpenGL, работающее на iPhone 4/iPad, а не на 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 ...

Смежные вопросы