【みんな】XNA 質問・相談スレッド1【初心者】at TECH
【みんな】XNA 質問・相談スレッド1【初心者】 - 暇つぶし2ch721:>>719
10/03/04 22:42:30
なるほど。とりあえず、
エフェクトの変更時は spriteBatch.Begin() - End() で囲んであげた方がよさそうですね

ちょっと実験してみて、Effect の動作が少々分かったので書いておきます。(役に立てれば、と)

spriteBatch.Begin() - End() で囲った中で、
エフェクトの変更を行い描画を行うと、
1 回前に描画したテクスチャの描画方法も
変更後のエフェクトで描画されるようです。
ただし、連続して同じテクスチャを描画する場合は、
それらをひとまとまりのグループとしてみる必要があります。

( ただし、 SpriteSortMode.Immediate の時のみ。 )
( 他は全て BasicEffect によって描画されてる気がした。)

サンプルコードは書くととても長くなるので、
簡単な記述で例(実験結果)を示します。

その前に書いておきますが、CommitChanges() は
使ってもまったく効果がありませんでした。

また、以下の例では全て technique の変更についてのみ
書いてありますが、 pass の変更も同様の動作をします。
( pass の実験はちょっとしかやってないから、 )
( 自身はあまりありませんが... )
また、
spriteBatch.Begin(SpriteBlendMode.AlphaBlend,
SpriteSortMode.Immediate,
SaveStateMode.None);

spriteBatch.End()
で囲っていると、脳内補完してください


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch