Купить компьютер с Windows в Украине

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

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

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

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


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

Улучшенное сжатие текстур
Прошло много времени с того момента, как Microsoft обновила алгоритмы сжатия текстур DirectX и, послушав отзывы и рекомендации разработчиков, компания почувствовала, что уже давно требуются новые усовершенствования. Из всех жалоб, поступивших от сообщества разработчиков, Microsoft обратила свое внимание на слабую поддержку текстур HDR-формата, а также на тот факт, что после мультитекстурирования результирующее изображение часто оказывалось чересчур "блочным", независимо от разрешения оригинальной текстуры.

Чтобы удовлетворить эти потребности, D3D11 введет два новых формата текстур – BC6 (или BC6H) и BC7. Прежний формат текстур высокого разрешения, к сожалению, не мог избежать потерь; вместо него будет предложено сжатие 6:1 с 16 bpc (bit per channel) – это позволить осуществлять эффективное, но при этом относительно высококачественное текстурирование в сценах с широким использование HDR-освещения, однако текстуры при этом будут немного отличиться от оригинала.
BC7, в свою очередь, является LDR (low dynamic range) форматом текстур и предлагает 3:1 сжатие для RGB. Кроме того, BC7 также можно использовать вместе с альфа-каналом, "заплатив" за это небольшим падением производительности – степень сжатия при этом будет уже 4:1, однако качество текстур все еще очень будет высоким.

Microsoft также добавляет, что декомпрессия текстур в DirectX 11 должна будет проводиться в полном соответствии со спецификациями этого API. Причиной этого является стремление компании еще увеличить качество декомпрессии текстур, потому как до момента выхода DirectX 11 у производителей аппаратных средств будет некоторый запас по времени для настройки аппаратных способов декомпрессии текстур на устройствах класса DirectX 10 и ниже.

Источник: http://thevista.ru/

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
1 Star2 Stars3 Stars4 Stars5 Stars (Нет оценок)
Загрузка ... Загрузка ...

Оставить комментарий

CAPTCHA image