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

glBlendFunc和alpha通道
EN

Stack Overflow用户
提问于 2011-05-03 01:02:19
回答 2查看 2.1K关注 0票数 1

我正在尝试使用以下命令渲染一些透明对象:

代码语言:javascript
复制
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

然而,我没有得到我想要的结果。

我画一个完全不透明的正方形,然后画一个半透明的正方形。颜色正如我所期望的那样,然而,alpha通道并不像我想要的那样完全是白色的。

基本上我想要下面的方程式:

代码语言:javascript
复制
r = old_r*(1.0-a)+r*a;
g = old_g*(1.0-a)+g*a;
b = old_b*(1.0-a)+b*a;
a = old_a + a;

这可以使用glBlendFunc实现吗?或者我必须求助于着色器和多个FBO来进行回读吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-03 01:51:52

您基本上需要为颜色和alpha使用单独的混合函数,这是通过使用glBlendFuncSeparate实现的

代码语言:javascript
复制
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);

你想要的混合功能。

票数 7
EN

Stack Overflow用户

发布于 2011-05-03 01:26:39

只需绘制不透明的正方形,然后检查alpha通道。如果在渲染已知不透明的正方形时,它没有显示为全白,则可能是其他设置有问题。

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

https://stackoverflow.com/questions/5860025

复制
相关文章

相似问题

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