Я хочу спросить, есть ли лучшая практика для настройки Effect
параметров в XNA. Или, другими словами, что именно происходит, когда я звоню pass.Apply()
. Я могу представить несколько сценариев:
- Каждый раз, когда
Apply
вызывается, все параметры эффекта передаются в графический процессор, и это не влияет на частоту установки параметра. - При каждом
Apply
вызове передаются только параметры, которые были сброшены. Поэтому следует избегать кэширования Set-операций, которые фактически не устанавливают новое значение. - При каждом
Apply
вызове передаются только измененные параметры. Так что кеширование Set-операций бесполезно. - Весь этот вопрос бесполезен, потому что ни один из упомянутых способов не оказывает сколько-нибудь заметного влияния на производительность игры.
Итак, последний вопрос: полезно ли реализовывать некоторое кэширование операции set, например:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
Благодарим вас заранее.