Поделиться через


Примеры диагностики графики

Статьи в этом разделе документации содержат примеры, которые демонстрируют, как можно использовать диагностику графики в Visual Studio для получения сведений о графике и диагностики распространенных проблем с графикой.

Захват данных графики

Прежде чем можно будет использовать диагностику графики для отрисовки проблем в приложении необходимо захватить данные графики из приложения во время его выполнения.Можно использовать Visual Studio для получения данных графики вручную из приложения, которое выполняется из Visual Studio, или можно использовать api-интерфейс программного захвата для захвата данных графики из приложения, которое работает на компьютере, который не имеет Visual Studio.Можно использовать программный захват на локальных и удаленных компьютерах, и это единственный способ захвата графических данных из устройств Windows RT.

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

Отладка недостающих объектов

Можно использовать диагностику графики для отладки приложения Direct3D, в котором объекты или части объектов, которые должны отображаться, отсутствуют.Отсутствующий объект или часть объекта – одна из самых распространенных проблем, с которыми сталкиваются разработчики графики.Проблемы такого типа может быть трудно выявить, поскольку объект проходит через несколько преобразований из пространства модели в проекцию на экране.Тем не менее, проблема обычно связана с неправильно настроенным состоянием устройства или проблемами преобразования геометрии объекта.

Следующие сценарии демонстрируют, как можно выполнять отладку объектов, которые отсутствуют из-за множества причин:

Отладка ошибок отрисовки

Можно использовать диагностику графики для отладки приложения Direct3D, в котором объекты отображаются неправильно.Неверная отрисовка - другой распространенный вид проблемы.Проблемы такого типа может быть трудно выявить, поскольку неверный внешний вид объекта может быть результатом неправильно настроенного состояния устройства, неверно переданных в GPU параметров, ошибок в коде шейдера, непредвиденного взаимодействия между шейдерами или сочетания этих ошибок.

Ниже приведен сценарий, который демонстрирует способ отладки проблемы отрисовки, вызванной ошибкой построителя текстуры.