Il semble que glColorMaterial()
est absent de OpenGL ES. Selon this post (pour iPhone), vous pouvez toujours activer GL_COLOR_MATERIAL
dans OpenGL ES 1.x, mais vous êtes coincé avec les paramètres par défaut de GL_FRONT_AND_BACK
et GL_AMBIENT_AND_DIFFUSE
que vous définiriez autrement avec glColorMaterial()
. Je serais d'accord avec cela, mais l'éclairage diffus ne fonctionne pas correctement.GL_COLOR_MATERIAL avec éclairage sur Android
J'ai mis en place ma scène et l'ai testé avec une lumière, en réglant glMaterialfv()
pour GL_AMBIENT
et GL_DIFFUSE
une fois dans l'initialisation. Les normales ont été réglées correctement et l'éclairage fonctionne comme prévu. Je vois l'ombrage Gouraud.
Avec GL_LIGHTING
désactivé, les couleurs plates que j'ai définies avec glColor4f()
apparaissent sur les divers objets de la scène. Cela fonctionne également comme prévu. Cependant, lorsque glEnable(GL_COLOR_MATERIAL)
est appelée, les couleurs plates restent. Je m'attendrais à voir les effets d'éclairage.
glColorMaterial() est également mentioned on anddev.org, mais je ne suis pas sûr que l'information soit exacte.
Je suis en train de tester ceci sur un téléphone Android 2.1 (Motorola Droid).
Édition: Fonctionne correctement sur mon combiné 1.6 (ADP1). J'ai classé Issue 8015. Il fait pas de travail avec l'émulateur pour Android 1.6 ou 2.1. Il s'agit d'un minimal testcase pour reproduire le problème.
Capture sur les applications 1.6 (ADP1):
Capture de même code en cours d'exécution sur les applications 2.1 (Motorola Droid):
Capture sur Android 1.6 (Émulateur):