gpt4 book ai didi

opengl - OpenGL 中的变色

转载 作者:行者123 更新时间:2023-12-04 12:49:28 25 4
gpt4 key购买 nike

我正在使用 OpenGL 进行 2D 绘制。我正在尝试用 alpha 覆盖纹理。我已经这样做了:

glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);

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

然后我以反向 z 顺序绘制。然而,我得到了奇怪的变色。这是一个应该从一个图像平滑地淡出到另一个图像的示例(实际上,在这种特殊情况下,图像是无缝的,但这不会总是发生(所以,不,我不能只是没有 alpha)):
Strange discoloration from alpha blending

看到中间的灰色补丁了吗?该补丁不在源 PNG 中。有谁知道是什么原因造成的以及如何解决它?也许是一种完全不同的阿尔法策略?

编辑:作为引用,这里是混合的两个纹理:

enter image description here

最佳答案

如果你使用它作为你的混合功能有什么变化吗?

glBlendFunc(GL_SRC_ONE,GL_ONE_MINUS_SRC_ALPHA);

编辑/解决方案:

PNG 中的预乘 alpha 是罪魁祸首。 Alpha 需要从 RGB 中分离出来,以校正图像并去除灰色伪影(详见评论链)

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

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