gpt4 book ai didi

c++ - 如何将纹理颜色与简单乘法混合到它下面的颜色中?

转载 作者:行者123 更新时间:2023-11-30 03:06:08 24 4
gpt4 key购买 nike

所以我希望我的纹理颜色与其下面的颜色相乘,如何使用 glBlendFunc() 完成?

例如:如果我有一个纹理颜色 (0.31, 0.51, 0.124) 并且它下面有一个颜色 (0.83, 0.64, 0.12),则生成的颜色将为 0.31*0.83, 0.51*0.64, 0.124*0.12 .如何做到这一点?

最佳答案

So i want my texture colors to multiply with the colors under it, how this can be done with glBlendFunc() ?

对于“纹理颜色”,我假设您指的是“glTexEnv 过程输出的颜色”。或者,使用更严格的 OpenGL 规范语言,片段颜色。

无论如何,这是一个simple matter of blending .如果您使用的是 OpenGL 2.1 或更高版本:

glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); //No, that's not a typo. Read the wiki article.
glBlendFuncSeparate(GL_DST_COLOR, GL_ZERO, GL_DST_ALPHA, GL_ZERO);

这会导致目标颜色(帧缓冲区中的内容)与源颜色(来自 glTexEnv 的内容)相乘,并加到零(从技术上讲,零乘以目标颜色)。

关于c++ - 如何将纹理颜色与简单乘法混合到它下面的颜色中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6932878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com