2014-10-21 1 views
0

Я всегда использовал ID3D11VertexShader и другие шейдеры, загружая их отдельно от файла fx. Я видел использование эффектов для загрузки всего сразу, и это кажется намного более организованным, потому что вы можете просто установить эффект, который может установить все шейдеры в соответствии с техникой в ​​файле fx. Это кажется намного проще, но я слышал, что при использовании эффектов есть проблемы с производительностью. Это правда? Если да, есть ли какие-либо преимущества для использования одного над другим?Преимущества или недостатки использования эффектов в DirectX 11

+0

Главный недостаток: DirectX 11. Vendor/Платформа замкнутость, безусловно, худший недостаток ИМО. – CoffeeandCode

ответ

2

Основным недостатком использования эффектов 11 является то, что поддержка его в компиляторе HLSL устарела и, вероятно, будет удалена в будущем обновлении.

Последняя версия Effects 11 находится на CodePlex и есть discussion thread на эту тему.

Эффекты исторически были более легким средством обучения и прототипирования, чем пытались использовать «сырые» шейдеры. Это упростило писать интересные образцы, но это не обязательная технология. Это упрощает некоторые аспекты создания шейдерного содержимого Direct3D, делает привязку динамической и управляемой данными, а синтаксис Standard Annotation Syntax (SAS) поддерживается в настоящее время различными редакторами, чтобы сделать «шейдерные настройки» настраиваемыми художником в инструментах они знакомы. Создание различных резервных элементов аппаратного уровня в том же файле также было полезным преимуществом эффектов.

Большинство игр с ААА, однако, показало, что получить хорошую производительность и сложную настройку сложно. FX9 и FX10 страдали от «черных ящиков», но FX11 у вас есть общий источник для части исполнения.

Что касается альтернатив, то DirectX Tool Kit Шейдеры BasicEffect - это полезный инструмент для обучения и быстрого прототипирования, а для тех, кто знаком с XNA Game Studio 4, это те же шейдеры. Вы можете видеть, что большинство Direct3D 11 Samples не используют эффекты 11.

Эффекты 11 не рекомендуются для новых применений, но они доступны. Приложения Windows Store для приложений под управлением Windows 8.0 и Windows Phone 8.0 не могут использовать его, поскольку во время выполнения вы должны иметь API D3DCompile, которые FX11 использует для отражения метаданных. Он будет технически работать с приложениями Windows Store для приложений Windows 8.1 и Windows Phone 8.1, а также для настольных приложений Win32. Некоторым людям удалось использовать его и для Xbox One.

ОБНОВЛЕНО: Эффекты теперь размещен на GitHub

Смежные вопросы