2010-12-04 76 views
1

我有一個頂點和片段着色器,我想顯示一個純色而不是紋理。從片段着色器中刪除紋理座標

我有以下的頂點和片段着色器。

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

如何修改片段着色器不顯示紋理? (對不起我的英語不好)。

謝謝。

回答

2

變化

gl_FragColor = texture2D(texSampler2D, texCoord); 

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

它將汲取白色,而不是質感。

+1

這顯然也意味着如果你願意,可以削減所有對texCoord和texSampler2D的引用,但編譯器可能會自動消除它們。 – Tommy 2010-12-04 17:52:47

相關問題