2010-12-04 13 views
1

Ich habe einen Vertex- und Fragment-Shader und möchte statt einer Textur eine Volltonfarbe zeigen.Entfernen von Texturkoordinaten aus dem Fragment-Shader

Ich habe den folgenden Vertex- und Fragment-Shader.

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); \ 
} \ 
"; 

Wie kann ich Fragment Shader ändern, um keine Textur anzuzeigen? (Entschuldigung für mein Englisch).

Danke.

Antwort

2

ändern

gl_FragColor = texture2D(texSampler2D, texCoord); 

zu

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

Es wird anstelle der Textur weiße Farbe zeichnen.

+1

Das bedeutet natürlich auch, dass Sie alle Verweise auf texCoord und texSampler2D auf Wunsch abschneiden können, aber wahrscheinlich würde der Compiler sie trotzdem automatisch eliminieren. – Tommy