【发布时间】:2015-05-29 13:08:32
【问题描述】:
这是一个很难描述的问题(我使用的是 MonoGame,Windows 8)。
我希望能够渲染一个半透明的“精灵”图像,例如 .png,而不是在屏幕上而是在清晰的图像上,这样做几次实际上是通过混合来创建一个新的精灵图像各种图像...然后,我希望能够将这个新的精灵图像渲染到屏幕上,而我还没有绘制到保持透明的区域(即主要在边缘周围)。
当然,我可以加载半透明的“sprite”.png 图像并将其“粘贴”到 RenderTarget;我可以多次这样做,“精灵”会很好地融合。然后我可以将合成图像 RenderTarget '粘贴'(即绘制/渲染)到屏幕上。
问题是,当 RenderTarget 被绘制到屏幕上时,它周围有一个实心块。
大概,RenderTarget 中每个像素的默认 alpha 值是实心的。任何我不绘制的像素,我都希望保持完全透明,就像你抓起画笔而不是画在纸上而是画在玻璃上一样。如果你然后把那块玻璃放在你的漩涡地毯上,在没有油漆的地方,你会看到漩涡地毯。但这不是我看到的,我只是看到黑色,好像我是“画在黑纸上”而不是“画在玻璃上”。
如果我可以将一个图像直接渲染到另一个图像上就不会出现问题(可以这样做吗?):我会创建一个“空”的 .png 图像,可能在 PhotoShop 中,即不绘制任何东西然后保存它启用了透明度,我会将我的图像渲染到上面,然后保存结果。但是 RenderTarget 似乎已经是不透明的了。
我希望以上内容很清楚。我已经搜索并找到了很多关于操纵 Texture2D 对象的 alpha 的答案,但是我找不到任何关于操纵 RenderTarget2D 的 alpha 的答案。
感谢您的帮助!
【问题讨论】:
标签: alpha monogame rendertarget