Освещение OpenGL работает на iPhone 4 / iPad, а не на iPhone 3G - PullRequest
0 голосов
/ 06 августа 2010

У меня проблемы с освещением OpenGL 1.1.Мой код работает на iPhone 4, но не на iPhone 3G.Все выглядит неосвещенным (плоские цвета).У меня нет 3GS, поэтому я не могу узнать, работает ли он на этом или нет.

Вот мои настройки освещения:

- (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).

1 Ответ

0 голосов
/ 07 августа 2010

Хех, чтобы ответить на мой собственный вопрос (и предоставить информацию для кого-то еще с той же проблемой), была проблема с позицией освещения (0, 0, 0, 0).Установка его в (0, 0, -1,0, 0) устранила проблему и не повлияла на условия освещения на других устройствах.Я до сих пор не совсем понимаю, что я здесь сделал, но я просто рад, что могу обеспечить совместимость с iPhone 3Gs ...

...