Возникли проблемы с добавлением дополнительных ресурсов Texture2D в качестве пиксельных шейдеров в DirectX 11

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

Моя проблема в том, что этих новых шейдерных ресурсов нигде нет на GPU!
Я использую RenderDoc для отладки своего приложения, и там я вижу, что все, что записывается в эти новые ресурсы, просто отлично, и призыв связывать их как ресурсы шейдера также выглядит хорошо, но у меня все еще есть только 4 ресурса в свете пройти то, что у меня было раньше.

Мой код — полный беспорядок, и его много (!). Поэтому, если вы хотите увидеть что-то конкретное, чтобы помочь мне, я могу опубликовать это.

Я был бы очень счастлив, если бы получил несколько советов о том, как вы решаете проблему с такого рода проблемами, и даже счастливее, если кто-то знает, в чем проблема.

Заранее спасибо!

0

Решение

Есть два важных первых шага для отладки приложений DirectX:

  • Убедитесь, что для каждой функции, которая возвращает HRESULT что вы проверяете это во время выполнения. Если будет безопасно игнорировать возврат, он вернется void, При проверке HRESULT не использовать == S_OK, но используйте FAILED или же SUCCEEDED макрос вместо. Хорошая опция для ошибок «fast fail» — использовать обработку исключений в C ++ через ThrowIfFailed.

  • Включите устройство отладки DirectX и найдите ошибки, предупреждения и другие сообщения в окне вывода отладки. Подробнее о его включении см. Анатомия Direct3D 11 Создать устройство а также Трюки с отладочным слоем Direct3D SDK.

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

Если вы новичок в разработке DirectX, взгляните на Учебные пособия по DirectX Tool Kit

Для отладки приложений DirectX 11 хорошим вариантом является диагностическая функция Visual Studio в VS 2012 или более поздней версии. Вероятно, вы соответствуете лицензионным требованиям для использования VS 2013 или VS 2015 Общественное издание, и включает в себя все функции, включая VSGS. Увидеть MSDN.

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector