3

我有这个PNG的纹理:

替代文字

另一个来自这个PNG:

替代文字

它们都具有相同的混合功能:

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

我想先在一个多边形上看到它们。我只是找不到一个简单的例子。将它们绘制到不同的多边形效果完美,但我无法将它们“合并”到一个纹理中。任何工作示例代码行都会受到赞赏。

第二个问题是使高光贴图的 alpha 变量。我可以看到我必须以某种方式将它的 alpha 与原色(从我的变量创建)结合起来,但同样,没有代码的工作示例。我开始研究 glTexEnvi 函数,但我没有任何结果。

拜托,我求你只写大约 16 行代码!我用谷歌搜索了整个网络,但仍然卡住了。

我要实现的引擎(帖子底部的工作闪存草图)在这里

4

1 回答 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>);

我不知道这是否会实现你想要的,但你可能仍然需要 FBO 来做正确的事。

于 2011-02-09T21:28:05.830 回答