FC2ブログ

三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

パレットシェーダー

スプラトゥーン買いました。

塗っていくのが楽しいです。
もうすこしルールとかステージとかあったらなーと思うのですが、
これから増えるんでしょうかね・・・?


◆ゲーム制作
パレットシェーダーを作りました。

前回のドット素材をパレットインデックスをアルファとした素材に変換して、
DirectXでアルファ情報のみのテクスチャとして作成します。
dot89.png
んで、パレット素材も用意して、
dot89b.png


ピクセルシェーダーで1枚目のテクスチャをサンプリングして、その値をもとにパレットテクスチャをサンプリングします。

ピクセルシェーダー上では最初のテクスチャのサンプリング後の値は0~1の小数で取得できるのですが、
このままパレットのサンプリングにしようすると正しくパレットカラーが出力されない可能性があるそうです。

アルファテクスチャデータの最大値は255なのでピクセルシェーダー上では1.0になります。
1.0はパレットのテクスチャデータの右端を指し示します。(下図2番目)
おそらくは正しく出ると思いますが、端っこのサンプリングはあまり信用できないので3番目のようにパレット数+1で正規化します。
しかしこれではピクセルの中間をさして、右と左どちらの色が出力されるのか分からなくなるので0.2ピクセル程度右にずらします。(4番目)
scri_371.jpg
これですべてのカラーインデックスにおいてピクセル境界を踏まない位置をサンプリングするようになります。


画面にキャラが出ると思っていたら、こないだ作ったテクスチャ配置ツールのデータの読み込みとかゲーム側でのつなぎ部分とか全然できてなくてこのパレットシェーダーのテストをしただけになってしまいました・・・(´・ω・`)
スポンサーサイト

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。