スペキュラを無効にして描画速度を向上する
DXDirLight::SetDevice()において、メソッドの引数でライトONが指定されたとき、 レンダリングステート D3DRS_SPECULARENABLE の設定をTRUEにしている。 従来のバージョンでは、常にライトONを指定している。
SetDeviceメソッドにて、ライトON/OFFの指定に関わらず、 レンダリングステート D3DRS_SPECULARENABLE の設定を常にFALSEとする。
約2万個のノートを含むMIDIデータを再生したところ、修正前後でFPSの値が30から45に変化した。
スペキュラを無効にすることで、描画速度を向上する。
現状は、レンダリングステートでスペキュラを有効にしている。 またマテリアルのスペキュラにゼロ以外の値を設定している。
MSDNの「パフォーマンスの最適化 (Direct3D 9)」を参照すると、 「スペキュラ ハイライトは、ライトの 2 倍の負荷がかかります。」 とある。
しかし現状のMIDITrailは直方体しか描画しないため、スペキュラを有効にしても見た目の効果がない。 余計な負荷を掛けているだけなので、スペキュラを無効にする。