【发布时间】:2014-10-08 17:21:39
【问题描述】:
我正在尝试将 LibGDX 中的两个纹理 (.PNG) 图像添加到我自己的着色器中。一切都很好,除了数学/混合部分。希望有人可以帮助我解决这个混合问题!
这是我的基础纹理。 (256 x 256 像素,32 位纹理)
这是我的“顶部”纹理。 (256 x 256 像素,32 位纹理)
我想要的效果。一个简单的基础纹理,上面有另一个纹理,可以使用透明度。
还有当前的结果。纹理之间的混合,纹理的“点”所在的位置更亮。
我尝试了几种不同的解决方案。这是来自渲染器,我的实现 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;
}
显然有些不对劲。
【问题讨论】:
标签: java android opengl-es libgdx shader