Tuesday, July 25th, 2017

Новые возможности DirectX 11: динамическое подключение шейдеров и сжатие текстур

Published on Март 2, 2009 by   ·   Комментариев нет

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

Однако, обратной стороной этого подхода является то, что он приводит к возникновению невероятно сложных шейдеров, которые не только не превосходят по эффективности (в плане производительности) отдельные шейдеры, но они также очень плохо поддаются отладке. Другим решением этой проблемы является написания множества специализированных шейдеров, которые покрывают не только все возможные сценарии работы, но и различные классы аппаратных средств.

В целях улучшения производительности вы не хотите использовать очень сложные шейдеры на аппаратных средствах, не способных обрабатывать их достаточно быстро. Идеальное решение в данном случае состоит в том, чтобы использовать нечто, что будет гораздо быстрее обрабатывать на аппаратных средствах бюджетных классов, иначе это приведет к тому, что весь процесс слишком усложнится и появятся большие накладные расходы, связанные с переключением шейдеров. Понятно, что это может повлечь за собой большие объемы дополнительных работ — uber-шейдер является самым простым вариантов для разработчика когда дело доходит до написания кода, но это точно не является идеальным решением.

Как подключить возможности directx?

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

Улучшенное сжатие текстур
Прошло много времени с того момента, как Microsoft обновила алгоритмы сжатия текстур DirectX и, послушав отзывы и рекомендации разработчиков, компания почувствовала, что уже давно требуются новые усовершенствования. Из всех жалоб, поступивших от сообщества разработчиков, Microsoft обратила свое внимание на слабую поддержку текстур HDR-формата, а также на тот факт, что после мультитекстурирования результирующее изображение часто оказывалось чересчур «блочным», независимо от разрешения оригинальной текстуры.
Чтобы удовлетворить эти потребности, в D3D11 будут введены два новых формата текстур — BC6 (или BC6H) и BC7. Прежний формат текстур высокого разрешения, к сожалению, не мог избежать потерь; вместо него будет предложено сжатие 6:1 с 16 bpc (bit per channel) — это позволит осуществлять эффективное, но при этом относительно высококачественное текстурирование в сценах с широким использование HDR-освещения, однако текстуры при этом будут немного отличаться от оригинала.

BC7, в свою очередь, является LDR (low dynamic range) форматом текстур и предлагает сжатие для RGB в пропорции 3:1. Кроме того, BC7 также можно использовать вместе с альфа-каналом, «заплатив» за это небольшим падением производительности — степень сжатия при этом будет уже 4:1, однако качество текстур все еще очень будет высоким.
Microsoft также добавляет, что декомпрессия текстур в DirectX 11 должна будет проводиться в полном соответствии со спецификациями этого API. Причиной этого является стремление компании еще увеличить качество декомпрессии текстур, потому как до момента выхода DirectX 11 у производителей аппаратных средств будет некоторый запас по времени для настройки аппаратных способов декомпрессии текстур на устройствах класса DirectX 10 и ниже.

personal narrative essays

Источник: http://www.bit-tech.net





Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]