【问题标题】:OpenGL ES (iPhone) multi-texturing (2D) codeOpenGL ES (iPhone) 多纹理 (2D) 代码
【发布时间】:2010-01-31 21:13:34
【问题描述】:

我有一个来自这个 PNG 的纹理:

还有来自这个 PNG 的另一个:

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

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

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

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

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

我想要实现的引擎(帖子底部的工作闪存草图)是here

【问题讨论】:

  • 好的。没有多重纹理。简直我做不到。我将使用从屏幕外帧缓冲区复制的预渲染纹理。也许这种方式更容易实现。霍普索。

标签: iphone opengl-es textures multitexturing


【解决方案1】:

我不知道您需要的确切代码行,但似乎您使用 glTexEnv 走在了正确的道路上......这个book on 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-11-16
    • 1970-01-01
    • 2014-10-23
    • 2011-01-11
    • 2012-01-12
    • 1970-01-01
    • 2012-12-20
    • 2011-11-08
    • 2012-07-07
    相关资源
    最近更新 更多