2010/12/27 Na-7
2010/12/28 Na-7
索敵範囲を描き分ける
注意 | この資料は、筆者が自らの経験を記録したものであり、他人に勧めるものではありません。 この資料を参考として行った行為がいかなる結果になろうとも、筆者は責任を負いませんので予めご承知おきください。 |
◎目次
◎概要 |
◎使用ツール |
◎サンプルプロジェクト |
◎補足事項 |
◎概要
索敵範囲外の地形を暗く描画し、索敵範囲内の地形を明るく描画するサンプルプロジェクトを紹介する。
このサンプルはステンシルバッファを利用しているので、部隊数が増えても描画効率が悪化しない。
◎使用ツール
ツール名 | 入手元 |
XNA3.1(XNA GameStudio 3.1:ゲーム開発用フレームワーク) | http://msdn.microsoft.com/ja-jp/xna/default.aspx |
◎サンプルプロジェクト
索敵範囲を描き分けるサンプルプロジェクト(XNA3.1版)(150KB)
2010/12/28 深度ステンシルバッファのフォーマットをチェックするコードを追加
◎補足事項
・描画フロー
ステンシルバッファをクリア(GraphicsDevice.Clear)
↓
暗い地形を全体に描画
↓
部隊周囲のステンシルバッファをオン
↓
(ステンシルバッファを参照しながら)明るい地形を全体に描画
・ステンシルバッファについて
→ステンシルバッファを利用して、明るい地形を描画する範囲を限定している
→ステンシル描画時にcircle.pngを使用しているが、他の適当な画像でもかまわない
→索敵範囲が重なっても地形を重複描画しないので、部隊数が増えても描画効率(パフォーマンス)が悪化しない
→地形描画処理が重い場合に効果が高い
→スプライトバッチで地形や部隊を描画しているゲームでは、この方式によるメリットは無い(たぶん)
→ステンシル描画処理をインスタンシング技術で一括描画すると、さらにパフォーマンスが良くなる