Я всегда использовал ID3D11VertexShader и другие шейдеры, загружая их отдельно от файла fx. Я видел использование эффектов для загрузки всего сразу, и это кажется намного более организованным, потому что вы можете просто установить эффект, который может установить все шейдеры в соответствии с техникой в файле fx. Это кажется намного проще, но я слышал, что при использовании эффектов есть проблемы с производительностью. Это правда? Если да, есть ли какие-либо преимущества для использования одного над другим?Преимущества или недостатки использования эффектов в DirectX 11
ответ
Основным недостатком использования эффектов 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
- 1. Преимущества/недостатки использования timthumb.php?
- 2. Преимущества и недостатки использования раскадровки?
- 3. Каковы преимущества/недостатки использования Maven?
- 4. Компиляция DirectX 11 shader без эффектов или d3dcompiler.h
- 5. Преимущества/недостатки использования триггеров MySQL
- 6. Преимущества и недостатки использования ReactJS
- 7. Каковы преимущества/недостатки использования CTE?
- 8. Преимущества/Недостатки использования приложений доступа
- 9. В чем преимущества/недостатки использования fputcsv?
- 10. Преимущества и недостатки использования идентификаторов в CSS?
- 11. GOTO или броска, преимущества/недостатки
- 12. Каковы преимущества и недостатки использования ARC?
- 13. Каковы преимущества и недостатки использования DLL?
- 14. Преимущества или недостатки использования вида ресайклера по виду сетки
- 15. Каковы преимущества и недостатки использования XML-схем?
- 16. Каковы преимущества и недостатки повторного использования AFHTTPRequestOperationManager?
- 17. Преимущества и недостатки использования java rmi
- 18. Каковы преимущества и недостатки использования OpenID?
- 19. Преимущества и недостатки использования корпоративной библиотеки
- 20. Преимущества/Недостатки использования методов класса без экземпляра
- 21. Каковы преимущества и недостатки использования прокси-сервера?
- 22. Каковы преимущества/недостатки использования синонимов против представления?
- 23. Управление ресурсами Shader DirectX 11
- 24. Каковы преимущества и недостатки использования Global.asax?
- 25. Преимущества и недостатки использования пользовательских обработчиков asp.net?
- 26. Каковы преимущества и недостатки использования линз?
- 27. Каковы преимущества и недостатки использования контейнера IOC?
- 28. преимущества и недостатки использования TRY/поймать
- 29. Преимущества/недостатки автонаправленных указателей
- 30. Преимущества и недостатки NHibernate
Главный недостаток: DirectX 11. Vendor/Платформа замкнутость, безусловно, худший недостаток ИМО. – CoffeeandCode