2012年01月09日

【XNA】アルファブレンディングでの注意点

久しぶりのXNAネタです。

XNA4.0になってアルファブレンドの設定が変わったことは前の記事で書きました。

今回は新しいゲームを夏ごろからちまちまとデザイナーが上げてくれる素材を調整しつつ
作成していて気づいた部分をメモします。
部品.png
この画像にはアルファ値が設定されており、
背景は完全に透明、天使の輪が半透明で描画されています。
これをキャラクターと掛け合わせて描画しようとして
失敗例.png

こうなってしまいました。
半透明部分がグレー色になってしまい、本来の色がでていません。

本来ならこのように表示されるはずです。
完成図.png

これはアルファブレンディングの乗算済みアルファになってしまうからだそうです。

前の記事で「SpriteBlendMode.AlphaBlend」を「BlendState.NonPremultiplied」とすると
XNA3.1で表現してきたアルファ表示ができると説明しました。

今回は「BlendState.NonPremultiplied」として
そのまま半透明な画像を表示していましたが、
期待した結果にならなかったので調べたところ

ひにけにXNAのこの記事を参考にしたところ、解決できました。

読み込む画像データのコンテントプロセッサー処理にて「Premultiplied Alpha」をTrueからFalseに変更することで
乗算済みアルファのテクスチャに指定しないようにできるようです。

ちなみに今作っているゲームの完成予定はまだまだ先ですね…


ゲーム画面がまったくコーディングできていません。
ラベル:XNA
posted by ヒイロ at 19:37| 福岡 ☁| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。