0

我正在使用 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 开发非常陌生。

有人告诉我,如果我想在我的渲染上使用灯光,我必须对顶点和片段着色器进行一些复杂的修改。所以,我不知道怎么做,法线不是必需的。

我的问题是:

如何修改不使用法线的顶点和片段着色器?

谢谢

4

1 回答 1

0

我认为如果你想要照明,就没有办法使用法线。我通常从我的 3d 包中导出法线并使用它们,但您始终可以在您的 c++ 代码中动态创建它们。 http://www.codeguru.com/cpp/gm/opengl/article.php/c2681

于 2011-01-11T12:20:29.463 回答