2011年8月10日水曜日

にっきちゃんシェーダ



 思う存分3Dしたい!
ということで
・解像度を320x240
・ライトなし
・フォグon、Zバッファon
の簡素な環境で動かしてみたが、
オブジェクトを800ほど表示するだけで20FPSぐらいになって話にならない。
オブジェクトは32ポリゴン、テクスチャも16x16と非常に小さい。
 ここからさらにステンシルバッファつけて影つけてなんてしたら死んでしまうんじゃないの。
 
 オブジェクト数はそのままに、6ポリゴンにしたら40FPSになった。
1フレーム4000ポリゴンすら満足に動かんのかい。
 

 とりあえずオーソドックスなシェーダを試してみたが負担が300%増しくらい。
しかも当たらしめのDirectXSDKではシェーダ2.0以降でないといかんらしく、早くも心が折れそう。
 

 面白半分にいろいろ実装してみてる。
面白いがアイデア一本釣りの傾向
 
 環境マップって合計7回レンダリングがいるんか。
1回でもキツキツなのにどうすんだろこれ。しかもテクスチャに書き込み。うーん。

 実装した。死ぬほど重い。
あとそれっぽいように見えて位置関係がずれてる。どっかおかしいんだろう。
これって環境マップなオブジェクトが二つ以上あったら、
死ぬほど繰り返しレンダリングしないといかんのかな。合わせ鏡の原理で。
 鏡みたいに厳密に反射してるわけじゃなく、
鏡の位置にカメラ置いてそこから見える風景をテクスチャに保存、貼り付けて表示するだけだからずれとか気にしたら負けか。

 シェーダを使えば反射方向云々が可能なようだ。
 
 

 トゥーンレンダリングもついでに。真ん中まるいののみ。
 
 そろそろバンプマップやるかとおもったが、画像作るのにフォトショがいるという……。
要検索。→グレースケールからノーマルマップ作る関数があるのでそれでなんとかした。

0 件のコメント: