Что лучше opengl или vulkan api

Что лучше opengl или vulkan api

9,059 уникальных посетителей
97 добавили в избранное

Если вы столкнулись с проблемой низкого FPS в DOOM и вам хочется ее исправить, то вы пришли как раз по адресу.
Магическая штука Vulkan API поднимает FPS в среднем на 15-25 кадров (зависит от конфигурации вашего компа), превращая некомфортные 20-30 FPS в совершенно играбельные 50-60.

ВНИМАНИЕ! ПРЕЖДЕ ЧЕМ ВЫПОЛНЯТЬ ДЕЙСТВИЯ, ОПИСАННЫЕ В РУКОВОДСТВЕ, НЕОБХОДИМО УБЕДИТЬСЯ, ЧТО ВАШ КОМПЬЮТЕР СООТВЕТСТВУЕТ ХОТЯ БЫ МИНИМАЛЬНЫМ СИСТЕМНЫМ ТРЕБОВАНИЯМ!

Что это вообще за зверь и как ему удается так ощутимо повысить производительность?

Vulkan API — графический интерфес программирования, созданный для отображения 3D и 2D графики на ваших мониторчиках. Проще говоря, эта шняга использует ресурсы вашего компа для построения графики в играх. OpenGL и DirectX из той же оперы.

Почему он дает такой прирост к FPS? Я, конечно, могу начать вам рассказывать о супер-пупер технологиях, использующихся в нем, но для простоты просто скажу, что он использует компьютерное железно намного эффективнее, чем его предшественник OpenGL.

Все очень просто, начнем с первого шага:

Обновите драйвера вашей видеокарты до последней возможной версии. Если не знаете, как это сделать — спросите у Гугла [google.gik-team.com] , потому что инструкции по их обновлению довольно длинные, да и руководство совсем не про это.

Запускаем сам DOOM. Заходим в Параметры>Расширенные и в пункте "Графический API" выбираем "Vulkan API" вместо "OpenGL". Перезапускаем игру.

Заходим в игру и радуемся повышению производительности!

Вы не обновили драйвера, либо скачали не ту их версию. Перекачиваем более новую/стабильную версию.

Ваша видеокарта не может в Vulkan API. Такое тоже может случиться, но вероятность довольно мала. Если видеокарта подходит под минимальные требования — она точно может работать с Vulkan API. Если нет — откатываем игру к настройкам по умолчанию и мучаемся с OpenGL’ом

Если игра после перехода на Vulkan отказывается запускаться — вот способ перехода обратно на OpenGL:
Первым делом нужно зайти в папку сохранений, она находится по этому пути:
C:Users Saved Gamesid SoftwareDOOMase
Далее находим в ней файл DOOMConfig.local и открываем его блокнотом.
Ищем параметр r_renderapi и меняем в его значении 1 на (1 — VulkanAPI, 0 — OpenGL)
Сохраняем файл и закрываем его. Теперь игра должна запуститься.

Читайте также:  Потребляемая мощность телевизора philips

Огромное спасибо пользователю arikuto за найденную инструкцию!

Не забудьте оценить руководство или оставить свою критику/пожелания!

Категории

  • В статье описана реализация метода отражения Фонга и анизотропной модели Варда с использованием OpenGL 3. Также приводится пример использования карты с коэфициентами для анизотропной модели. читать.
  • В статье описан метод создания статической библиотеки lib по dll. Вам не нужны исходники dll файла для создания lib-ы. читать.
  • В статье описан метод удалённого управления VLC плеером и использования RC интерфейса. Также приведён пример кода на C#. читать.

OpenGL vs Vulkan

Что такое Vulkan?

Vulkan — это новое API для создания 3D приложений. Его разработало Khronos Group, которая занимается и развитием OpenGL. Большой вклад в создание API вложила компания AMD. Хотя и многие другие компании работали над ним, например Microsoft, Apple, Google, Sony. Это API поддерживают такие создатели "железа" как: NVidia, AMD, Intel, Qualcomm, Imagination Technologies, ARM.

Чем отличается Vulkan от OpenGL

Статья на Википедии выделяет 4 основных отличия:

  1. Никаких глобальных состояний, все состояния привязаны к объектам.
  2. Состояния привязываются к буферу команд, а не к контексту, как в OpenGL.
  3. В OpenGL работа с памятью и синхронизация происходит не явно, в Vulkan разработчик будет иметь возможность контролировать это.
  4. Отсутствие проверки на ошибки в драйвере, для ускорения работы.

Исходя из того, что новое API появилось в наши дни и на протяжении 18 месяцев Khronos Group его разрабатывала в тесном контакте с ведущими IT компаниями мира, можно делать вывод, что это API должно лучше подойти для современных 3D приложений.

Ниже вы можете увидеть схему работы Vulkan:

Будет ли Vulkan на Mac OS X?

После того как спецификация Vulkan была опубликована, найти драйвера для современных видеокарт не составляет труда. Но это только для Windows и Linux. Так как вулкан это только кроссплатформенный API, который не требует особой поддержки со стороны видеокарт, обновив драйвер, вы можете его начать использовать (если конечно ваша видеокарта в списке поддерживаемых).

Читайте также:  Как настроить усилитель звука

Для Mac OS X всё намного сложнее. В El Capitan поддержки Vulkan нет, хотелось бы ждать в следующих версиях, однако есть одно "но". Apple в El Capitan добавила поддержку своего API — Metal. Раньше он использовался только для устройств на iOS. Исходя из этого, а также учитывая тот факт, что Apple привыкло контролировать всё, что касается их устройств, можно сделать вывод, что Vulkan может и не появиться на Mac OS X.

Что дальше?

По моему мнению, что ждёт Vulkan во многом зависит от того, насколько активно его начнут использовать разработчики и поддерживать производители видеокарт. Если развитие OpenGL на этом остановится, то для новых приложений выбора не будет и их придётся разрабатывать на Vulkan. Но существуют тысячи приложений на OpenGL, которые никто так сразу не ринется переписывать на Vulkan. Ещё и вопрос с Mac OS X не ясен, так как это очень распространённая система в США. Если для Mac OS X будет Metal, под Windows — DirectX, а под Linux Vulkan, то Vulkan никак не облегчит разработку кроссплатформенных приложений.

Это вообще разные вещи.
Нужно отличать изучение API, от изучения технологии. Если вы хотите выучить просто API, учите что угодно, ибо разницу заметите только, когда поймёте основы, базу.

OpenGL проектировался когда были другие архитектуры железа. Мультипроцессорность была только в теории, и считалась уделом суперкомпьютеров и ненужной для пользовательских ПК.
Можно привести аналогию: OpenGL == C++, Vulkan == асинхронный Assembler + hardware threads. Например, в C++ сейчас довольно много архитектурных косяков, которые пытаются решить новыми стандартами, объявляют какие вещи устаревшими, потому что они концептуально неверны и не подходят под современные реалии.
Но, при этом, вы можете всё то же самое написать на ассемблере, но нужно намного лучше понимать, как работает процессор и ОС, самому писать примитивы синхронизации, и т. п.

Читайте также:  Как сделать страницу в вк черной

Для этих же целей и создавался вулкан. Для программирования на нём, нужно знать все тонкости железки, читать кучи пейперов от той же НВидии, исследовать, придумывать новые фичи для современных архитектур с нуля, которые изначально были придуманы в OpenGL, но для старого железа.
Т. е. на Вулкане нужно делать больше руками, больше оптимизировать. Вместо одного вызова функции OpenGL, на вулкане придётся несколько сотен строк написать. При этом, если вы не понимаете какой-то одной тонкости, вы сделаете менее эффективнее то, что изначально было хорошо реализовано в OpenGL. К тому же, OpenGL умеет выбрасывать ошибки, в случае, когда вы где-то накосячили. Вулкан же их не выбрасывает, он полагается на то, что вы уже знаете как этим пользоваться. Точно так же, как ассемблер просто меняет состояние регистров, у него нет понятия ошибки. Как интерпретировать эти регистры, зависит от того, насколько хорошо разработчик читал мануал к процессору.

В итоге, я бы ответил так:

Если вы будете заниматься графикой как наукой, дико задротить а-ля Кармак в студенчестве с его движками, что-то исследовать, писать какие-то гениальные алгоритмы, защищать на этом диссертации, публиковать их, рассказывать потом на конференции, как вы круто справились с какой-то насущной задачей, повысили производительность, то тогда учите Vulkan. Vulkan — это именно про графику как технологию, про производительность, про инжиниринг и архитектурный дизайн, а не про API и само программирование. С вулканом придётся больше сидеть с диаграммами, документациями и строить архитектуру, придумывать методы взаимодействия частей этой архитектуры, синхронизации состояний, нежели писать код.

Если же вы пишете простые прикладные вещи, которым нужно показать какую-то графику, то учите OpenGL. Здесь вы учите только API, соглашаясь с уже готовым, слегка устаревшим, архитектурным дизайном.

Если хотите писать игры не мирового класса, то учите готовые движки, Unity или Unreal. Они уже поддерживают за вас Vulkan, продумали за вас API и архитектуру.

Ссылка на основную публикацию
Читы для вар тандер на орлы
Данный чит носит название Орлы чит для War Thunder 3.0. Это обновление для игры вышло совсем недавно, но для него...
Хрипит динамик в машине причины
Атмосфера в салоне автомобиля во многом зависит от работы акустической системы. В бюджетных машинах штатная магнитола и динамики оставляют желать...
Хром видео не на весь экран
БлогNot. Chrome 33 перестал показывать YouTube в полный экран. Chrome 33 перестал показывать YouTube в полный экран. Видел такой запрос....
Что больше мегабит или килобит
В эпоху оптоволокна и накопителей объемом в десятки терабайт считать в битах не принято. Мы бы совсем забыли, чем отличается...
Adblock detector