首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >glBlendFunc和alpha混合

glBlendFunc和alpha混合
EN

Stack Overflow用户
提问于 2008-10-09 12:36:02
回答 4查看 3.8K关注 0票数 2

我想知道glBlendFunc是如何工作的。例如,我有2个gl纹理,其中alpha在tex1上,我希望在我的最终图像中有alpha。在颜色在tex1上的地方,我想从tex2中获取颜色。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-12 18:12:42

遗憾的是,这是针对iPhone上的openGL ES的,因此没有着色器,但采取了重点。我的问题是一个非常简单的版本的问题,我需要应用一个简单的颜色(包括alpha ),一个定义的纹理的一部分。正如Lee指出的,纹理混合是为了让alpha显示在帧缓冲区上。解决方案是坚持让美工人员将纹理的“动作位”变为白色,然后为我渲染的顶点指定颜色。就像这样。

代码语言:javascript
复制
glTexCoordPointer( 2, GL_FLOAT, 0, sprite->GetTexBuffer() );
glVertexPointer( 3, GL_FLOAT, 0, sprite->GetVertexBuffer() );
glColorPointer( 4, GL_FLOAT, 0, sprite->GetColorBuffer() );
glDrawArrays( GL_TRIANGLES, 0, 6 ); // Draw 2 triangles

即使它有一个纹理,拥有颜色意味着它增加了纹理的颜色,所以在它是alpha的地方,它保持alpha,而在它是白色的地方(就像我不得不做的那样),它变成了点上的颜色指针的颜色。

票数 0
EN

Stack Overflow用户

发布于 2008-10-09 13:45:41

glBlendFunc仅适用于最终颜色片段如何与帧缓冲区混合。我认为你想要的是多纹理,通过使用glTexEnv混合纹理阶段来组合两个纹理,或者使用片段着色器来组合这两个纹理。

票数 1
EN

Stack Overflow用户

发布于 2008-10-09 14:23:30

对不起,不能用简单的混合来做这件事。例如,我们曾经使用帧着色器来做同样的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/187057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档