首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL的glBlendFunc

OpenGL的glBlendFunc
EN

Stack Overflow用户
提问于 2013-03-31 11:24:55
回答 1查看 429关注 0票数 3

在OpenGL的glBlendFunc中有没有一种方法可以放大目标RGB?(即(10,50,5)到(20,100,10) )

似乎你唯一能做的就是添加源rgb (乘以一些<1的因子)

EN

回答 1

Stack Overflow用户

发布于 2013-10-13 18:39:34

如果你想对所有绘制操作/所有对象使用这个混合函数(当然还有一个初始的非零值),你可以做的就是指数地解释颜色。想象一下,在颜色缓冲区中写入的是某个基数的指数,例如2,因此添加到该指数将本质上乘以2的幂。

如果你还没有这样做,那么你需要引入一个后处理步骤。在那里你读取颜色值并取2的颜色的幂,这将给你最终的颜色。

当然,初始值必须是对数的。

但是,如果你只想为一些绘制操作增加颜色(我希望只是场景中的最后一个),你必须进一步拆分这个过程:首先在你使用普通颜色混合的地方绘制“普通”内容。然后将颜色转换为对数比例(您可以为此使用单独的纹理),将其用于下一次绘制操作,这些操作应该将颜色相乘(但您告诉OpenGL添加颜色),然后通过幂将其转换回线性比例。

当然,您也可以使用e作为底,在这种情况下,您可以使用自然对数和exp函数。

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

https://stackoverflow.com/questions/15726017

复制
相关文章

相似问题

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