0

我正在使用 XNA 创建一个类似绘画的应用程序。

我有一个充当画布的渲染目标。当用户绘制一些东西时,我使用DrawUserPrimitives三角形条绘制相应的三角形来制作线条和其他曲线。

我想在应用程序中实现一个橡皮擦,以便用户可以从纹理中擦除三角形。我过去使用过 OpenGL,我会像这样使用混合函数: glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);

我将如何在 XNA 中做到这一点?我尝试将GraphicsDevice混合模式设置为AlphaBlendAdditive等。但它不起作用。有任何想法吗?

4

1 回答 1

0

如果您将代码更改为使用 aTexture2D而不是 a RenderTarget2D,则可以使用RenderTarget2D.GetTexture()RenderTarget2D.

当然,可能会影响性能,但是如果您可以通过减少执行次数的方式优化代码,例如临时绘制背景颜色而不是实际擦除,然后遍历像素释放鼠标后,您可以使其工作。

可能有更好的方法,但我找不到。

于 2012-08-30T08:14:11.773 回答