Directx 9 компилирует шейдеры во время выполнения - PullRequest
2 голосов
/ 05 ноября 2011

В последнее время я увлекаюсь программированием на Directx.Все хорошо для меня, но есть одна большая проблема.Каждый раз, когда я запускаю программу, даже если в коде не было никаких изменений, она должна компилировать шейдеры.Есть ли способ установить его так, чтобы он компилировал их только при редактировании?

Довольно раздражает попытка отточить значения так, как я хочу, когда мне приходится ждать 2 минуты каждый разcompile.

И да, он компилируется во время выполнения.

1 Ответ

3 голосов
/ 06 ноября 2011

Используйте fxc , чтобы предварительно скомпилировать шейдеры в файлы .fxo. Они могут быть загружены D3DXCreateEffectFromFile так же, как ваши .fx файлы. Это должно значительно сократить время загрузки.

Подробнее см. CompiledEffect Sample из SDK.

Как свидетельство, вы уверены, , что именно шейдерная компиляция вызывает большую задержку? Большое количество шейдеров, безусловно, может вызвать такое замедление, но если вы «начинаете программировать DirectX», как вы говорите ... о скольких строках кода шейдера мы говорим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...