Domanda

Ho problemi con OpenGL 1.1 illuminazione. Il mio codice funziona su iPhone 4, ma non l'iPhone 3G. Tutto sembra non illuminati (colori piatti). Non ho un 3GS quindi non posso sapere se funziona su quello oppure no.

Qui è la mia messa a punto l'illuminazione:

- (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");
}

I fornitura vettori normali e così via dopo che, che rende con successo sui nuovi iPhone ... però, mi piacerebbe davvero per supportare tutti e tre iPhone. (Funziona anche su iPad).

È stato utile?

Soluzione

Eh, per rispondere alla mia domanda (e di fornire informazioni per chiunque altro con lo stesso problema) c'era un problema con la posizione essere di luce (0, 0, 0, 0). Impostazione a (0, 0, -1.0, 0) risolto il problema e non disturbare le condizioni di illuminazione sugli altri dispositivi. Io ancora non capisco bene quello che ho fatto qui, ma io sono solo contento di poter garantire la compatibilità per iPhone 3Gs ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top