[OpenGL] Iluminación con suavizado Gouraud

Necesito que me echeis un cable para mis practicas de OpenGL.
En una tengo que hacer los dos tipos de suavizados respecto a la iluminación, el suavizado plano y el de Gouraud.

El plano ya lo he conseguido, sacando la normal y normalizandola, dandosela a OpenGL y dibujar el triangulo
glBegin(GL_TRIANGLES)
repetir para cada triangulo:
        ..Calculo la normal normalizada..
        glNormal
        glVertex
        glVertex
        glVertex

glEnd


Y un poco antes:
glShadeModel(GL_SHARP);
O como sea, no recuerdo


Para lo que tengo problemas es para el suavizado Gouraud. No se exactamente como hacerlo. Sé que tengo que meter una Normal para cada vertice:

glBegin(GL_TRIANGLES)
repetir para cada triangulo:
        ..Calculo la normal normalizada..
        glNormal
        glVertex
        glNormal
        glVertex
        glNormal
        glVertex

glEnd



Y un poco antes:
glShadeModel(GL_SMOOTH);


Mi pregunta es:
¿Qué normales les meto a cada vertice? He probado metiendole a los tres vertices la misma normal del triangulo pero obtengo el mismo resultado (solo varían 3 o 4 triangulos)

Gracias, y saludos



EDITO: Solucionado, me he cogido todos los triangulos y he ido sumando para cada vertice la normal de la superficie a la que pertenece. Despues normalizo los vectores para cada vertice y ya se lo paso a cada uno.
Mientras escribía me he dado cuenta de que has encontrado tu solo la respuesta. Efectivamente, en el modelo de iluminación de Gouraud la normal en cada vertice es la media de las normales de todos los triangulos que confluyen en dicho vertice.
1 respuesta