Бывший сотрудник студии Naughty Dog рассказал о принципах работы интерфейса DirectX 12, который по многочисленным заявлениям в несколько раз увеличивает эффективность оборудования компьютеров. По его словам обладатели консолей не получат большого преимущества с переходом на новую версию DirectX по сравнению с пользователями PC.
Джон Хейбл (John Hable), глава студии Filmic World и в прошлом сотрудник Naughty Dog, консольные игры и так имеют более глубокий доступ к ресурсам оборудования, поэтому эффект будет заметен намного меньше. По данным Gamebomb.ru , большая часть вычислений в консольных играх производится в графическом ядре, в то время как игры на PC больше полагаются на мощность процессора. Как бы то ни было, в целом DirectX 12 может быть не настолько хорош, как хотелось бы.
«DirectX 12 сделает процессор быстрее, но эффект будет не так заметен для графического ядра. Улучшенный интерфейс программирования изменит время ожидания инструкций от процессора графическому ядру, но практически не повлияет на скорость обработки этих инструкций», — объяснил Хейбл.
«Если для вашей игры центральный процессор — слабое звено, переход на DirectX 12 или Vulkan существенно поможет в производительности вашей игры. Но если слабое звено — графическое ядро, тогда новый интерфейс поможет не так сильно. Поскольку многие игры для PC в основном полагаются на центральный процессор, эффективность вычислений в играх будет существенно выше. Как бы то ни было, консольные игры обычно ограничены мощностью графического процессора, поэтому существенных изменений ждать не приходится, независимо от того, используете ли вы OpenGL, DirectX 11, DirectX 12 или Vulkan».
Хейбл объяснил принципы работы API на упрощенном примере, который позволит глубже понять принципы работы с графикой внутри компьютера. Глава Filmic буквально на пальцах рассказал об отличиях текущей и новой версии DirectX.
«Предположим вам нужно нарисовать небольшую семью кроликов. Эти кролики сделаны из треугольников и каждый из них обладает своей картой цветов. На OpenGL или DirectX 11 пришлось бы описывать каждого кролика в отдельности. Первый кролик — красный. Второй — синий. Третий — зеленый. И каждый кадр пришлось бы повторять эти инструкции графическому процессору снова и снова».
«DirectX12 и Vulkan намного эффективнее в этом плане. Первый кадр описывает всех кроликов ядру. Второй говорит, что есть красный, синий и зеленый кролики. Затем их можно прорисовать всех вместе. DirectX 11 и OpenGL пришлось бы описывать всех кроликов каждый кадр, но DirectX 12 и Vulkan можно просто приказать нарисовать всех кроликов. Конечно, я утрирую».
«Ключевая идея заключается в общении между приложением и графическим процессором. Можно передавать одну и ту же информацию с меньшими затратами. Но время прорисовки этих кроликов остается прежним. Графический процессор не волнует откуда идут команды — от DirectX 11, DirectX 12, OpenGL или Vulkan. Время рисования треугольников остается прежним, но общение с центральным процессором идет намного быстрее».
«Поэтому если ваша игра выдает длинные инструкции о том, что должен делать графический процессор, тогда новые API очень сильно выручат. Такие ситуации типичны для PC игр, когда мощные видеокарты простаивают без дела — они могут рисовать все намного быстрее, чем к ним поступают инструкции о том, что нужно рисовать. Консольные игры заставляют графический процессор работать постоянно, поэтому DirectX 12 в этом случае не очень поможет».
«Хотя графический процессор все же может работать эффективнее на новых API. В идеале объекты на экране нужно рисовать начиная с их передней части и заканчивая задней, чтобы свести к минимуму перерасход вычислений в одной сцене. К сожалению, это приведет к большим изменениям и DirectX 11 или OpenGL потребуется много времени, чтобы перевести эти команды для графического ядра. Многие игры специально полагаются на «плохие» решения, для графического ядра, чтобы снизить нагрузку на процессор».
По данным Gamebomb.ru , предварительные тесты показывают, что DirectX 12 способен увеличить эффективность обработки графики, как минимум, в 3 раза даже на относительно старом оборудовании. Однако, очевидно, реальная эффективность нового API будет по-прежнему зависеть от того, как разработчики используют ресурсы оборудования PC и консолей.
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев