Средства Visual Studio для программирования игр

Сводка

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

В данном разделе представлен обзор этих средств для работы с графикой.

редактор изображений

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

  • .png
  • JPG, JPEG, JPE, JFIF
  • DDS
  • .gif
  • BMP
  • DIB
  • TIF, TIFF
  • TGA

Можно создавать файлы настройки сборки для преобразования этих файлов в формат DDS на этапе сборки.

Дополнительные сведения об этом см. в разделе Работа с текстурами и изображениями.

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

 

Редактор моделей

С помощью редактора моделей вы можете создавать с нуля простые трехмерные модели, а также просматривать и изменять более сложные модели, импортированные из полнофункциональных программ трехмерного моделирования. Редактор моделей поддерживает несколько форматов трехмерных моделей, которые используются при разработке приложений DirectX. Можно создавать файлы настройки сборки для преобразования их в формат CMO на этапе сборки.

  • .fbx
  • .dae
  • .obj

Вот снимок экрана редактора с освещенной моделью.

чайник

Дополнительные сведения см. в разделе Работа с трехмерными моделями.

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

 

Конструктор шейдеров

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

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

визуальный граф шейдера

С помощью редактора шейдеров вы можете проектировать, редактировать и сохранять шейдеры в формате DGSL. Он также поддерживает экспорт в следующих форматах.

  • HLSL (исходный код)
  • CSO (байт-код)
  • H (массив байт-кода HLSL)

Можно создавать файлы настройки сборки для преобразования этих файлов в формат CSO на этапе сборки.

Вот фрагмент HLSL-кода, экспортированного из редактора шейдеров. Это только код для узла освещения по Ламберту.

//
// Lambert lighting function
//
float3 LambertLighting(
    float3 lightNormal,
    float3 surfaceNormal,
    float3 materialAmbient,
    float3 lightAmbient,
    float3 lightColor,
    float3 pixelColor
    )
{
    // Compute the amount of contribution per light.
    float diffuseAmount = saturate(dot(lightNormal, surfaceNormal));
    float3 diffuse = diffuseAmount * lightColor * pixelColor;

    // Combine ambient with diffuse.
    return saturate((materialAmbient * lightAmbient) + diffuse);
}

Дополнительные сведения об этом см. в разделе Работа с шейдерами.

Настройка сборки для трехмерных ресурсов

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

Чтобы добавить настройку сборки, щелкните правой кнопкой мыши проект в Обозреватель решений и выберите Пункт Настройки сборки.... В проект можно добавить следующие типы настроек сборки.

  • Конвейер содержимого изображения принимает на входе файлы изображений и выводит файлы в формате DDS.
  • Конвейер содержимого сетки принимает на входе файлы сетки (например, в формате FBX) и выводит файлы в формате CMO.
  • Конвейер содержимого шейдеров принимает на входе DGSL-файлы из редактора шейдеров Visual Studio и выводит файл в формате CSO.

Дополнительные сведения об этом см. в разделе Использование трехмерных ресурсов в игре или приложении.

Отладка графики DirectX

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

  • Графический конвейер.
  • Стек вызовов события.
  • Таблица объектов.
  • Состояние устройства.
  • Ошибки шейдеров.
  • Неинициализированные или неправильные буферы констант или параметры.
  • Совместимость версий DirectX.
  • Ограниченная поддержка Direct2D.
  • Требования операционной системы и пакета SDK.

Дополнительные сведения об этом см. в разделе Отладка графики DirectX.