我有一個libgdx遊戲,我想在大綱中使用位圖字體。我希望能夠使用setColor()設置字體顏色,但是,我總是希望輪廓保持白色。什麼是我實現這個目標的最好方式?我假設我應該使用片段着色器進行所需的顏色處理。帶有白色輪廓的OpenGL彩色位圖字體
我已經創建瞭如下的位圖字體,紅色表示筆畫,綠色表示設置的顏色。
我有點堅持了什麼,我需要然而,在片段着色器做的。我對着色器的經驗和理解是有限的。我當前的着色器看起來像這樣,它基於r正確繪製筆畫。我不確定我應該如何在設置的顏色(v_color)中添加正確的顏色中間字體。紅色:#FF0000和綠色:
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
void main()
{
vec4 textureColour = texture2D(u_texture, v_texCoords);
vec4 colour = vec4(textureColour.r,
textureColour.r,
textureColour.r,
textureColour.a);
gl_FragColor = vec4(colour.r, colour.g, colour.b, colour.a);
}
這似乎並不奏效。它在100%透明的領域進行繪製。如果我在最後添加gl_FragColor.a = texVal.a,它會起作用。我不知道這是否可以更優雅地融合,因爲我對着色器中矢量運算的理解是有限的。 –
啊,好的,你的問題沒有說明你在使用混合。讓我看看我可以如何納入這一點。 –
嗯,我認爲如果字母外部的紋理部分是黑色的,那麼它就會工作。但它聽起來像是alpha = 0的非黑色。 –