OpenGL ES(iPhone)多纹理(2D)代码

3

我有两个纹理图片,分别来自以下PNG图片:

alt text

alt text

它们都使用相同的混合函数:

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
我希望先将它们绘制到单个多边形上。 我找不到一个简单的例子。将它们绘制到不同的多边形中效果很好,但是我无法将它们“合并”成一个纹理。如果有任何有效的代码示例,将不胜感激。 第二个问题是使高光贴图的alpha可变。 我可以看到必须以某种方式组合它的Alpha和由我的变量创建的主要颜色,但是,我没有有效的代码示例。我开始研究glTexEnvi函数,但是目前还没有任何结果。 请您为我提供大约16行代码! 我在整个网络上进行了搜索,但仍然卡住了。
我想要实现的引擎(此贴底部的工作闪存草图)在这里

好的。没有多重纹理。我就是做不到。我将使用从屏幕外缓冲区复制的预渲染纹理。也许这样实现起来会更容易。希望如此。 - Geri Borbás
1个回答

0

我不知道你需要的确切代码行,但是看起来你在使用glTexEnv时已经走在了正确的路径上...这本opengles 1.1书对此有所涉及。我认为你想要的是纹理合成器:

glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, myTextureObject);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);

// Tell OpenGL which arithmetic operation to use: 
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, <operation>);

// Set the first argument:
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, <source0>);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, <operand0>);

// Set the second argument:
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, <source1>);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, <operand1>);

我不确定这样做是否能够达到你想要的效果,你可能仍然需要使用FBOs来正确完成它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接