DirectX 11 против DirectX 12: в чем разница и что лучше использовать?

Категория: программы

Лучше ли DirectX 12, чем DirectX 11? Давайте сравним их...

DirectX 12 был выпущен вместе с Windows 10 в 2015 году. С его выпуском Microsoft DirectX 12 открыл новую эру для геймеров и разработчиков игр. Способный снизить нагрузку на ЦП и увеличить производительность ГП, DirectX 12 быстро завоевал свое место.

Однако действительно ли увеличится ваша производительность просто переключением с DirectX 11 на DirectX 12? Давайте выясним, рассмотрев различия между DirectX 11 и 12.

Что такое DirectX от Microsoft? Как объяснено в нашем обзоре Microsoft DirectX, DirectX - это набор интерфейсов прикладного программирования (API), используемых для выполнения задач, связанных с мультимедиа. Сюда входит программирование игр для платформ на основе Microsoft, таких как Windows и Xbox. Для лучшего понимания давайте кратко поговорим об API.

API позволяет двум или более компьютерным программам обмениваться данными друг с другом, что мы обсудили в нашем обзоре API. Представьте это, как телефон. Если ваша мама присылает вам список покупок, ваш телефон получает эти данные и отображает их для вас. Это в основном и есть API.

Каковы различия между DirectX 11 и DirectX 12? Так в чем различия между DirectX 11 и DirectX 12? Просто говоря, DirectX 12 - это последняя версия DirectX. Одно из самых заметных различий - это то, как они взаимодействуют с вашим оборудованием. Большинство игр, разработанных с использованием DirectX 11, используют только от двух до четырех ядер ЦП. Одно из этих ядер обычно сообщает ГП, что делать.

Затем игра использует оставшиеся ядра для обработки различных настроек, требующих много ЦП, таких как частицы игры или дальность прорисовки. С другой стороны, DirectX 12 распределяет рабочую нагрузку ЦП между несколькими ядрами и позволяет каждому ядру общаться с ГП одновременно.

DirectX 12 также поставляется с некоторыми интересными особенностями. Среди них асинхронные вычисления и объекты состояния конвейера (PSO). Асинхронные вычисления увеличивают использование ГП, позволяя нескольким рабочим нагрузкам работать параллельно. Это, по сути, разблокирует полный потенциал вашего ГП.

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

Представьте себе это, как официанта в ресторане. Когда официант принимает ваш заказ, он спрашивает, что вы хотите выпить первым. Как только вы получите свои напитки, его интересует, что вы хотите на основное блюдо. Ваш заказ принимается поэтапно. Официант не будет спрашивать, что вы бы хотели на десерт, прежде чем вы попробуете основное блюдо. Хотя это эффективно, это не так эффективно, как могло бы быть. В вычислительной терминологии различный ресурс ГП будет обрабатывать каждую из задач официанта. Пока вы не получите свой напиток, ресурсы ГП, необходимые для принятия заказа на основное блюдо, будут простаивать. С асинхронными вычислениями DirectX 12 официант сможет принять ваш заказ сразу, как в быстром фастфуде. Это максимизирует использование ГП и улучшает производительность ваших игр.

DirectX 12 также представил объекты состояния конвейера (PSO). С DirectX 11, когда геометрия игры передается ГП для рендеринга, различные настройки оборудования отвечают за интерпретацию и рендеринг этих данных. Это называется графическим конвейером, и потоки ввода и вывода данных, которые происходят при рендеринге кадров ГП. Однако графический конвейер DirectX 11 не идеален.

Этот конвейер содержит коллекцию различных состояний, включая состояние растеризации, состояние смешивания и состояние трафарета глубины, среди других компонентов. В DirectX 11 существуют зависимости между этими различными состояниями. В результате одно состояние не может быть завершено, пока предыдущее состояние не определено. Это снижает использование ГП и увеличивает нагрузку на ЦП за счет производительности.

Для обхода этой проблемы DirectX 12 представил PSO - объекты, описывающие состояние всего графического конвейера. PSO похожи на бутылку, которая содержит различные состояния и компоненты, необходимые для создания изображения. Это позволяет ГП предварительно обрабатывать каждое зависимое состояние, вместо постоянного пересчета состояний на основе текущего графического конвейера.

Это значительно уменьшает нагрузку на ЦП, обнаруженную в DirectX 11, и улучшает производительность. Итак, какова разница? Ну, согласно Microsoft, DirectX 12 уменьшает нагрузку на ЦП на до 50 процентов и улучшает производительность ГП на до 20 процентов. Хотя это значительные улучшения, это не означает, что вы увидите те же результаты.

Почему переключение с DirectX 11 на DirectX 12 не так просто DirectX 11 был выпущен впервые для Windows Vista 27 октября 2009 года. Таким образом, между DirectX 11 и DirectX 12 прошло шесть лет. За это время тысячи игр были разработаны с использованием DirectX 11. К сожалению, переход от DirectX 11 к DirectX 12 - это все, кроме простого.

DirectX 11 - это так называемый API высокого уровня. Проще говоря, API высокого уровня легче для разработчиков. Результат - стабильные, отточенные и играбельные игры. С другой стороны, DirectX 12 - это API низкого уровня и совершенно другое существо по сравнению с DirectX 11. Хотя он позволяет разработчикам тонко настраивать оптимизацию на детальном уровне, он также требует обширных знаний для использования.

Тем не менее, игра, разработанная с использованием DirectX 12, может оказаться с худшей производительностью в зависимости от знаний разработчика API. Некоторые улучшения приносит DirectX 12, но все сводится к тому, насколько хорошо разработчик может его реализовать. По этой причине многие разработчики предпочитают придерживаться API высокого уровня, таких как DirectX 11.

DX 11 против DX 12: что выбрать? Ответ зависит от нескольких факторов, таких как игра, которую вы пытаетесь запустить. Например, Guild Wars 2 работает на DirectX 11. Даже если ваша операционная система и оборудование могут использовать DirectX 12, вам не будет предоставлена возможность выбора DirectX 11 в Guild Wars 2, потому что игра его не поддерживает. Это полностью решение разработчика, ArenaNet.

Верьте или нет, компании ArenaNet потребовалось девять лет, чтобы перейти от DirectX 9 к DirectX 11. Однако некоторые игры поддерживают и DirectX 11, и DirectX 12, включая Fortnite (читайте наш шпаргалку по Fortnite), Battlefield 5, Shadow of the Tomb Raider и многие другие. Пользователи могут переключаться между DirectX 11 и DirectX 12 в настройках игры.

Теперь, то, что некоторые игры поддерживают и DirectX 11, и 12, наверняка заставляет вас задуматься о производительности в игре. Выбор между DX 11 и DX 12 обеспечивает лучшую производительность в игре? В следующем видео показаны различия между DirectX 11 и DirectX 12 в ряде игр, демонстрируя важные характеристики, такие как средние кадры в секунду, использование ЦП, использование ГП и многое другое, с использованием AMD Ryzen 3600, Nvidia GeForce RTX 3060 Ti и 16 ГБ DDR4 RAM.





Если вам нужен по настоящему хороший и профессиональный веб хостинг или свой высокопроизводительный сервер, то смело переходите по ссылке и заказывайте!

 

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

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



Карта сайта
Copyright © 2024