gpt4 book ai didi

sdl-2 - 在 SDL2 中混合纹理

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

我有 2 个纹理,它们都是使用 SDL_TEXTUREACCESS_STREAMING 标志创建的。他们将混合模式设置为 SDL_BLENDMODE_BLEND。我在每个帧中从 2 个不同的表面更新它们。其中之一的 alpha 值大多等于 0(大部分是透明的)。当我将一个纹理放在另一个纹理之上时,混合不会发生。

例如 - 一个表面的所有像素的 RGBA 值 = 255、255、255、0。当我用它更新纹理,并将相同的纹理放在另一个图像的顶部时,我只得到黑色像素。

我如何完成 2 个纹理的混合,使 alpha 为 0 的像素将被视为透明而不是变成黑色像素?怎么了?纹理会忽略 alpha 值吗?

最佳答案

这有混合模式的公式:

SDL.org: SDL_BlendMode

这有通过混合组合两个纹理的每种方法的可视化示例(对于 openGL,但对于 SDL 实现的几种模式,结果应该是相同的):

StackExchange GameDev: OpenGL Blending GUI Textures: Answer 1

SDL_BLENDMODE_BLEND 中有一个 (1-alpha) 项,如果 alpha 接近 0,它将接近 1,这可能会导致您所在位置的不透明度重新期待透明度。这也取决于您将哪个用作 src,哪个用作 dest。

(注意:我只是将其作为评论发布,但我还没有声誉。)

关于sdl-2 - 在 SDL2 中混合纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32793558/

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