3
我无法在我绘制的立方体的所有面上获得正确的底纹。我从脸部到另一个脸部的平滑过渡不能正确显示边缘。指定顶点着色器的法线的OpenGL ES 2.0
一个不同的脸部(我得到所需的边缘),我得到的阴影,它显示了构成该脸部的两个三角形。 我认为问题出在我指定的法线上。我附加了我的顶点和普通矩阵以及我的顶点和片段着色器代码。顶点和法线矩阵相同。
我想问题是与法线,但我已经尝试几乎所有与他们但效果不会改变。
//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;
}
请帮忙?提前致谢 !!
你知道,你不应该回答你的问题来阐述它。我偶然偶然发现了你的答案。如果你想在给定的答案上交流,你应该'添加评论';通过这种方式,海报被通知并且可以回答。然后,对于新的问题材料,通常会编辑原始问题以添加更多信息。 – rotoglup 2011-06-07 18:56:23
显然你的答案已被删除,如果你发布了你的问题的截图,这将是有帮助的。 – rotoglup 2011-06-07 18:57:03