【みんな】XNA 質問・相談スレッド1【初心者】at TECH【みんな】XNA 質問・相談スレッド1【初心者】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト719:>>713>>715 10/02/28 19:14:07 すいません。しばらく別のことをやっていて、気づきませんでした。 ついさっき質問してきました。 720:デフォルトの名無しさん 10/03/03 21:07:12 spriteBatchはバッチつうくらいだから ”同種のスプライト”をspriteBatch.End()のとこで”一気描画”するもんだと想像してる。 だからテクニックとかパスとかでスプライトの性質を変えるたびに spriteBatch.Begin-Endで囲ってやらなきゃいけないもんであると、 そういうもんなのだと、俺は無理やり思い込むことにしている。 にしても、ひげねこも回答くれなくなってしまったな。 ブログも全然更新してないし。 なんかもうサポート体制ダメすぎだな。 721:>>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() で囲っていると、脳内補完してください 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch