2009-10-08 10 views
1

Я пытаюсь понять, как отлаживать пиксельные и вершинные шейдеры в DirectX, я пробовал использовать Pix для Windows, но считаю, что он довольно глючный и неэффективен. Есть ли альтернатива, которая позволила бы мне отлаживать эти шейдеры внутри моего собственного приложения?Отладка DirectX пиксельных/вершинных шейдеров?

ответ

5

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

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

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

4

Одним словом, нет.

Да, пиксель немного глючен, но улучшил МАССИВНОСТЬ с момента его первого выпуска. Убедитесь, что вы используете последнюю версию SDK!

5

Просто введите информацию об отладке как цвет. Например, вы можете вывести 255 * (нормальный + 1) в качестве r, g, b, вы можете вывести некоторую промежуточную переменную шейдера как цвет, или вы можете проверить, находится ли она в границах шейдера и выводить белый, если она есть, и черная если это не так. Это обычно помогает.

2

PIX для Windows поставляется с DirectX SDK (с июня 2010 года я могу проверить) и позволит вам визуально отлаживать то, что вы устанавливаете, состояние мудрым и позволяет вам шаг за шагом создавать свои шейдеры. Это спасатель жизни.

 Смежные вопросы

  • Нет связанных вопросов^_^