Как подключить графику в c visual studio
В этой статье рассматривается, как работать с редактором изображений Visual Studio для просмотра и изменения ресурсов изображений и текстур.
Вы можете использовать редактор изображений для работы с различными форматами изображений и текстур, которые используются при разработке приложений DirectX. Он также поддерживает популярные форматы файлов изображений и цветовые кодировки, функции, такие как альфа-каналы и MIP-текстурирование, а также многие форматы текстур с аппаратным ускорением и высокой степенью сжатия, поддерживаемые DirectX.
Поддерживаемые форматы
Редактор изображений поддерживает следующие форматы изображений:
Название формата | Расширение имени файла |
---|---|
PNG (Portable Network Graphics) | PNG |
JPEG | JPG, JPEG, JPE, JFIF |
Поверхность DirectDraw | DDS |
Graphics Interchange Format | GIF |
Bitmap | BMP, DIB |
Формат TIFF | TIF, TIFF |
TGA (Targa) | TGA |
Начало работы
В этом разделе рассматривается, как добавить в проект Visual Studio изображение и настроить его в соответствии с вашими требованиями.
Добавление изображения в проект
В обозревателе решений откройте контекстное меню проекта, в который требуется добавить изображение, и выберите пункты Добавить > Новый элемент.
В диалоговом окне Добавление нового элемента в разделе Установленные выберите Графика, а затем выберите подходящий формат файла для изображения.
Если в диалоговом окне Добавление нового элемента нет категории Графика, возможно, необходимо установить компонент Редакторы изображений и трехмерных моделей. Закройте диалоговое окно и в строке меню выберите Сервис > Получить средства и компоненты, чтобы открыть Visual Studio Installer. Перейдите на вкладку Отдельные компоненты и выберите компонент Редакторы изображений и трехмерных моделей в категории Наборы для разработки игр. Выберите Изменить.
Сведения том, как выбрать формат файла, соответствующий вашим требованиям, см. в разделе Выбор формата изображения.
Укажите имя файла изображения и расположение, где его необходимо создать.
Выберите кнопку Добавить.
Выбор формата изображения
В зависимости от того, как вы планируете использовать изображение, некоторые форматы файлов могут оказаться более подходящими, чем другие. Некоторые форматы могут не поддерживать нужную функцию, например прозрачность или определенный формат цвета. Некоторые форматы могут не обеспечивать подходящее сжатие для вашего содержимого изображения.
Следующие сведения помогут вам выбрать формат изображения, соответствующий вашим нуждам:
Точечный рисунок (BMP)
Формат растрового изображения. Формат изображения без сжатия, который поддерживает 24-разрядный цвет. Формат точечного рисунка не поддерживает прозрачность.
Изображение в формате GIF
Формат изображения GIF. Формат изображения со сжатием LZW без потери качества, который поддерживает до 256 цветов. Не подходит для фотографий и изображений со значительным объемом цветовых оттенков, но обеспечивает хорошую степень сжатия изображений с малым количеством цветов и высокой степенью их согласованности.
Изображение в формате JPG
Формат изображения JPEG. Формат изображения с высокой степенью сжатия с потерями, который поддерживает 24-разрядный цвет и подходит для сжатия изображений общего назначения с высокой степенью согласованности цвета.
Изображение в формате PNG
Формат изображения PNG. Формат изображения средней степени сжатия, без потери качества, который поддерживает 24-разрядный цвет и альфа-прозрачность. Подходит для естественных и искусственных изображений, но не обеспечивает степень сжатия, применяемую в форматах JPG или GIF.
Изображение в формате TIFF
Формат изображения TIFF (TIFF или TIF). Гибкий формат изображения, поддерживающий несколько алгоритмов сжатия.
Текстура в формате DDS
Формат текстуры DirectDraw Surface (DDS). Формат текстур высокой степени сжатия с потерей качества, который поддерживает 24-разрядный цвет и альфа-прозрачность. Его максимальная степень сжатия равна 8:1. Он создан на основе сжатия текстур S3. Его можно распаковать с помощью графического оборудования.
Изображение в формате TGA
Формат изображения TGA или Targa. Формат изображения, сжатого с использованием алгоритма RLE, без потери данных, который поддерживает закодированные цветом (цветовой палитры) или простые цветные изображения с 24-разрядным цветом и альфа-прозрачностью. Не подходит для фотографий и изображений со значительным объемом цветовых деталей, но обеспечивает хорошую степень сжатия изображений с широким диапазоном одинаковых цветов.
Настройка изображения
Перед началом работы с созданным изображением можно изменить его конфигурацию по умолчанию. Например, можно изменить его размеры или формат цвета. Дополнительные сведения о настройке этих и других свойств изображения см. в разделе Свойства изображения.
Перед тем как сохранить результаты работы, задайте свойство Формат цвета, если требуется использовать определенный формат цвета. Если формат файла поддерживает сжатие, при первом сохранении файла или при выборе команды Сохранить как можно настроить параметры сжатия.
Работа с редактором изображений
В этом разделе рассматривается, как с помощью редактора изображений вносить изменения в текстуры и изображения.
Команды, влияющие на состояние редактора изображений, находятся на панели инструментов Режим редактора изображений вместе с расширенными командами. Панель инструментов расположена у верхнего края области конструктора редактора изображений. Инструменты для рисования расположены на панели инструментов Редактора изображений у левого края области конструктора редактора изображений.
Панель инструментов "Режим редактора изображений"
В следующей таблице описываются элементы на панели инструментов Режим редактора изображений, перечисленные в порядке отображения, слева направо:
Зеленый канал
Синий канал
Шахматная доска
Для отображения фона в виде шахматной доски вместе с указанным цветом фона используется зеленый цвет. Этот параметр можно использовать, чтобы выделить прозрачные части изображения.
Белый фон
Для отображения фона используется белый цвет.
Черный фон
Для отображения фона используется черный цвет.
Фильтры
Предоставляет несколько распространенных фильтров изображения: Черно-белое, Размытие, Brighten (Осветление), Darken (Затемнение), Определение границ, Тиснение, Обратить цвета, Ripple (Рябь), Sepia Tone (Оттенок сепия) и Повысить резкость.
Графические модули
Render with D3D11 (Визуализация с помощью D3D11)
Использует Direct3D 11, чтобы отрисовать область конструктора редактора изображений.
Render with D3D11WARP (Визуализация с помощью D3D11WARP)
Использует платформу Windows Advanced Rasterization Platform (WARP) Direct3D 11 для отрисовки области конструктора редактора изображений.
Инструменты
Отразить по-горизонтали
Транспонирует изображение вокруг оси X, или по горизонтали.
Отразить по-вертикали
Транспонирует изображение вокруг оси Y, или по вертикали.
Создать MIP-объекты
Создает уровни MIP для изображения. Если уровни MIP уже существуют, они создаются повторно из наибольшего уровня MIP. Любые изменения, внесенные в меньшие уровни MIP, будут потеряны. Чтобы сохранить созданные уровни MIP, для сохранения изображения необходимо использовать формат DDS.
Просмотр
Панель инструментов редактора изображений
В следующей таблице приведены описания элементов на панели инструментов редактора изображений, перечисленные в порядке отображения, сверху вниз:
Работа с уровнями MIP
Некоторые форматы изображений, например поверхность DirectDraw (DDS), поддерживают уровни MIP для уровня детализации текстур и пространства. Сведения о том, как создавать уровни MIP и работать с ними, см. в статье Практическое руководство. Создание и изменение MIP-уровней.
Работа с прозрачностью
Некоторые форматы изображений, например поверхность DirectDraw (DDS), поддерживают прозрачность. В зависимости от применяемого инструмента существует несколько способов использования прозрачности. Чтобы указать уровень прозрачности для выбранного цвета, в окне Свойства установите альфа-компонент A.
В следующей таблице описывается, как используются различные инструменты для применения прозрачности.
Свойства образа
Окно Свойства можно использовать для задания различных свойств изображения. Например, можно задать свойства ширины и высоты, чтобы изменить размеры изображения.
В приведенной ниже таблице описаны свойства изображений.
Свойство | Описание |
---|---|
Ширина | Ширина изображения. |
Высота | Высота изображения. |
Бит на пиксель | Количество битов, в которых представлен каждый пиксель. Значение этого свойства зависит от цветового формата изображения. |
Прозрачное выделение | Если задать значение True, выбранный слой смешивается с основным изображением на основе альфа-фактора выбранного слоя. В противном случае следует установить значение False. Этот элемент доступен только для изображений, поддерживающих альфа-канал. |
Формат | Формат цвета изображения. Вы можете указать несколько форматов цвета в зависимости от формата изображения. Формат цвета определяет количество и тип цветовых каналов, которые содержит изображение, а также размер и кодирование различных каналов. |
Уровень MIP | Активный уровень MIP. Этот элемент доступен только для текстур с уровнями MIP. |
Число уровней MIP | Общее количество уровней MIP в изображении. Этот элемент доступен только для текстур с уровнями MIP. |
Число кадров | Общее количество кадров в изображении. Этот элемент доступен только для изображений, поддерживающих массивы текстур. |
Frame | Текущий кадр. Вы можете просмотреть только первый кадр. Остальные кадры будут потеряны при сохранении изображения. |
Число срезов глубины | Общее количество срезов глубины в изображении. Этот элемент доступен только для изображений, которые поддерживают объемные текстуры. |
Срез глубины | Текущий срез глубины. Вы можете просмотреть только первый срез. Остальные срезы будут потеряны при сохранении изображения. |
Изменение размеров изображений
Существует два способа изменения размера изображения. В обоих случаях редактор изображений использует билинейную интерполяцию для изменения размера изображения.
В окне Свойства задайте новые значения для свойств Ширина и Высота.
Выберите все изображение и используйте метки границ для изменения его размера.
Выбранные области
Параметры, выбранные в редакторе изображений, определяют активные области изображения. Активные области попадают под действие инструментов и преобразований. При наличии активного выделения на области большинство инструментов и преобразований не влияют за его пределами. При отсутствии активного выделения активно все изображение.
Большинство инструментов (Карандаш, Кисть, Распылитель, Заливка, Ластик, а также двумерные примитивы) и преобразований (Повернуть, Обрезать, Обратить цвета, Перевернуть слева направо и Перевернуть сверху вниз) ограничиваются или определяются активным выделением. Но некоторые инструменты (Пипетка и Текст) и преобразования (Создать MIP-объекты) работают независимо от выделений. Эти инструменты всегда действуют так, как если бы было выделено все изображение.
Выделяя область, можно сделать ее пропорциональной (квадрат). Для этого нужно нажать и удерживать клавишу SHIFT. В противном случае выделение не ограничивается.
Изменение размера выделения
После выделения области можно изменить размер выделения или содержимое изображения, поменяв размер метки выделения. При изменении размера выбранной области можно использовать следующие клавиши-модификаторы для изменения поведения выбранной области в процессе изменения:
CTRL: копирует содержимое выбранной области до изменения ее размера. Исходное изображение при этом остается неизменным; изменяется размер копии.
SHIFT: изменяет размер выбранной области пропорционально ее исходным размерам.
ALT: изменяет размер области выделения. Изображение при этом остается неизменным.
В следующей таблице перечислены сочетания клавиш-модификаторов:
Ctrl | Shift | Alt | Описание |
---|---|---|---|
Изменяет размер содержимого области выделения. | |||
Сдвиг | Пропорционально изменяет размер содержимого области выделения. | ||
ALT | Изменяет размер области выделения. Определяет новую область выделения. | ||
Сдвиг | ALT | Пропорционально изменяет размер области выделения. Определяет новую область выделения. | |
Ctrl | Копирует, а затем изменяет размер содержимого области выделения. | ||
Ctrl | Сдвиг | Копирует, а затем пропорционально изменяет размер содержимого области выделения. |
Свойства инструмента
Когда инструмент выбран, в окне Свойства можно задать, как он должен влиять на изображение. Например, можно задать толщину инструмента Карандаш или цвет инструмента Кисть.
Вы можете задать основной цвет и цвет фона. Передний план и фон поддерживают альфа-канал, который позволяет пользователю указать прозрачность. Параметры применяются ко всем инструментам. При использовании мыши ее левая кнопка отвечает за основной цвет, а правая кнопка — за цвет фона.
Эти свойства инструментов описаны в приведенной ниже таблице:
Значение
Текст для отрисовки.
Шрифт
Шрифт, который используется для отрисовки текста.
Размер
Размер текста.
Полужирный
Делает шрифт полужирным.
Курсив
Выделяет шрифт курсивом.
Thickness
Определяет толщину линии, формирующей границу примитива.
Радиус X
(Скругленный прямоугольник.) Определяет радиус закругления для верхнего и нижнего краев примитива.
1. В первую очередь перечислим, какие компоненты должны быть установлены для создания графического приложения на языке С++. Их три, все относятся к разделу "Desktop development with C++":
- VC++ 2017 v141 toolset (x86,x64)
- Windows 10 SDK (10.0.15063.0) for Desktop C++ x86 and x64
- C++/CLI support
Первые два нужны для создания любого приложения на С++, третий именно для создания графической оболочки программы. Во время исследования данной темы мною подключалось два десятка других - пользы новичкам от них нету.
2. После установки среды разработки переходим
File > New > Project. ( ^+N )
В появившемся окне отыскиваем Installed > Visual C++ > CLR > CLR Empty Project
Поля внизу заполняем традиционным для таких программ способом. В названии проекта лучше не допускать пробелов, иначе вам потом придётся мудрить в коде.
3. Необходимо добавить в приложение главную форму. Есть два равносильных пути достижения этой цели.
Первый: в "Solution Explorer" правой кнопкой мыши на названии проекта, во всплывшем контексном меню Add > New Item.
Второй способ: в главном меню выбираем Project > Add New Item.
Или просто нажимаем ^+A
Во появившемся окне Visual C++ > UI > Windows Form
Главная форма программы создана. На некоторых компьютерах в данный момент возможно выскакивание ошибки 0x8000000A, в этом случае нужно просто закрыть вкладку.
Эта ошибка хорошо известна ещё по Visual Studio 2015. Можете почитать её обсуждение, к примеру, на сайте Microsoft по ссылке1, ссылке2, ссылке3. И более лучшего решения, чем закрывать вкладку, ещё нет. По всей видимости, команда разработчиков Visual Studio не считает эту ошибку достаточно серьёзным делом, чтобы ломать о неё копья.
4. Но мало просто создать форму, нужно вплести её в создаваемую программу. Для этого в "Solution Explorer" правой кнопкой мыши на названии проекта, во всплывшем контексном меню выбрать Properties .
В открывшемся окне произвести два действия.
• Linker > System > SubSystem , из раскрывающегося списка выбрать " Windows (/SUBSYSTEM:WINDOWS) "
• Linker > Advanced > Entry Point . В пустое поле вписать " main " (без кавычек).
5. В "Solution Explorer" двойным щелчком открыть в редакторе файл MyForm.cpp. Скопировать в него текст
Отлично, всё готово! Теперь проект компилируем и запускаем. Но если у вас ранее выскакивала 0x8000000A, то быстрее всего вам придётся перезапустить Visual Studio и вновь загрузить в нём проект. Далее ошибка ни в чём не проявится.
6. Для того, чтобы добавить на нашу только что созданную форму новые элементы, понадобится панель Toolbox. Полезно запомнить горячую клавишу ^!X
Работа с размещением элементов на форме сложностей вызвать не должна. Работает здесь всё удобнее, чем wxWidgets в CodeBlocks или wxDev-C++. Никаких глюков мною замечено не было.
Для изменения свойств только что созданного элемента интерфейса щёлкните на нём правой кнопкой и в контекстном меню выберите, соответственно, Properties.
Испытаем кнопку в работе. Сделаем так, чтобы по её названию появлялось окно с умным текстом. Двойной щелчок по элементу на форме вызовет редактор кода с уже прописанным в нём шаблоном. Добавим внутрь фигурных скобок команду
MessageBox::Show("Hello World",
"My heading", MessageBoxButtons::OKCancel,
MessageBoxIcon::Asterisk);
Запускаем и проверяем!
Если вдруг не запустится, то первым делом проверяем, что выставлено в раскрывающемся списке Solution Configurations . Он находится на панели инструментов (под главным меню). Там должно быть Release (а не Debug) .
Дополнительная информация
Альтернативные способы создания графических приложений в Visual Studio 2017.
1. UWP (Universal Windows Platfrom application) - универсальные приложения, способные запускаться на Windows 10, Windows 10 Mobile и аналогичных самых современных платформах от Microsoft. Платформа разработана как расширение Windows Runtime. Всё бы хорошо, но данные приложения не могут запускаться на более старых версиях Windows, даже на восьмёрке.
Пара слов для общего развития о нескольких технологиях, на которые вы будете постоянно натыкаться при чтении документации по разработке GUI в Visual Studio.
ATL (Active Template Library) - набор шаблонных классов языка C++, предназначенных для упрощения написания COM-компонентов.
MFC (Microsoft Foundation Classes) - библиотека объектов, помогающая профессиональным разработчикам создавать десктопные приложения. Что-то вроде более усложнённого и навороченного варианта ATL. ATL и MFC являются хорошими вещами, и с их задействованием также можно создавать графические приложения. Но это инструменты, требующие наличия углублённых знаний тематики.
IncrediBuild - технология ускорения компиляции и сборки приложений с помощью подключения дополнительных компьютеров. К методам создания графических интерфейсов это напрямую не относится.
Примечания:
В интернете можно наткнуться на заголовок "Full C and C++ IDE with Visual Studio". Оттуда закачиваются те же самые стандартные дистрибутивы Visual Studio, проверено по контрольным суммам.
P.S.
Теперь можно немного поэкспериментировать с элементами интерфейса. Ниже показан код простейшего графического калькулятора:
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) Application::Exit();
>
private: System::Void radioButton1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "+";
>
private: System::Void radioButton2_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "-";
>
private: System::Void radioButton3_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "*";
>
private: System::Void radioButton4_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "/";
>
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) char sw = System::Convert::ToChar(label1->Text);
double a = System::Convert::ToDouble(textBox1->Text);
double b = System::Convert::ToDouble(textBox2->Text);
double r;
switch (sw) case '+':
r = a + b;
break;
case '-':
r = a - b;
break;
case '*':
r = a * b;
break;
case '/':
r = a / b;
break;
>
label2->Text = "Result: " + System::Convert::ToString(r);
>
А теперь можно попытаться сотворить что-то более похожее на стандартное window-приложение. Пока простейшее.
double iFirstNum;
double iSecondNum;
double iResult;
String^ iOperator;
private: System::Void btnC_Click(System::Object^ sender, System::EventArgs^ e) /*button C ("Global Clear" - clears the entire calculation*/
tbDisplay->Text = "0";
lblShowOp->Text = "";
>
private: System::Void btnCE_Click(System::Object^ sender, System::EventArgs^ e) <
/*button CE ("Clear Entry" is supposed to be used to clear only the thing you are currently
typing into the calculator, before you have performed any operation on it.*/
tbDisplay->Text = "0";
>
private: System::Void buttonS_Number_Click(System::Object^ sender, System::EventArgs^ e) <
//Number Buttons Event
Button ^ Numbers = safe_cast(sender);
if (tbDisplay->Text == "0")
tbDisplay->Text = Numbers->Text;
else
tbDisplay->Text += Numbers->Text;
>
private: System::Void buttonS_Arithmetic_Click(System::Object^ sender, System::EventArgs^ e) <
//Operator Buttons Event
Button ^ op = safe_cast(sender);
iFirstNum = Double::Parse(tbDisplay->Text);
tbDisplay->Text = "0";
iOperator = op->Text;
lblShowOp->Text = System::Convert::ToString(iFirstNum) + " " + iOperator;
>
private: System::Void btnEquals_Click(System::Object^ sender, System::EventArgs^ e) <
//Equals
iSecondNum = Double::Parse(tbDisplay->Text);
if (iOperator == "+")
iResult = iFirstNum + iSecondNum;
else if (iOperator == "-")
iResult = iFirstNum - iSecondNum;
else if (iOperator == "*")
iResult = iFirstNum * iSecondNum;
else if (iOperator == "/")
iResult = iFirstNum / iSecondNum;
else MessageBox::Show("Unknown operation.\nSomething wrong.",
"error", MessageBoxButtons::OK,
MessageBoxIcon::Error);
return;
>
private: System::Void btnDot_Click(System::Object^ sender, System::EventArgs^ e) <
//Decimal Point
if (!tbDisplay->Text->Contains("."))
tbDisplay->Text += ".";
>
private: System::Void btnPM_Click(System::Object^ sender, System::EventArgs^ e) <
//Plus-Minus
if (tbDisplay->Text->Contains("-"))
tbDisplay->Text = tbDisplay->Text->Remove(0, 1);
else
tbDisplay->Text = "-" + tbDisplay->Text;
>
Код создан на основе видеоролика
"Visual C++ Calculator Tutorial with Decimal Point and Backspace" (37:59, DJ Oamen, 2016 Jan 2, Visual C++ 2010) ,
но имеет ряд отличий.
Как продолжение, существует видеоролик
"Visual C++ Scientific Calculator Tutorial" (53:31, Paul Oamen, 2016 Oct 2, Visual Studio 2015). Судя по голосу, автор тот же. К показанному выше калькулятору прибавляется конвертер температуры и ряд более научных функций. Предупрежу, что итоговое "творение" имеет массу изъянов и глюков, поэтому видео можно просматривать исключительно для изучение приёмов программирования. Но не используйте его в качестве образца того, как нужно создавать калькуляторы.
В этой статье описано использование Visual Studio для обработки трехмерных ресурсов и включения их в состав сборок.
После создания трехмерных ресурсов с помощью средств в Visual Studio эти ресурсы можно использовать в приложении. Однако сначала их необходимо преобразовать в формат, поддерживаемый DirectX. Чтобы упростить преобразование ресурсов, Visual Studio предоставляет настройки сборки для каждого из создаваемых видов ресурсов. Для включения активов в состав сборки достаточно настроить проект на использование настроек сборки, добавить активы в проект и настроить их на использование подходящей настройки сборки. После этого вы можете загрузить активы в приложение и использовать их, создавая и заполняя ресурсы DirectX аналогично любому другому приложению DirectX.
Настройка проекта
Перед развертыванием трехмерных ресурсов в составе сборки необходимо сообщить Visual Studio, какие виды ресурсов вы хотите развернуть. Visual Studio уже поддерживает множество распространенных типов файлов, однако поскольку лишь некоторые приложения используют трехмерные ресурсы, Visual Studio не предполагает включение таких файлов в проект. Вы можете сообщить Visual Studio, что ваше приложение использует такие виды ресурсов, с помощью настроек сборки — файлов, которые сообщают Visual Studio, как наиболее оптимально обрабатывать разные типы файлов, предоставляемые для разных видов ресурсов. Поскольку эти настройки применяются для отдельного проекта, достаточно просто добавить их в свой проект.
Добавление настроек сборки в свой проект
В обозревателе решений откройте контекстное меню для своего проекта и выберите Зависимости сборки > Настройки сборки.
Отображается диалоговое окно Файлы настройки сборки для Visual C++.
В области Доступные файлы настройки сборки установите флажки, соответствующие тем типам активов, которые вы хотите использовать в своем проекте, в соответствии со следующей таблицей:
Включение ресурсов в состав сборки
Теперь, когда проект поддерживает разные виды трехмерных ресурсов, которые вы хотите использовать, необходимо сообщить ему, какие файлы являются трехмерными ресурсами и к каким типам ресурсов они относятся.
Добавление актива в сборку
В обозревателе решений войдите в проект, откройте контекстное меню актива и выберите Свойства.
Убедитесь, что для свойств Конфигурация и Платформа заданы значения, соответствующие необходимым вам изменениям.
В области Свойства конфигурации выберите Общие, а затем в сетке свойств в области Общие установите для свойства Тип элемента соответствующий тип элемента конвейера содержимого. Например, для файла изображения или текстуры выберите Конвейер содержимого изображения.
По умолчанию в Visual Studio предполагается, что множество видов файлов изображений следует классифицировать по типу элемента Изображение, встроенному в Visual Studio. Таким образом, вам нужно изменить значение свойства Тип элемента для каждого изображения, которое должно быть обработано конвейером содержимого изображения. Другие типы исходных файлов конвейера содержимого для трехмерных моделей и графиков визуальных шейдеров по умолчанию используют правильный Тип элемента.
Ниже приведены три типа элемента конвейера содержимого и соответствующие им типы исходных и выходных файлов.
Поверхность DirectDraw (DDS)
Формат GIF (Graphics Interchange Format)
Файл Collada DAE (DAE)
Настройка свойств для конвейера содержимого ресурсов
Вы можете задать свойства конвейера содержимого для каждого из файлов активов, чтобы выполнить его сборку нужным образом.
Настройка свойств конвейера содержимого
В обозревателе решений войдите в проект, откройте контекстное меню для файла актива и выберите Свойства.
Убедитесь, что для свойств Конфигурация и Платформа заданы значения, соответствующие необходимым вам изменениям.
В области Свойства конфигурации выберите узел конвейера содержимого, например Конвейер содержимого изображения для активов текстур и изображений, а затем задайте нужные значения для свойств в сетке свойств. Например, чтобы создать MIP-карты для актива текстуры во время сборки, задайте для свойства Создать MIP-объекты значение Да.
Конфигурация конвейера содержимого изображения
При использовании средства конвейера содержимого изображения для сборки актива текстуры вы можете применять разнообразные способы сжатия текстуры, указывать, требуется ли создавать MIP-уровни во время сборки, а также изменять имя выходного файла.
Доступны следующие параметры:
- Без сжатия
- Сжатие BC1_UNORM
- Сжатие BC1_UNORM_SRGB
- Сжатие BC2_UNORM
- Сжатие BC2_UNORM_SRGB
- Сжатие BC3_UNORM
- Сжатие BC3_UNORM_SRGB
- Сжатие BC4_UNORM
- Сжатие BC4_SNORM
- Сжатие BC5_UNORM
- Сжатие BC5_SNORM
- Сжатие BC6H_UF16
- Сжатие BC6H_SF16
- Сжатие BC7_UNORM
- Сжатие BC7_UNORM_SRGB
Конфигурация конвейера содержимого сетки
При использовании средства конвейера содержимого сетки для сборки актива сетки вы можете изменить имя выходного файла.
Свойство | Описание |
---|---|
Вывод содержимого | Задает имя выходного файла. Важно! Изменение расширения имени для выходного файла не оказывает никакого влияния на его формат. |
Конфигурация конвейера содержимого шейдера
При использовании средства конвейера содержимого шейдера для сборки актива шейдера вы можете изменить имя выходного файла.
Свойство | Описание |
---|---|
Вывод содержимого | Задает имя выходного файла. Важно! Изменение расширения имени для выходного файла не оказывает никакого влияния на его формат. |
Загрузка и использование трехмерных ресурсов во время выполнения
Использование текстур и изображений
Direct3D предоставляет функции для создания ресурсов текстур. Служебная библиотека D3DX11 в Direct3D 11 предоставляет дополнительные функции для создания ресурсов текстур и представлений ресурсов прямо из файлов изображений. Дополнительные сведения о создании ресурса текстуры в Direct3D 11 см. в статье Текстуры. Дополнительные сведения об использовании библиотеки D3DX11 для создания ресурса текстуры или представления ресурсов из файла изображения см. в статье Практическое руководство. Инициализация текстуры из файла.
Использование трехмерных моделей
Direct3D 11 не предоставляет функции для создания ресурсов из трехмерных моделей. Вместо этого вам необходимо написать код, который считывает файл трехмерной модели и создает буферы вершин и индексов, представляющие трехмерную модель и все необходимые ей ресурсы, например текстуры или шейдеры.
Использование шейдеров
Direct3D предоставляет функции для создания ресурсов шейдеров и их привязки к программируемому графическому конвейеру. Дополнительные сведения о создании ресурса шейдера в Direct3D и его привязке к конвейеру см. в руководстве по программированию для HLSL.
В программируемом графическом конвейере каждый этап должен предоставлять следующему этапу результат в поддерживаемом формате. Поскольку конструктор шейдеров может создавать только построители текстуры, именно ваше приложение должно обеспечить требуемый формат получаемых им данных. Перед построителем текстуры выполняется несколько программируемых этапов шейдера, а также выполняются геометрические преобразования — вершинный построитель текстуры, шейдер поверхности, шейдера домен и шейдер геометрии. Непрограммируемый этап тесселяции также выполняется перед построителем текстуры. Какой бы из этих этапов не выполнялся непосредственно перед построителем текстуры, он должен предоставлять результат в следующем формате:
В зависимости от используемых в шейдере узлов конструктора шейдеров вам также может понадобиться предоставить дополнительные данные в формате, соответствующем этим определениям:
How to add graphics library in visual studio?
But I don’t know how to edit linker to add this line -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 — lole32 like this in codeBlock
Can anyone help me to add that library or tell me where to add that line ? Thank you, sr for my stupid English.
1 Answer 1
libbgi.a is a gcc library. It will not work with Visual Studio.
If you have to use winbgi as a course requirement, switch your compiler tools to mingw 5.0.3. Note that this uses a version of GCC that is is about 4 major versions and more than 10 years behind what is currently available.
Winbgi is an attempt to re-implement a graphics library that was popular in the late 1980s and early 1990s. It’s been out of general use for over 20 years, so it isn’t applicable to anything you are likely to encounter in a professional programming environment.
Note that this means your instructor is preparing you to work in a fast-paced, cutting-edge work environment by teaching you with technologies that have been obsolete for between 10 and 25 years. I strongly recommend supplementing your education with some of the materials from the C++ Book List.
Digging a bit deeper, there are ports to Visual Studio 2005, 2008, and 2010.
Установка graphics.h Для VS2012
Для использования библиотеки необходимо установить компонент набора инструментов Windows SDK 7.1:
Удалите компоненты распространяемого пакета Microsoft Visual C++ 2010 в Панели Установка и удаление программ в Windows XP / Программы и компоненты в Windows 7/8
Скачайте Windows SDK 7.1 по ссылке Windows SDK 7.1 (веб установщик)
Запустите скачанный установщик. Примите лицензионное соглашение. Найдите на своём компьютере папку MicrosoftSDKs\Windows
Обычно она находится в папке Program Files или Program Files (x86) в зависимости от вашей архитектуры (Для x86 1 вариант, для x64 второй вариант), на диске С. Установите в эту папку пакет.
Например: C:\Program Files\Microsoft SDKs\Windows\v7.1
Установите следующие компоненты, отмеченные красной галочкой на рисунке. Нажмите далее. Дождитесь окончания установки. (Для установки требуется интернет соединение. Необходимые компоненты будут скачаны из интернета.)
Найдите папку IDE:
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
В зависимости от вашей архитектуры.
Скопируйте файлы из папки IDE в папку bin с заменой если потребуется.
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
На этом установка Windows SDK 7.1 закончена. Перезагрузите компьютер.
Настройка проекта для использования Windows SDK 7.1
Следующие действия необходимо выполнять каждый раз при создании нового проекта который будет использовать библиотеку graphics.
Скачайте требуемые файлы по этой ссылке и следуйте инструкциям в комплекте:
После этого нажмите правой кнопкой мыши на вашем проекте в панели Обозревателя решений выберите пункт Свойства. Откроется окно свойств проекта. Выберите набор инструментов Windows SDK 7.1
Способ 2: Найдите в визуальном каталоге «Включить, Lib» в каталоге установки Visual Studio, копирует копии двух файлов, которые распакованы.
Мой компьютер установлен по умолчанию, эти два каталогов здесь:
includeВнутри файлаСкопироватьмимо,libВнутри найденногоВерсия для корреспонденции x86, x64 Чтобы скопировать прошлое, если нет соответствующей версии, низкая версия должна иметь небольшие отношения. (Я использовал Visual Studio 2019 копий VS2017 Lib, может бежать)
Не подключается graphics.h в Visual Studio
Добавлено через 7 минут
И как тогда запустить следующий код?
Graphics.h в visual studio 2017
Как подключить graphics.h к visual studio 2017? И где ее скачать ?
Graphics.h в Visual Studio 2017
Здравствуйте, возможно, кто-нибудь знает. Есть ли возможность использовать библиотеку graphics.h в.
Добавить graphics.h в MS visual studio 2017
Не подскажите как добавить эту библиотеку? Весь день мучаюсь. На урок информатики задали.
Добавить библиотеку graphics.h в Visual Studio 2012
Как добавить библиотеку graphics.h в Visual Studio 2012.
Пишет:
‘HWND FindWindowW(LPCWSTR,LPCWSTR)’ : cannot convert argument 2 from ‘int’ to ‘LPCWSTR’
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
А Title подчеркивает и объясняет это так: Тип Char не поддерживает тип LPWSTR.
Решение
В настройках проекта уберите использование уникода.
Меню
Проект->Свойства->Свойства конфигурации->Набор знаков->Не задано.
И разбирайтесь в том, что такое Win Api и как получить контекст устройства рисования.
Все объявления находятся в windows.h
Вывод красной точки (x,y):
Visual Studio 10. Что и когда подключается в проекте?
Создавал файлы для классов двумя способами. 1) Просто создавал header и в нём хранились как.
Установка C++ Redistributable Visual Studio 2017 и Visual C++ для Visual Studio 2015
Доброго дня. Пытаюсь изучить PHP. Решил установить сервер локальный. В инструкции сказано: "Ещё.
Не подключается graphics.h
При компиляции возникает ошибка, связанная с graphics.h. Подскажите, пожалуйста, как поступить? .
Не подключается инклуд graphics.h
Пишу программу с рисованием простых фигур на codeblocks последней версии. Но там в инклудах нет.
Как подключить graphics h в visual studio 2019
Setting up graphics library (graphics.h) in Visual Studio Code (c++)
Table Of Content
My Workspace Dir and code example
It like a tradition to use Turbo in our Indian CS sector. Its because the syllabus haven’t been changed since long time.
The graphics. h header file provides access to a simple graphics library that makes it possible to draw lines, rectangles, ovals, arcs, polygons, images, and strings on a graphical window. The second step is initialize the graphics drivers on the computer using initgraph method of graphics. h library.
is very old library. It’s better to use something that is new.
Trust Me There are much better option
Allegro or SDL libraries may be for you. You could also try SFML. It has quite a following. You’ll have a large community behind you if you needed any help.
Now To set up graphics.h in vs code:
Get all the files needed graphics.h , winbgim.h and libbgi.a
If you don’t have MinGW installed get it from official and follow the steps.
Know the difference between MINGW, Mingw-w64 && TDM learn more go, go, go.
- Copy graphics.h and winbgim.h files to MinGW/ include folder.
location might be ("C:\MinGW\include")
location might be ("C:\MinGW\lib")
Open Vs Code Smart way:
if you are using template with task and c_cpp_properties json file then you directory should look like this:
Читайте также: