基本上我在opengl 1.1中有一个功能齐全的ogl程序(2D游戏),一切正常,除了一个问题:glcolor
我正在尝试将一些纹理设置为半透明,我想按照以下方式进行操作;
gl.glColor4f(1f, 1f, 1f, .5f);
obj.draw(gl);
...
gl.glColor4f(1f, 1f, 1f, 1f);
我正在使用VBO作为我的顶点,我的纹理和索引。 (如果那是相关的)
问题是没有任何东西设置为50%的透明度......
我认为发布我的所有代码并不重要(主要是因为它分散了几个类,有多个GL选项改变(混合,剪刀等)。
我想要的是让人们告诉我OGL的状态可以阻止glcolor形式像我想要的那样工作,我应该检查哪些功能,我应该调用什么状态。
杰森答案 0 :(得分:1)
我终于有足够的时间一步一步地走过我所有的痕迹并发现了问题
gl.glTexEnvf(GL10.GL_TEXTURE_ENV,GL10.GL_TEXTURE_ENV_MODE,...);
...在生成一些纹理时设置为GL_REPLACE,但从未设置为GL_COMBINE
答案 1 :(得分:0)
您是否启用了GL_BLEND? 查看glBlendFunc。我通常最终使用glBlendFunc(SRC_ALPHA,ONE_MINUS_SRC_ALPHA)