【发布时间】:2011-06-03 20:56:19
【问题描述】:
我无法在我绘制的立方体的所有面上获得正确的阴影。我从一张脸平滑过渡到另一张没有正确显示边缘的脸。
一个不同的脸(我得到想要的边缘),我得到阴影,这样它就可以显示构成那个脸的两个三角形。 我相信问题出在我指定的法线上。我正在附加我的顶点和法线矩阵以及我的顶点和片段着色器代码。顶点和法线矩阵是一样的。
我想问题出在法线上,但我几乎用它们尝试了所有方法,但效果没有改变。
//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;
}
请帮忙?提前致谢!!
【问题讨论】:
-
你知道,你不应该回答你的问题来详细说明它。我只是偶然偶然发现了你的答案。如果您想就给定答案进行交流,则应该“添加评论”;这样,发帖人就会得到通知并可以回答。然后,对于新的问题材料,通常编辑原始问题以添加更多信息。
-
您的答案显然已被删除,如果您发布问题的屏幕截图会有所帮助。
标签: xcode4 ios-simulator opengl-es-2.0