gpt4 book ai didi

opengl - OpenGL 中的颜色减淡

转载 作者:行者123 更新时间:2023-12-04 05:32:02 24 4
gpt4 key购买 nike

我需要在 OpenGL 中的背景之上渲染图像,我试图获得与 Photoshop 中的“颜色减淡”相同的结果,但我无法做到。

现在我正在做:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

// background
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, background);
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(0.0, 0.0);
...
glEnd();
glDisable(GL_TEXTURE_2D);

// image
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, image);
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(0.0, 0.0);
...
glEnd();
glDisable(GL_TEXTURE_2D);

背景是没有 alpha channel 的 tga。图像是带有 alpha channel 的 tga。

这会在背景上渲染带有 alpha 的图像,但太亮了。

我读到它应该像以下一样简单:
glBlendFunc(GL_ONE, GL_ONE);

但是尽管具有 alpha channel ,图像仍被渲染为白色方块。

显然我做错了什么。

最佳答案

您将无法使用混合来获得等效于 Photoshop 的“颜色减淡”效果。这是一个比使用标准混合逻辑可以表达的更复杂的数学函数。所以你将不得不想出一些程序化的混合方法来使它工作。

关于opengl - OpenGL 中的颜色减淡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451115/

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