Je veux demander s'il existe une meilleure pratique pour définir les Effect
paramètres dans XNA. Ou en d'autres termes, que se passe-t-il exactement lorsque j'appelle pass.Apply()
. Je peux imaginer plusieurs scénarios:
- Chaque fois que vous
Apply
appelez, tous les paramètres d'effet sont transférés vers le GPU et il n'a donc aucune influence réelle sur la fréquence à laquelle je règle un paramètre. - À chaque
Apply
appel, seuls les paramètres réinitialisés sont transférés. Il faut donc éviter la mise en cache des opérations Set qui ne définissent pas réellement de nouvelle valeur. - A chaque
Apply
appel, seuls les paramètres modifiés sont transférés. La mise en cache des opérations Set est donc inutile. - Toute cette question est sans démarrage car aucun des moyens mentionnés n'a un impact notable sur les performances du jeu.
Donc, la dernière question: est-il utile d'implémenter une mise en cache de l'opération d'ensemble comme:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
Merci d'avance.