0

XNA を使用してアプリケーションのようなペイントを作成しています。

キャンバスとして機能するレンダー ターゲットがあります。ユーザーが何かを描くとき、DrawUserPrimitives​​三角形ストリップを使用して対応する三角形を描き、線やその他の曲線を作成します。

ユーザーがテクスチャから三角形を消去できるように、アプリケーションに消しゴムを実装したいと考えています。過去に OpenGL を使用したことがありますが、次のようなブレンド関数を使用するだけです。 glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);

XNAでこれを行うにはどうすればよいですか? GraphicsDeviceブレンドモードをAlphaBlend、などに設定してみAdditiveましたが、うまくいきませんでした。何か案は?

4

1 に答える 1

0

Texture2Dの代わりにを使用するようにコードを変更すると、 を使用して からピクセル データを取得RenderTarget2Dできます。RenderTarget2D.GetTexture()RenderTarget2D

もちろん、おそらくパフォーマンスが低下しますが、実際に消去する代わりに一時的に背景色を描画してからピクセルを反復処理するなど、これが行われる回数を減らす方法でコードを最適化できる場合マウスを放した後、それを機能させることができます。

もっと良い方法があるかもしれませんが、私はそれを見つけることができませんでした。

于 2012-08-30T08:14:11.773 に答える