Vulkan API — урок 1. Установка (На примере MS VS 2015)

Лично я использую студию 2015 (с рутрекера), хотя и 2013 должна без каких либо проблем сделать вашу жизнь прекрасной.

SDK

Для начала качаем Vulkan SDK, он содержит много всего полезного, как и любой другой крупный СДК, а если вы работали ране с OpenGL, то он вам покажется очень знакомым.

Итак, скачали, установили (я не менял путь установки, но это дело каждого лично).

Заходим в папочку Bin (или Bin32) запускаем «cube.exe» и видим:

cube_demo

Если не видим, то проверяем, а поддерживает видеокарта Vulkan API, если да — качаем свежие драва (NVIDIA, AMD, Intel).

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

Вот тут кстати можно найти список видеокарт, которые поддерживают Vulkan и некоторые подробности.

Библиотеки

Качаем GLFW и GLM (ссылки) и распаковываем. Я решил создать папочку под названием «Libraries» в «Мои документы» -> «Visual Studio 2015».

patch

Я все качаю и делаю в виде х64, но все это без проблем можно проделывать и в приложениях win32. Вообще к этому вопросу мы еще вернемся, но очень не скоро.

Далее добавляем .cpp файл («Проект»->»Добавить новый элемент»), на данный момент нам в принципе хватит стартового метода int main(), так что содержимое файла должно выглядеть так:


#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/vec4.hpp>
#include <glm/mat4x4.hpp>

#include <iostream>

int main() {
    glfwInit();
    glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
    GLFWwindow* window = glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr);

    uint32_t extensionCount = 0;
    vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);

    std::cout << extensionCount << " extensions supported" << std::endl;

    glm::mat4 matrix;
    glm::vec4 vec;
    auto test = matrix * vec;

    while (!glfwWindowShouldClose(window)) {
    glfwPollEvents();
    }

    glfwDestroyWindow(window);

    glfwTerminate();
    return 0;
}

Далее настроим проект: «Проект»->»Свойства: <Название вашего проекта>».

Указываем: «Конфигурация: Все конфигурации», настраиваем «Дополнительные каталоги включаемых файлов», «Дополнительные каталоги библиотек» и «Вход» как на картинках.


settings2

Затем закрываем настройки, видим более не подчеркнутый цветастыми линиями код и запускаем программу (F5).

firstwindow

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

Как сохранить шаблон в Visual Studio:

«Файл» -> «Экспорт шаблона…» -> «Шаблон проекта». Там выбираем наш проект, указываем имя шаблона, можно еще и описание добавить, и жмякаем «Готово». Готово!

Main Admin

7 Comments

  1. Обратите внимание, на более свежих версиях Vulkan’а (в примере 1.0.26.0) нужно указывать НЕ папку «C:\VulkanSDK\х.х.х.х\Bin», а «C:\VulkanSDK\х.х.х.х\lib»

  2. Для 2017 студии. После загрузки шаблона и тычке в файл main.cpp вылезает сообщение, что файла такого нет (и действительно, архив с шаблоном его не содержит)
    Я что-то не так сделал при сохранении шаблона или этот файл стоит удалить?

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

  3. Собрал проект в codeblocks, ушло 3 дня, постоянно выдавало ошибку из десятка строк вида __imp__glewIni , решилось обновлением gcc компилятора. Просто оставлю этот комментарий здесь.

    • Неправильные настройки компиляции. Либо путь до либ не указали в линкере, либо еще что то в таком духе. МБ. с библиотекой времени выполнения ошиблись.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *