Я разрабатываю приложение для Android 2.2 с материалом OpenGL ES 2.0 на С++.
Вот мой вершинный и фрагментный шейдер:
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.
Кто-то сказал мне, что если я хочу, чтобы на моем рендере было освещение, мне нужно сделать некоторые усложнения в вершинном и фрагментном шейдерах. Так что я не знаю, как это сделать, нормали не нужны.
Мой вопрос:
Как модифицировать вершинные и фрагментные шейдеры, чтобы они не использовали нормали?
Спасибо
normal = vec4(inverse(transpose(mat3(modelViewProjectionMatrix))) * vertexNormal.xyz, 0.0);
в вершинном шейдере. - person kvark   schedule 11.02.2011