Ich möchte fragen, ob es eine bewährte Methode zum Festlegen von Effect
Parametern in XNA gibt. Oder mit anderen Worten, was genau passiert, wenn ich anrufe pass.Apply()
. Ich kann mir mehrere Szenarien vorstellen:
- Bei jedem
Apply
Aufruf werden alle Effektparameter auf die GPU übertragen und daher hat es keinen wirklichen Einfluss darauf, wie oft ich einen Parameter einstelle. - Bei jedem
Apply
Aufruf werden nur die zurückgesetzten Parameter übertragen. Das Zwischenspeichern von Set-Operationen, die keinen neuen Wert setzen, sollte daher vermieden werden. - Bei jedem
Apply
Aufruf 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.