質問

私は、OpenGL 1.1照明とのトラブルを抱えています。私のコードは、iPhone 4ではなく、iPhone 3G上で動作します。すべてが消灯(フラット色)が表示されます。それは1つ上で動作するかどう私は見つけることができませんので、私は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");
}

私は、しかし、私は本当にすべての3台のiPhoneをサポートしたいと思います...成功し、新しいiPhone上でレンダリングされ、その後にその法線ベクトルを供給し。 (それはまた、iPad上で動作します)。

役に立ちましたか?

解決

へぇ、自分の質問に答える(と同じ問題を持つ他の誰のための情報を提供)する光の位置は(0、0、0、0)であることに問題がありました。それを設定する(0、0、-1.0、0)問題を修正し、他のデバイス上の照明条件を邪魔しませんでした。 ...私はまだかなり私がここでやったのか理解していないが、私は、私はiPhoneの3GSとの互換性を提供できるだけでうれしい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top