Проблема компиляции вершинного шейдера DirectX-11 во время выполнения

Я пытаюсь следовать этому простому онлайн-руководству Microsoft по Direct3D здесь: http://msdn.microsoft.com/en-us/library/windows/apps/ff729719.aspx.

Я скачал исходный код, и хоть убей, я не могу заставить код выполняться должным образом! Я использую Visual Studio 2013 и комплект Windows 8.1 DirectX SDK. У меня есть файлы .hlsl и .fx в соответствующем каталоге, но вершинный шейдер не компилируется во время выполнения. Я пробовал возиться со многими настройками Visual Studio, но пока ничего не сработало.

Любая помощь будет оценена по достоинству!

РЕДАКТИРОВАТЬ: Проблема в том, что файлы .hlsl и .fx не находятся в той же папке, что и файл .exe, созданный VS. Я не уверен, как заставить VS перемещать файлы в ту же папку при создании проекта.


person maxbart    schedule 23.06.2014    source источник
comment
Не могли бы вы поделиться с нами сообщением об ошибке? Это настольное приложение или приложение для Магазина Windows? Приложения Магазина Windows не могут компилировать шейдеры во время выполнения.   -  person Nico Schertler    schedule 23.06.2014
comment
Я не уверен, как получить сообщение об ошибке. Код, вызывающий проблему:   -  person maxbart    schedule 23.06.2014
comment
hr = D3DCompileFromFile( szFileName, nullptr, nullptr, szEntryPoint, szShaderModel, dwShaderFlags, 0, ppBlobOut, &pErrorBlob );   -  person maxbart    schedule 23.06.2014
comment
На самом деле я обнаружил, что проблема в том, что .hlsl и .fx не находятся в той же папке, что и .exe, который создает VS. Я не уверен, как получить их там по умолчанию, но вставка их в папку и запуск .exe таким образом сработали.   -  person maxbart    schedule 23.06.2014


Ответы (1)


Устаревшие примеры проектов DirectX SDK требуют модификации для сборки с помощью VS 2012/Windows 8.0 SDK или VS 2013/Windows 8.1 SDK. Подробнее см. в MSDN.

Вместо того, чтобы вообще использовать устаревший SDK DirectX, вы можете просто использовать учебник Direct3D для рабочего стола Win32 на Галерея кода MSDN, которая создается только с помощью VS 2013/Windows 8.1 SDK.

person Chuck Walbourn    schedule 26.06.2014