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

标签 iphone opengl-es textures multitexturing

我有这个 PNG 的纹理:

alt text

另一个来自这个PNG:

alt text

它们都有相同的混合函数:

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

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

第二个问题是制作镜面反射贴图的 alpha 变量。我可以看到我必须以某种方式将 alpha 与原色(从我的变量创建)进行纹理组合,但同样,没有工作代码示例。我开始研究glTexEnvi函数,但还没有任何结果。

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

我想要实现的引擎(帖子底部的 Flash 草图)是 here .

最佳答案

我不知道您需要的确切代码行,但似乎您使用 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 来完成它。

关于iphone - OpenGL ES (iPhone) 多重纹理 (2D) 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2173363/

相关文章:

iphone - 我的应用程序在上传数据时收到内存警告后崩溃了

ios - 离屏渲染纹理在屏幕上渲染空矩形

ios - 如何使用 SceneKit iOS 添加背面图像作为纹理

ios - 升级 Paypal SDK 从 2.11.2 到 2.12.0 iOS

iphone - 与 BringSubviewToFront 相反吗?

iphone - iPhone 上异步图像缓存的最佳方法是什么?

ios - iOS 中的点对点视频

android - GLES2.0+ framebuffer fade artifacts

objective-c - ccDrawLine 不透明度?

transparency - 在 MonoGame 运行时更改纹理透明度