2008年5月10日土曜日
ライトの設定
http://cid-8cd7cf5ea9fbca55.skydrive.live.com/self.aspx/Public/program/test080510.zip
意図通りの表示ができてなかったのを、ようやく直せた。
ライトの設定で
light.Ambient = D3DXCOLOR( 1, 1, 1, 0 );
をしていたのを
light.Ambient = D3DXCOLOR( 0, 0, 0, 0 );
に変更した。
device->SetRenderState( D3DRS_AMBIENT, D3DCOLOR_XRGB(0xff,0xff,0xff) );
とアンビエントを真っ白にしているので、
ライトのアンビエントをすべて1にしていると、
頂点カラーの設定が無意味になるようだ。
なのでライトのアンビエントを0にし、環境光の影響を受けないようにすることで解決した。
試してたらできた、という感じなので、どういうことかが結局良くわからん。
ライトの環境光設定ってなんぞい? ライトはライトじゃないのか。
まあ良く知らんが、何かしら計算に組み込まれている模様。
メッシュの表示や、頂点変換済みのポリゴンなんかは
ライトのアンビエント設定の影響がないっぽかったから、ややこしい。
ないはずはないが、目でも腐ってるんだろうかね。
ついでに、敵を倒したときに輪っかを表示するよう修正。
この輪っかに限らず、エフェクト系の表示はシェーダの影響を受けていない。
シェーダでレンダリングすると重くて話にならないのよねぇ。皆どうしてんだろ?
今のところ困ってないからまあいいかってな感じ。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿