Удалить координаты текстуры из фрагментного шейдера

У меня есть вершинный и фрагментный шейдер, и я хочу показать сплошной цвет вместо текстуры.

У меня есть следующий вершинный и фрагментный шейдер.

static const char* meshVertexShader = " \
  \
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* fragmentShader = " \
 \
precision mediump float; \
 \
varying vec2 texCoord; \
varying vec4 normal; \
 \
uniform sampler2D texSampler2D; \
 \
void main() \
{ \
   gl_FragColor = texture2D(texSampler2D, texCoord); \
} \
";

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

Спасибо.


person VansFannel    schedule 04.12.2010    source источник


Ответы (1)


Изменять

gl_FragColor = texture2D(texSampler2D, texCoord);

to

gl_FragColor = vec4(1,1,1,1);

Он будет рисовать белый цвет вместо текстуры.

person Kos    schedule 04.12.2010
comment
Что, очевидно, также означает, что вы можете вырезать все ссылки на texCoord и texSampler2D, если хотите, но, вероятно, компилятор все равно удалит их автоматически. - person Tommy; 04.12.2010