Quiero preguntar si hay una mejor práctica para configurar Effect
parámetros en XNA. O en otras palabras, qué sucede exactamente cuando llamo pass.Apply()
. Me puedo imaginar múltiples escenarios:
- Cada vez que
Apply
se llama, todos los parámetros de efectos se transfieren a la GPU y, por lo tanto, no tiene una influencia real con qué frecuencia configuro un parámetro. - Cada vez que
Apply
se llama, solo se transfieren los parámetros que se restablecieron. Por lo tanto, debe evitarse el almacenamiento en caché de las operaciones Set que realmente no establecen un nuevo valor. - Cada vez que
Apply
se llama, solo se transfieren los parámetros que se modificaron. Por lo tanto, el almacenamiento en caché de las operaciones Set es inútil - Toda esta pregunta no tiene arranque porque ninguna de las formas mencionadas tiene un impacto notable en el rendimiento del juego.
Entonces, la pregunta final: ¿es útil implementar algún almacenamiento en caché de la operación de configuración como:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
Agradeciendo de antemano.