我正在用C ++开发一个带有OpenGL ES 2.0的Android 2.2应用程序。
这是我的顶点和片段着色器:
static const char* cubeMeshVertexShader = "
attribute vec4 vertexPosition;
attribute vec4 vertexNormal;
attribute vec2 vertexTexCoord;
varying vec2 texCoord;
varying vec4 normal;
uniform mat4 modelViewProjectionMatrix;
void main()
{
gl_Position = modelViewProjectionMatrix * vertexPosition;
normal = vertexNormal;
texCoord = vertexTexCoord;
}
";
static const char* cubeFragmentShader = "
precision mediump float;
varying vec2 texCoord;
varying vec4 normal;
uniform sampler2D texSampler2D;
void main()
{
gl_FragColor = texture2D(texSampler2D, texCoord);
}
";
我是OpenGL ES 2.0开发的新手。
有人告诉我,如果我想要渲染灯光,我必须对顶点和片段着色器进行一些复杂的修改。所以,我不知道怎么做,不需要法线。
我的问题是:
如何修改顶点和片段着色器以避免使用法线?
由于
答案 0 :(得分:0)
我认为如果你想要照明,就无法使用法线。我通常从我的3d包中导出法线并使用它们,但你总是可以在c ++代码中动态创建它们。 http://www.codeguru.com/cpp/g-m/opengl/article.php/c2681