Je n'arrive pas à obtenir le bon ombrage sur toutes les faces du cube que j'ai dessiné. Je reçois une transition en douceur de l'un des visages à un autre visage qui ne montre pas le bord correctement.OpenGL ES 2.0 spécifiant des normales pour le vertex shader
Un visage différent (où j'obtiens le bord désiré), j'obtiens l'ombrage tel qu'il montre les deux triangles qui composent ce visage. Je crois que le problème est avec les normales que je spécifie. Je joins mon vertex et ma matrice normale et mon code de vertex et fragment shader. le vertex et la matrice normale sont identiques.
Je suppose que le problème est avec les normales mais j'ai essayé presque tout avec elles mais l'effet ne change pas.
//normal matrix and vertex matrix are same
static const float normals[]=
{
//v0,v1,v2,v3,
//v4,v5,v6,v7
0.5,0.5,0.5, -0.5,0.5,0.5, -0.5,-0.5,0.5, 0.5,-0.5,0.5,
0.5,0.5,-0.5, -0.5,0.5,-0.5, -0.5,-0.5,-0.5, 0.5,-0.5,-0.5
};
//vertex shader
attribute vec4 color;
attribute vec4 position;
attribute vec4 normal;
uniform mat4 u_mvpMatrix;
uniform vec4 lightDirection;
uniform vec4 lightDiffuseColor;
uniform float translate;
varying vec4 frontColor;
//varying vec4 colorVarying;
void main()
{
vec4 normalizedNormal = normalize(u_mvpMatrix* normal);
vec4 normalizedLightDirection = normalize(lightDirection);
float nDotL = max(dot(normalizedNormal, normalizedLightDirection), 0.0);
frontColor = color * nDotL * lightDiffuseColor;
gl_Position = u_mvpMatrix * position;
}
//fragment shader
varying lowp vec4 frontColor;
void main()
{
gl_FragColor = frontColor;
}
Aidez-nous! Merci d'avance !!
Vous savez, vous n'êtes pas censé répondre à votre question de l'élaborer. Je suis tombé sur votre réponse par accident. Si vous voulez communiquer sur une réponse donnée, vous êtes censé 'ajouter un commentaire'; De cette façon, l'affiche est notifiée et peut répondre. Ensuite, pour le nouveau matériel de question, il est habituel d'éditer la question originale pour ajouter plus d'information. – rotoglup
Apparemment, votre réponse a été supprimée, il serait utile que vous affichiez une capture d'écran de votre problème. – rotoglup