Ich möchte fragen, ob es eine bewährte Methode zum Festlegen von EffectParametern in XNA gibt. Oder mit anderen Worten, was genau passiert, wenn ich anrufe pass.Apply(). Ich kann mir mehrere Szenarien vorstellen:
- Bei jedem
ApplyAufruf werden alle Effektparameter auf die GPU übertragen und daher hat es keinen wirklichen Einfluss darauf, wie oft ich einen Parameter einstelle. - Bei jedem
ApplyAufruf werden nur die zurückgesetzten Parameter übertragen. Das Zwischenspeichern von Set-Operationen, die keinen neuen Wert setzen, sollte daher vermieden werden. - Bei jedem
ApplyAufruf werden nur die geänderten Parameter übertragen. Das Cachen von Set-Operationen ist also nutzlos. - Diese ganze Frage ist bootlos, da keiner der genannten Wege einen nennenswerten Einfluss auf die Spieleleistung hat.
Also die letzte Frage: Ist es nützlich, eine Zwischenspeicherung der Mengenoperation zu implementieren, wie:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
Danke Ihnen im Voraus.