Удалить нормали из вершинного и фрагментного шейдеров - PullRequest
0 голосов
/ 11 января 2011

Я занимаюсь разработкой приложения для Android 2.2 с OpenGL ES 2.0 в C ++.

Вот мой вершинный и фрагментный шейдер:

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.

Кто-то сказал мне, что если я хочу, чтобы на моем рендере были источники света, мне нужно внести некоторые сложности в вершинный и фрагментный шейдеры.Итак, я не знаю, как это сделать, нормали не нужны.

Мой вопрос:

Как изменить вершинный и фрагментный шейдеры, чтобы не использовать нормали?

Спасибо

1 Ответ

0 голосов
/ 11 января 2011

Я думаю, что нет нормального использования нормалей, если вы хотите иметь освещение. Обычно я экспортирую нормали из своего 3d-пакета и использую их, но вы всегда можете создать их на лету в своем коде на С ++. http://www.codeguru.com/cpp/g-m/opengl/article.php/c2681

...