что такое vulkan и directx 12
что легче программировать для новичков — directx 12 или vulkan
Я новичок в компьютерной графике и разработке игр, и хотел знать, что легче изучать — Directx 12 или Vulkan?
Проще говоря, я имею в виду имена функций, имена классов, соглашения об именах, способы настройки / запуска проекта Vulkan, DirectX 12 и т. Д. И т. Д.
Решение
Ни один не подходит API для новичка. Оба API предоставляют программисту приложения подробные сведения о графическом процессоре, делая вас полностью ответственным за синхронизацию в стиле «без блокировки», управление памятью, включая все крайние случаи, такие как сценарии с низким уровнем ресурсов, полностью описанное состояние и т. Д. API предназначены для опытных графических программистов, которые, по сути, хотят напрямую общаться с видеодрайвером с некоторой степенью абстракции, независимой от производителя.
Графическое программирование уже сложная дисциплина, особенно когда дело доходит до отладки. Вы можете запутать одно число в тысячу строк кода и получить пустой экран и решить, что пошло не так. Особенно сложно отлаживать в контексте программирования шейдеров на GPU, когда вы выходите за рамки тривиальных шейдеров. С Direct3D 12 / Vulkan вы можете еще больше умножить проблемы с помощью сбоев драйверов, которые останавливают ваше приложение, проблем синхронизации на основе синхронизации, которые меняются в зависимости даже от крошечных различий в переменных, или, что еще хуже, он прекрасно работает, если вы не используете другое разрешение экрана или полностью терпит неудачу на другом ПК.
Конечно, вы можете изучить основы графического программирования и разработки игр на других платформах, но я не могу говорить о лучших вариантах там. Единственное, что я могу предложить, — это решить, действительно ли ваша страсть разработка игр или же графическое программирование. Возможно, вы не знаете достаточно прямо сейчас, чтобы действительно судить полностью, но это разные пути в отрасли. Если у вас есть игровое видение, которое вы хотите создать, посмотрите на что-то вроде Unity или Unreal Engine, чтобы вы могли сосредоточиться на разработка игр аспекты. Если вы больше интересуетесь графикой или игровыми технологиями (аудио и мультимедиа, движками, симуляторами, интерактивным бехваиором в реальном времени и т. Д.) В целом, то изучение Direct3D 11 является таким же хорошим местом для начала, как и любое другое.
Valve: Vulkan лучше чем DirectX 12
Во время выставки SIGGRAPH прошедшей в прошлом месяце, Дэн Гинсбург из Valve поговорил о новых графических API, которые предоставят разработчикам низкоуровневый доступ к GPU и CPU, повышая производительность в играх. И, по словам разработчика, Vulkan превосходит DirectX 12.
«Если вы не слишком агрессивны, чтобы выпускать игру на DirectX 12 в этом году, я бы сказал, что нет серьезной причины использовать DX12 для вашего тайтла. Дело в том, что Vulkan справляется с той же работой на Windows 10, при этом не ограничиваясь только одной платформой. Vulkan будет работать на всем – не только Windows 10, но Windows 7, Windows 8 и Linux.»
Хотя подобные комментарии от человека, который занимается Vulkan вполне естественны, API действительно превосходит DX12 или Metal. Она не рассчитана для единственной системы или производителя. Другое дело – как убедить разработчиков использовать API и показать его преимущества на практике.
Больше интересных статей на Shazoo
33 Комментария
Правильно. Ничего толкового в DX12 и не могло быть. Крутятся на одном месте.. Ох и Майки.
@SeF1988, DX 12 тоже отличный, просто только доступен на десятой винде.
@Lazer, судя по технодемо, новый директ не удивил. По этому и не удивился, что Вулкан лучше. Скажем так, от 12-й версии, ожидал куда большего. Про Metal не в курсе.
Ждем независимого сравнения
Хоть кто нибудь видел этот самый вулкан? Демо? Сравнения? Пустая болтовня.
То что он пойдёт на 7,этим меня зацепил. на 10 Винду не хочу пока
@Tahakaro, PowerVR Android demo как бы плиззз. Вы же наверное видели Mantle? То же только лучше. Хотя да, сравнения с DX12, безусловно, интересно увидеть.
@SeF1988, пока ещё игры не вышли на новых API, так что судить рано. Ещё надо дождаться видеокарт с полной поддержкой.
вэлв готовит нечто грандиозное. все эти вулканы, соурс2 и вайвы не для пустого словца. думается третья часть получится крышесносной игрушкой. как в 2004.
@Lazer, ну, по хорошему, да. Пока, это дележ шкуры не убитого медведя.
воу воу, двух-часовой ролик с выставки?! я не, не смотрю. некогда мне(.
@freawertyhn, я тоже не смотрю, никогда и некогда.
@Nerubarus, DX12 это DX12 и к mantle отношения не имеет, скорее всего опечатались, Vulkan это доработанный Mantle
@SeF1988, Нужно адекватно сравнение, какие-то бенчмарки чтоб вышли под это все дело, пока рано говорить. К примеру синтетические тесты того же DX12 очень даже впечатляют, не знаю как можно было остаться равнодушным когда такая огромная разница в производительности на одном железе 🙂
У DX12 есть одно преимущество, под него 100% будут разрабатываться игры и он точно пойдет в массы, а с вулканом может быть история как с мантл, что широкого распространения не получит
@Lazer,
Пока DX 12 вообще не доступен. Его на сегодняшний день не поддерживает не одна игра..
@SeF1988, ожидал новых визуальных эффектов? Основная цель новых API вроде как повышение «КПД» GPU, чтобы терафлопсы в трубу не вылетали.
@devlink, То что он кроссплатформенный это замечательно но это не совсем уж аргумент, посмотрите долю рынка виндоуса, там что-то около 85%, это достаточно большой процент чтобы не замарачиваться с кроссплатформенностью DX12.
Проф. софт это не показатель, т.к. это достаточно малая доли рынка, тут совсем иные правила, в общем и графические карты для определенных задач берутся совсем иные (к примеру nvidia quadro или как они там я не помню уже)
Я ж не против, я всегда рад новым технологиям я только за любое развитие и креатив, но я не верю что DX12 провалится, в то же время со всеми громкими анонсами и сколько было уже «убийц» DX, все они канули в лету, поэтому я вполне склонен допускать что та же участь ожидает и вулкан. На крайняк МС будет приплачивать разработчикам движков за то чтобы DX12 был приоритетным АПИ.
Небольшая ремарка я говорю про игры, опенгл (и его модификации/ответвления) используется и будет использоваться, но он не стал (и я думаю так и не станет) приоритетным АПИ в игровой индустрии.
Ага это из той темы где мантл всех побеждал, нет спс, задолбали уже с апишками своими, надо игры делать рабочие, а не такие как новый бетс, до сих пор в дауне лежащий.
@Exile, в том то и дело, что dx12 и vulkan от mantle`а пошли.
@Nerubarus, DX12 это просто новый виток в развитии DX, мантл максимум что промотивировал на какие-то изменения, почитайте про то сколько лет велась разработка DX12 и про его особенности и отличии от прошлых версий и поймете что мало вероятно, что Mantle оказал прямое влияние на него.
В то же время Vulcan это грубо говоря новая версия Мантл.
Ну а спецификации по Vulcan выпускать будут, как и саму литературу?
@SeF1988, смеешься?
с такой же уверенностью, небось в 200х году говорил про Дх10?
А знаешь, почему разработчики между OpenGL(вулкан) и DirectX постоянно обирали второй, хотя он только работал на винде, а первый и на винде, и на смартфонах, и на пс, и на убунте и т.д.?
Крутятся на одном месте.. Ох и Майки.
А знаешь почему сейчас разработчики будут использовать Дх? А потому что на одном АПИ можно написать на ПК и Х1 (2 целевые платформы из 3).
Что такое vulkan и directx 12
Уже четвёртый день подряд AMD не даёт скучать её поклонникам, ненавистникам и просто проходящим мимо людям. В рамках недельного марафона в честь перезапуска сайта GPUOpen сегодня AMD делится с читателями руководством по оптимизации приложений под новую архитектуру RDNA и низкоуровневые API DirectX 12 / Vulkan.
реклама
Но давайте остановимся на этих общеизвестных фактах и перейдём к сегодняшней новости. В наши дни, когда аппаратное и программное обеспечение становится всё сложнее и сложнее, оптимизировать современный real-time рендер становится труднее. ради этого даже приходится прибегать к низкоуровневым API, чтобы получить больше контроля над железом и выжать из него больше кадров в секунду. Именно поэтому AMD сегодня решает поделиться советами, подсказками и хитростями, чтобы помочь разработчикам преодолеть все эти трудности в процессе оптимизации.
В руководстве рассказывается не только про типичные вещи, типа асинхронные вычисления, управление памятью и дескрипторами, исправление сбоев и прочего, но и даёт ценные советы по оптимизации приложений под низкоуровневые API DirectX 12 и Vulkan. Этим советам стоит прислушаться, так как игры следующего поколения с потрясающей графической составляющей будут создаваться именно с помощью них.
Следующим новым контентом на GPUOpen AMD должна поделиться завтра. Кроме того, завтра на сайте должны быть опубликованы по крайней мере 6 видео-презентаций, в рамках инициативы «Let`s build. «. Данные презентации должны были быть показаны на GDC 2020, но так как конференция была отложена до конца лета, AMD решила поделиться этими лекциями с нами как можно раньше. Темы, которые будут завтра рассматриваться:
Если кто пропустил предыдущие новости, также можете ознакомиться с ними. Так, в понедельник AMD перезапустила сайт GPUOpen и расширила библиотеку FidelityFX. Во вторник AMD анонсировала патчи производительности для Unreal Engine, а вчера порадовала профессиональных разработчиков новыми возможностями Radeon ProRender.
Что такое vulkan и directx 12
Тест API Vulkan на РС
Рады сообщить, что в рамках обновления 4.3 начнем тестирование первой PC-версии игры с поддержкой API Vulkan. Для использования API Vulkan в Rainbow Six Осада при запуске нажмите соответствующую кнопку. Вы сможете выбрать либо DirectX 11, либо Vulkan.
ПОЧЕМУ VULKAN
API Vulkan даст Rainbow Six Осада преимущества по сравнению с DirectX 11, что позволит улучшить функционал игры в нескольких аспектах.
Если вкратце, с Vulkan разработчики получат возможность применять динамическое индексирование текстур для снижения нагрузки на центральный процессор (далее — ЦП), а динамическую настройку разрешения и технологию Async Compute — для снижения нагрузки на графический процессор (далее — ГП). Эти функции уже используются на консолях, а с API Vulkan они появятся и на РС. __Объединив их, мы сможем оптимизировать работу ЦП и ГП при прорисовке. __
Для заинтересованных в технических деталях ниже приведена более подробная информация об этих функциях и эффекте, который они окажут на РС-версию. Для обеспечения корректной работы API Vulkan ознакомьтесь с разделом «ВАЖНАЯ ИНФОРМАЦИЯ».
Содержание |
VULKAN, DIRECTX 11 и API |
ТЕСТИРОВАНИЕ VULKAN В RAINBOW SIX ОСАДА |
ТЕХНИЧЕСКИЕ ДЕТАЛИ |
—Динамическое индексирование текстур |
—Render Target Aliasing и динамическое масштабирование |
—Async Compute |
ВАЖНАЯ ИНФОРМАЦИЯ |
—Графические драйверы: обновите драйверы! |
—Аппаратная поддержка |
—Превышение лимита видеопамяти |
VULKAN, DIRECTX 11 И API
Vulkan и DirectX 11 — графические программные интерфейсы приложения, или графические API. Они служат связующим звеном между Rainbow Six Осада (или любой другой игрой) и ГП.
В играх и других приложениях с большим объемом графических операций ЦП и ГП работают параллельно, и максимальная частота кадров определяется самым медленным из них — все зависит от аппаратного обеспечения. Игроки могут частично контролировать этот параметр, изменяя настройки графики для уменьшения нагрузки на ГП, но производительность все равно будет ограничена одним из процессоров.
И вот где имеет значение выбор API: подходящий интерфейс позволяет снизить нагрузку и повысить производительность. Некоторые API — например, Vulkan — эффективнее задействуют аппаратное обеспечение, и потому нагрузка на ЦП снижается. Иными словами, они несколько усложняют программисту процесс написания кода, но в то же время дают больше возможностей.
Сейчас в Rainbow Six Осада используется DirectX 11 — API, выпущенный более 10 лет назад. Он все еще позволяет добиться приличной производительности, но при этом графический драйвер серьезно нагружает ЦП. Более того, некоторые функции, поддерживаемые современными ГП, несовместимы со старыми API вроде DirectX 11. (Мы рассматривали вариант с DirectX 12, но по результатам внутренних тестов производительности ЦП отдали предпочтение Vulkan.)
Преимущества Vulkan позволяют снизить нагрузку на ЦП и ГП и добавить поддержку новых функций, которые в будущем могут открыть дополнительные возможности.
ТЕСТИРОВАНИЕ VULKAN В RAINBOW SIX ОСАДА
Хоть мы и провели масштабные внутренние проверки и потратили достаточно времени на сбор данных после внедрения Vulkan на тестовом сервере, настоящим испытанием для этого интерфейса станет его запуск в основной версии игры.
Он будет внедрен уже в обновлении 4.3 для PC. Такой тест позволит оценить взаимодействие Vulkan с разнообразным аппаратным обеспечением, получить данные от более широкой аудитории и понять, осталась ли стабильность работы на том же уровне или даже выросла. Учтите, что процесс настройки Vulkan в Rainbow Six Осада еще продолжается, так что некоторые игроки могут не заметить изменений или даже наблюдать снижение производительности после запуска обновления. Наша задача — оптимизировать работу нового интерфейса, чтобы повысить эффективность обработки графики.
API Vulkan даст Rainbow Six Осада преимущества по сравнению с DirectX 11, что позволит повысить эффективность обработки графики. Более того, современный графический интерфейс поможет снизить нагрузку на ЦП и ГП, а также активировать дополнительные функции, которые в будущем откроют для разработчиков новые возможности. С обновлением 4.3 Vulkan подвергнут расширенному тестированию в РС-версии игры.
Для использования API Vulkan в Rainbow Six Осада при запуске нажмите соответствующую кнопку. Вы сможете выбрать либо DirectX 11, либо Vulkan.
Не забудьте ОБНОВИТЬ ГРАФИЧЕСКИЕ ДРАЙВЕРЫ! Для лучших результатов: Обновление Nvidia441.87, обновление AMD 20.1.4, обновление Intel 26.20.100.7755 или новейшие версии.
ТЕХНИЧЕСКИЕ ДЕТАЛИ
API Vulkan создан для того, чтобы максимально приблизиться к аппаратному уровню. При его использовании в «Осаде» станут доступны три современные функции, улучшающие производительность:
Динамическое индексирование текстур (или «bindless rendering»)
НАЗНАЧЕНИЕ: Динамическое индексирование текстур помогает снизить нагрузку на ЦП за счет уменьшения количества вызовов прорисовки (draw calls) (запрос графическому интерфейсу на прорисовку объекта, который появится на экране). Оно достигается благодаря тому, что ГП динамически выбирает текстуру, используемую в шейдере, вместо того чтобы привязать ее с помощью ЦП. В результате уменьшается количество обращений к драйверу и снижается нагрузка на процессор.
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: Благодаря API Vulkan и динамическому индексированию текстур должна повыситься частота кадров при игре на компьютерах, производительность которых ограничена пропускной способностью ЦП.
Render Target Aliasing и динамическое масштабирование
НАЗНАЧЕНИЕ: Render Target Aliasing позволит использовать в РС-версии динамическое масштабирование, изменяющее разрешение в зависимости от нагрузки на ГП. Игроки смогут выбрать желаемую частоту кадров, а игра автоматически подстроит разрешение для достижения этого результата и таким образом стабилизирует работу игры на компьютерах, производительность которых ограничена пропускной способностью ГП.
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: С момента запуска в «Осаде» применялись разные методы масштабирования с использованием временного сглаживания. Игроки на РС могут выбрать в игре разрешение, отличное от аналогичного параметра монитора, что позволяет отрисовать изображение в более низком разрешении, а затем увеличить его до размера экрана с помощью временного масштабирования. Временное масштабирование — качественный метод, за счет которого можно добиться эффективного сглаживания с низким размытием, а заодно и повышения производительности.
Мы надеемся, что совмещение динамического масштабирования и временного сглаживания поможет увеличить частоту кадров и стабилизировать работу игры на компьютерах, производительность которых ограничена пропускной способностью ГП.
Async Compute
НАЗНАЧЕНИЕ: Async Compute — технология аппаратного обеспечения, позволяющая ГП выполнять задачи параллельно, что дает возможность добиться лучшей оптимизации. С момента запуска «Осады» Async Compute применялась на консолях для повышения производительности при использовании эффектов отражений и объемного света. Видеокарты поддерживали эту технологию, но мы не могли задействовать ее из-за DX11. Благодаря API Vulkan это станет возможным.
ВАЖНАЯ ИНФОРМАЦИЯ
__Графические драйверы:ОБНОВИТЕ ДРАЙВЕРЫ ВАШЕЙ ГРАФИЧЕСКОЙ КАРТЫ. (Обновление Nvidia441.87, обновление AMD 20.1.4, обновление Intel 26.20.100.7755 или новейшие версии). Последние пару месяцев мы совместно с Nvidia, AMD и Intel занимались оптимизацией работы драйверов в «Осаде». Чтобы добиться максимальной производительности, обязательно установите их последние версии (если используются старые, вы получите предупреждение).
Аппаратная поддержка: К сожалению, некоторые старые модели видеокарт не поддерживают API Vulkan.
Превышение лимита видеопамяти: Одно из преимуществ драйверов на базе DirectX 11 — отличный контроль превышения лимита видеопамяти. В случае с Vulkan оно может вызвать зависания и даже прекращение работы игры. В связи с этим для обеспечения стабильности игрокам потребуется внимательно следить за расчетными объемами потребления памяти в меню настроек графики. При превышении будет отображаться соответствующее предупреждение. Чтобы избежать такой ситуации, стоит снизить качество текстур и/или разрешение игры — параметры, оказывающие самое сильное влияние на производительность.
Мы предлагаем РС-игрокам запустить игру с поддержкой Vulkan, чтобы результаты тестов могли быть максимально обширными. Делитесь отзывами в social media, на R6 subreddit, и forums!
что легче программировать для новичков — directx 12 или vulkan
Я новичок в компьютерной графике и разработке игр, и хотел знать, что легче изучать — Directx 12 или Vulkan?
Проще говоря, я имею в виду имена функций, имена классов, соглашения об именах, способы настройки / запуска проекта Vulkan, DirectX 12 и т. Д. И т. Д.
Решение
Ни один не подходит API для новичка. Оба API предоставляют программисту приложения подробные сведения о графическом процессоре, делая вас полностью ответственным за синхронизацию в стиле «без блокировки», управление памятью, включая все крайние случаи, такие как сценарии с низким уровнем ресурсов, полностью описанное состояние и т. Д. API предназначены для опытных графических программистов, которые, по сути, хотят напрямую общаться с видеодрайвером с некоторой степенью абстракции, независимой от производителя.
Графическое программирование уже сложная дисциплина, особенно когда дело доходит до отладки. Вы можете запутать одно число в тысячу строк кода и получить пустой экран и решить, что пошло не так. Особенно сложно отлаживать в контексте программирования шейдеров на GPU, когда вы выходите за рамки тривиальных шейдеров. С Direct3D 12 / Vulkan вы можете еще больше умножить проблемы с помощью сбоев драйверов, которые останавливают ваше приложение, проблем синхронизации на основе синхронизации, которые меняются в зависимости даже от крошечных различий в переменных, или, что еще хуже, он прекрасно работает, если вы не используете другое разрешение экрана или полностью терпит неудачу на другом ПК.
Конечно, вы можете изучить основы графического программирования и разработки игр на других платформах, но я не могу говорить о лучших вариантах там. Единственное, что я могу предложить, — это решить, действительно ли ваша страсть разработка игр или же графическое программирование. Возможно, вы не знаете достаточно прямо сейчас, чтобы действительно судить полностью, но это разные пути в отрасли. Если у вас есть игровое видение, которое вы хотите создать, посмотрите на что-то вроде Unity или Unreal Engine, чтобы вы могли сосредоточиться на разработка игр аспекты. Если вы больше интересуетесь графикой или игровыми технологиями (аудио и мультимедиа, движками, симуляторами, интерактивным бехваиором в реальном времени и т. Д.) В целом, то изучение Direct3D 11 является таким же хорошим местом для начала, как и любое другое.