neptune_explorer_0x9 (v0.000000001(β1)) | 2009-11-02 23:23 |
Neptune-UI (0.01.40.20) | 2008-07-12 20:15 |
>開発日誌>2009年2月
が書けるようになりました。(ぉ
いやぁ、単純な板ポリ(=板ポリゴン)出すのと比べて、だいぶ、かなーり、苦労しました。
・・・とか言いつつ、まぁ自分が原因だったりしたのですが。けーつろーん(←
原因としては、ID3DXSprite::Begin(),End()を呼び出すと色々と勝手にパラメータが書き換わってしまうので、
一部のRenderStateや、ライト等を再設定してやらねばならない、と言うもの・・・。
基本的に、本ではそんな事例載ってませんので、
「本と、おんなじようにSetRenderState()したり、ライトの設定の仕方も真似てる筈・・・なんだけどなぁ・・・」
と、一週間くらい悩んでおりました・・・。
更にたちの悪いのが、開発PC(?)である、Virtual PCだと問題なく動くと言うこと・・・。
「やったー!出来たー!」と大喜びで、メインPCの方でも実行してみたら、動かない・・・というネ・・・。
んで、デバッグ(動作確認)するにもイチイチコピーしてやらねばならず、非常に面倒でした・・・。
あー、あとまぁ、単純にZバッファテストに苦労したり(必要手順が多く*1て全部見つけ出すのに苦労した・・・)、
メッシュも最初「SetMaterial()だけでええんちゃうの・・・?」と思ってたらSetMaterial()、SetTexture()が必要だったり(それもD3DXLoadMeshFromX()で返される情報をそのまま使用、とかではなく、自分でアレコレやってあげなければなかったり)、Ambientやら、Specularやら、Emissiveやらの新しい概念が出てきたり、その型がD3DCOLORVALUEとか言う新しい型だったりやらで、
いやはや、大変でありましたよぉー・・・。
いやぁ、それにしてもSpecularはイイデスネ!このblackbox.exeのキューブのテカテカ感は、実はこのSpecularによるものだったりするのです。
「鏡面効果」とでも言いましょうか。わざわざ自分でアレコレ数学計算しなくともパラメータ一つ(まぁ、実際には二つ:何)で、こんなカッコヨクそれっぽい3D表示が出来るんですからかなり良いです!
このパラメータを弄るだけで、金属っぽい感じやら、ガラスっぽい感じやら、逆にツヤ消しな効果が得られるわけです。すごい!!
と言う感じに遊んでみたのがこのblackbox.exeなんですね。(ぉ
と、言うわけで。結構殆ど、3Dモデル表示やらの基礎は、凡そ終わった感じですね。
後はちょっと板ポリが真っ黒になる(多分法線設定してないから)のを直す、くらいですかね。
そしたら・・・そうですねぇ、パーティクルとか、影とか、そこらへんの応用技術を勉強していきましょうかね。