2014-10-16 68 views
0

我想爲雪碧着色,以便RGB通道全部爲1,alpha保持不變。 我猜這應該與着色器來完成,但是在計算器上(Change sprite color into whitelibgdx changing sprite color while hurt)這兩個公認的答案,不要爲我工作 - 結果是透明的,他們不http://shdr.bkcore.com/要麼libgdx - 將雪碧顏色更改爲白色

+0

我用着色器做了這個。今天晚些時候我會回覆你的代碼。 – Barodapride 2014-10-16 21:15:36

回答

1

所有你需要的工作是在片段着色器中用1.0代替RGB。

頂點shader--這就好比一個在SpriteBatch頂點顏色,因爲你刪除不使用它:

attribute vec4 a_position; 
attribute vec2 a_texCoord0; 
uniform mat4 u_projTrans; 

void main() 
{ 
    v_texCoords = a_texCoord0; 
    gl_Position = u_projTrans * a_position; 
} 

片段shader--搶剛剛從紋理的Alpha值。 :

#ifdef GL_ES 
    precision lowp float; //since the only value we're storing is part of a color 
#endif 

varying vec2 v_texCoords; 
uniform sampler2D u_texture; 

void main() 
{ 
    float alpha = texture2D(u_texture, v_texCoords).a; 
    gl_FragColor = vec4(1.0, 1.0, 1.0, alpha); 
}