HLSL код не регистрируется?

Я собираюсь задать относительно общий вопрос.

Я использую VC ++ 2010, программирую приложение Direct X9 с помощью компонента шейдера. Программа прекрасно компилируется, рисует светлый и текстурированный квадрат. Проблема в том, что, хотя конец программы на c ++ работает нормально, а изменения, такие как изменение цвета освещения или положения текстуры, работают нормально, все изменения в файле .fx игнорируются. Фактически удаление файла из указанного каталога фактически не влияет на программу.

Это проблема компилятора? Конечно, файл HLSL не бесполезен, я имею в виду, что я передаю переменные ему, так, куда они могли бы пойти?

main.cpp: mediafire.com/?9n4llrclcfohqfb

transform.fx: mediafire.com/?jqach463p2vcqhz

1

Решение

Шейдеры не перекомпилируются на лету, поэтому, если вы изменяете код шейдера во время работы вашей программы, вам нужно снова вызвать D3DXCreateEffectFromFile, чтобы создать новый скомпилированный экземпляр вашего шейдера.

0

Другие решения

Ух ты, на самом деле это довольно позорно, оказывается, что я забыл отредактировать каталог .fx-файла в функции D3DXCreateEffectFromFile, поэтому редактируемый файл, конечно, не оказал влияния на приложение. Спасибо за вашу помощь.

0

По вопросам рекламы [email protected]