gpt4 book ai didi

SDL2 - 在纹理 Alpha channel 上渲染

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

我正在寻找一种专门在纹理的 Alpha channel 上渲染的方法。这个想法是在运行时创建一个“ mask ”,即渲染一个将充当另一个纹理的 Alpha channel 的纹理。

注意:我知道如何使用 Alpha channel 和颜色键,所以请不要解释这些:)我正在寻找的是一种在运行时动态生成蒙版的方法,使用其他纹理。

我更喜欢利用显卡的解决方案,而不是涉及获取像素缓冲区并在 CPU 中操作它们的解决方案。

这可能吗?

最佳答案

为其他可能感兴趣的人回答我自己:

  1. 我使用的面膜是黑白纹理:黑色是不透明的,白色是透明的。 mask 可以在运行时通过渲染到纹理来生成。
  2. 当蒙版纹理准备好后,我将其复制到另一个纹理并反转所有像素。我们将这个新纹理称为“反转蒙版”。
  3. 在渲染我想要 mask 的纹理之前,我使用加法混合在相同位置和大小渲染反转 mask 纹理。这将在我想要应用的蒙版形状上创建一个白色轮廓(由于其附加,黑色像素是透明的)。
  4. 然后,我使用附加混合将蒙版本身渲染在我想要蒙版的纹理上。这会将背景变成白色(蒙版本应透明的像素现在变为白色。由于其相加,黑色像素不起作用)
  5. 最后,我使用 mod 混合在屏幕上渲染纹理,恰好在我在第 3 阶段渲染的白色轮廓上。背景白色像素将是透明的(因为它的 mod),而白色轮廓现在将是纹理,蒙面。

注意:这不是理想的方法,它涉及多次渲染和操作纹理像素。但这对于我的具体情况来说已经足够了,而且它的纯 SDL 对我来说已经足够好了。

关于SDL2 - 在纹理 Alpha channel 上渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26393587/

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