いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

問題解決へ向けて

昨日のブログに書いた「GeForce2MXだと、色がおかしい (Radeonが正常に表示できてしまうのがおかしい?)」問題ですが、マテリアルの色を変更してみたり、ライトの色を変更してみたりするも、一向に改善されず。
ティーポットのメッシュ自体は法線も持ってるし……と、悩んでいましたがー、色々やったけっか、最初の1フレームだけ期待通りに色が出るようになりまして。
…もしかして、SetRenderState がいけないような気がしてきました。^^;
ゲーム中色々ステート変えてますからねぇ…。

ただ、いろんなところでStateを変更しているため、ぶっちゃけ管理できてません。(あかんがな)
仕方ないので、正常に描画できる最初のフレームと、異常に描画されてしまうそれ以降のフレームで、Stateの違うものの差分を算出し、結果を出力してみることにしました。

まだ差分を出すところまでは出来てませんが、現在のステートの一覧を出力するところは出来てみたり。↓
http://ir9.jp/hd/ts050303_00.png
なんか、こんな感じに出力してくれると結構面白いですねー。(笑
現在の状態が一目瞭然ですわ。

……まぁただ、コレ組むのはちょっと大変でしたけどねー。^^;
MSDNから値と、値の意味を1つ1つ理解しなきゃいけないし、enum値をstringにしないといけなし……。1時間ぐらいやってた気が……
http://ir9.jp/hd/ts050303_01.png
…力技なコードだなぁ…おぃ。(苦笑 ^^;


あとは差分を取るコード書いて…と。
これで問題がRenderStateじゃなかったらどーしましょ。(苦笑