Отладка модели Direct3D - PullRequest
       8

Отладка модели Direct3D

1 голос
/ 30 октября 2008

Я пытаюсь визуализировать модель в Direct3D, используя DrawIndexedPrimitives. Однако я не могу видеть это на экране. Какие обычные методы используются для отладки модели Direct3D?

Я пробовал следующее:

  • Отключено отбраковка задней поверхности
  • Используется PrimitiveType.LineStrip вместо PrimitiveType.TriangleStrip
  • Несколько комбинаций матриц вида и проекции.
  • Использовал AutoCAD для построения вершин в виде крошечных сфер

Ответы [ 3 ]

2 голосов
/ 04 декабря 2008
  • Сделать цвет фона серым; тогда, если он белый или черный, вы увидите это.
  • Проверьте ваши матрицы преобразования (мир / вид / проекция). Используйте стандартную математическую функцию для просмотра и проецирования, установите для мира идентичность.
  • Убедитесь, что вы установили свой видовой экран; легко забыть это и иметь 0 значений в окне просмотра.
  • Включить отладку D3D. Посмотрите на отладочный выброс; многие упускают из виду, что среда выполнения скажет вам, что происходит не так.
  • Проверьте ваш пиксельный / вершинный шейдер. Используйте известную настройку, которая работает; или фиксированная функция.
  • Проверить состояние рендеринга. Включите буферизацию Z, тест Z, запись Z и т. Д., Если у вас есть проблемы с настройкой глубины. Проверьте свой цвет, пишите маски включены. Есть много состояний, ищите те, которые вы изменили, которые могут вызвать проблемы.
  • Проверьте ваш вызов DrawIP - у вас могут быть проблемы с параметрами, такие как неправильное указание количества вершин, граней и т. Д. Попробуйте нарисовать первый треугольник в списке, и никаких других; заставь одного работать, прежде чем рисовать их всех ...
2 голосов
/ 30 октября 2008

Используйте инструмент PIX из DX SDK. Это абсолютно потрясающе .

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

1 голос
/ 22 ноября 2008

По умолчанию в D3D нет света, может быть, все черное. Попробуйте включить свет, если вы этого не сделали.

...