gpt4 book ai didi

alpha - Monogame:使 RenderTarget 的一些像素半透明

转载 作者:行者123 更新时间:2023-12-02 01:39:31 28 4
gpt4 key购买 nike

这是一个很难描述的问题(我使用的是 MonoGame,Windows 8)。

我希望能够渲染一个半透明的“sprite”图像,例如 .png,而不是在屏幕上,而是在一个清晰的图像上,这样做几次,实际上通过混合在一起创建一个新的 sprite 图像各种图像...然后,我希望能够将这个新的 Sprite 图像渲染到屏幕上,其中我没有绘制的区域保持透明(即主要围绕边缘)。

当然,我可以加载半透明的“sprite”.png 图像并将其“粘贴”到 RenderTarget 上;我可以这样做几次,“ Sprite ”会很好地融合。然后我可以将该复合图像 RenderTarget“粘贴”(即绘制/渲染)到屏幕上。

问题是,当 RenderTarget 被绘制到屏幕上时,它周围有一个实心 block 。

据推测,RenderTarget 中每个像素的默认 alpha 值都是实心的。任何我不绘制的像素,我都希望保持完全透明,就像你拿起画笔而不是画在纸上而是画在玻璃上一样。如果您随后将那片玻璃放在您的漩涡状地毯上,那么在没有油漆的任何地方您都会看到漩涡状地毯。但这不是我看到的,我只看到黑色,就好像我是“画在黑纸上”而不是“画在玻璃上”。

如果我可以将一个图像直接渲染到另一个图像上,就不会有问题(可以这样做吗?):我会创建一个“空”.png 图像,也许在 PhotoShop 中,即不绘制任何东西然后保存它启用了透明度,我会在上面渲染我的图像,然后保存结果。但是 RenderTarget 似乎已经不透明了。

我希望上面的内容是清楚的。我搜索并找到了很多关于操纵 Texture2D 对象的 alpha 的答案,但我找不到任何关于操纵 RenderTarget2D 的 alpha 的答案。

感谢您的帮助!

最佳答案

我终于找到了解决方案,所以我要回答我自己的问题,以防它对其他人有用。

非常简单。事实上,您可以将 RenderTarget2D 变为透明,因为它显然基本上是一个 Texture2D。你可以这样清除它:

GraphicsDevice.Clear(Color.Transparent);

默认情况下它似乎开始稳定,这让我感到困惑。

关于alpha - Monogame:使 RenderTarget 的一些像素半透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262844/

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