1
我想要做的是使用OpenGL ES 1.1在iPhone上输出一个蒙版纹理。默认的组合行为似乎对我有用,直到我真的想改变最终结果的ALPHA!OpenGL ES在多纹理中使用glColor4f
的“a”(阿尔法)浮点变量具有这里没有效果:(其他的一切输出细,它是掩蔽并从阿尔法是不受控制1.0不透明一边拉丝很好)
/* Setup First Texture (RGBA Texture) */
glClientActiveTexture(GL_TEXTURE0);
glActiveTexture(GL_TEXTURE0);
glColor4f(r, g, b, a);
glBindTexture(GL_TEXTURE_2D, t->tx);
glVertexPointer(2, GL_FLOAT, 0, afPos);
glTexCoordPointer(2, GL_FLOAT, 0, afUV);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
/* Setup Mask (RGBA Texture, White to Transparent Gradient) */
glClientActiveTexture(GL_TEXTURE1);
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glColor4f(r, g, b, a);
glBindTexture(GL_TEXTURE_2D, tMask->tx);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, afPos);
glTexCoordPointer(2, GL_FLOAT, 0, afUV);
/* Make the Mask Repeat */
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
/* Draw Both */
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
[编辑]整个颜色根本没有效果,就好像它被设置为(1,1,1,1),所以它不仅仅是alpha。[/编辑]
想想它,就好像你有一个在Photoshop中的蒙面图层看起来是正确的,现在我想要做的就是设置图层不透明度。我感谢您的帮助!
干得好,就是这样! – Kyle 2010-09-17 04:47:36