我試圖在LibGDX中將兩個紋理(.PNG)圖像添加到我自己的着色器中。除了數學/混合部分,一切都很好。希望有人能幫助我解決這個混合問題!LIBGDX-着色器中不需要的紋理混合
這是我的基本紋理。 (256×256像素,32位紋理)
這是我 「ontop的」 質地。 (256×256像素,32位紋理)
我想要的效果。一個簡單的基礎紋理與另一個紋理ontop,與透明度的工作。
而目前的結果。紋理之間的混合,紋理的「點」所在的位置會更亮一些。
我試過幾種不同的解決方案。這是渲染器,我的類,它實現LibGDX的着色器:
Gdx.gl20.glEnable(Gdx.gl20.GL_BLEND); <-- Doesn't do any difference.
Gdx.gl20.glBlendFunc(Gdx.gl20.GL_ONE, Gdx.gl20.GL_ONE_MINUS_SRC_ALPHA); <-- Dosen't do any difference with the cube, but make vertices transparent on a more advanced mesh.
片段着色器:
#ifdef GL_ES
precision mediump float;
#endif
varying vec2 v_texCoord0;
uniform sampler2D u_texture1;
uniform sampler2D u_texture2;
void main() {
vec4 bodyColor = texture2D(u_texture1, v_texCoord0);
vec4 addColor = texture2D(u_texture2, v_texCoord0);
gl_FragColor = bodyColor + addColor;
}
東西顯然是錯誤的。
非常感謝您解釋得非常好的答案!我不知道我必須使用alpha值並以這種方式使用它,但是這幫助了我很多!不僅要解決問題,還要了解更多關於GPU和着色器的知識! 再次感謝Tenfour04! – user2774429 2014-10-08 23:09:31