Effect
XNAでパラメーターを設定するためのベストプラクティスがあるかどうかを確認したいと思います。または、言い換えると、を呼び出すと正確に何が起こるのかpass.Apply()
。複数のシナリオを想像できます。
Apply
呼び出されるたびに、すべてのエフェクトパラメーターがGPUに転送されるため、パラメーターを設定する頻度に実際の影響はありません。Apply
呼び出されるたびに、リセットされたパラメーターのみが転送されます。したがって、新しい値を実際に設定しないSet-operationsのキャッシュは避けてください。Apply
呼び出されるたびに、変更されたパラメーターのみが転送されます。したがって、セット操作のキャッシングは役に立たない。- 言及された方法のいずれもゲームのパフォーマンスに顕著な影響を与えないため、この質問全体はブートレスです。
最後の質問です。次のような集合演算のキャッシュを実装することは有用ですか?
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
期待してありがとう。