2013-12-16 1 views
-1

Я студент и работаю над своим окончательным проектом. Проект посвящен обработке изображений. Я нашел код, который удаляет фон из объекта, что именно то, что мне нужно , но код является файлом эффекта (* fx) в HLSL. Я никогда не работал с ним и понятия не имел, как его использовать Я искал обучение для новичков и ничего не нашел.
Есть ли кто-нибудь, кто может мне помочь? какая среда мне нужна и как можно запустить файл эффекта? можно ли добавить в проект C#?с использованием файла эффекта HLSL

спасибо

+0

HLSL является High Level Shader Language - это как кодирование для GPU. Я думаю, что если вы пишете код в XNA, файлы HLSL могут быть включены в процесс сборки, например файлы изображений. Вероятно, вы найдете лучший ответ на раздел «Разработка игр» в Stack Exchange (и укажите как можно больше сведений о типе проекта!) – Katana314

ответ

0

Для чего вы идете? Я вижу, вы используете C#, значит ли это, что вы строите для Windows-телефона? или? ...

Это, за исключением [Создание объектного приложения - Nokia] [1], может помочь вам, поскольку это то, что я сделал для импорта в шейдерах, которые я создал в своем приложении. Кроме того, как вы получаете доступ к этому шейдеру на интерфейсе пользователя? Можете ли вы вставить код?

Добавление SharpDX Ссылки Вместо использования по умолчанию DirectX interoperatiblity на хотя отдельный C++ DLL, мы будем использовать библиотеку SharpDX сделать рисунок звонки из C# код. Эта библиотека представляет собой оболочку базовых функций DirectX, которые позволяют использовать их на любом языке .NET и в настоящее время поддерживает Windows Desktop, Windows Metro и Windows Phone 8. Начните с заголовка в разделе загрузки и получите пакет ваш выбор: «только двоичный» включает в себя библиотеки , а «полный пакет» содержит пример кода для выполнения общих задач с SharpDX.

Создайте новый каталог внутри папки вашего проекта под названием Lib. Откройте и создайте две дочерние папки с именем x86 и ARM. Декомпрессируйте загруженный пакет и из папки Bin, скопируйте содержимое Standard-wp8-x86 в папку x86 и Standard-wp8-ARM в ARM. В проекта, щелкните правой кнопкой мыши на Ссылки и выберите Добавить ссылку ... и в новом окне нажмите кнопку Обзор и перейдите к папке x86 \ Lib выбрать следующие узлы:

SharpDX.dll SharpDX.DXGI .dll SharpDX.Direct3D11.dll SharpDX.Toolkit.dll SharpDX.Toolkit.Game.dll ShaprDX.Toolkit.Graphics.dll Поскольку сборки не являются AnyCPU и , в настоящее время мы имеем только ссылки x86, мы должны изменить наш проект вручную, поэтому компилятор ссылается на правильные. Закрыть Visual Studio и откройте файл CSPROJ в вашем любимом текстовом редакторе и искать элементы, названные Reference, как этот:

Lib \ x86 \ SharpDX.dll Вы должны изменить х86 часть пути $ (Platform), так она заканчивается так:

Lib \ $ (Platform) \ SharpDX.dll что мы написали это свойство MSBuild, который заменяется текущим названием платформы при создании проекта, поэтому используется правильная версия сборок . Повторите этот шаг для всех существующих ссылок на SharpDX.По завершении сохраните изменения и снова откройте решение в Visual Studio.

Note.png Примечание. Если Visual Studio не может найти ссылки на SharpDX, перейдите в меню «Build> Configuration Manager ...» и измените Active платформу решений на x86. Не забудьте снова изменить его на ARM, когда развертывается на устройстве Windows Phone 8.

Компиляция Shader SharpDX.Toolkit полностью поддерживает файлы эффектов FX, , хотя их можно компилировать только во время выполнения на настольных платформах. Для скомпилируйте их в двоичный формат, мы собираемся использовать инструмент tkfxc.exe , который вы можете найти в папке Bin \ Win8Desktop-net40 загруженных вами бинарных файлов SharpDX. Затем наше приложение сможет загрузить этот двоичный блок и использовать его для рисования. Чтобы скомпилировать его, сделайте уверен, что файл находится в том же каталоге, что и ваш двоичный файл tkfxc.exe (или , который вы его правильно добавили в PATH) и выполните следующую команду в окне командной строки: tkfxc.exe/FoInverted. tkfxo Inverted.fx Это скомпилирует шейдер в двоичной форме и выведет в файл Inverted.tkfxo (по умолчанию это output.tkfxo). Если произошло что-то плохое, вы получите красный текст, поэтому проверьте, что пошло не так, и исправить шейдер, пока он не скомпилируется. Вы можете вывести двоичный код в файл исходного кода C#, содержащий массив байтов объектов. Для этого укажите параметр /FcInverted.cs вместо /FoInverted.tkfxo.

[1]: http://developer.nokia.com/Community/Wiki/Creating_a_Lens_application_that_uses_HLSL_effects_for_filters

+0

Знаете ли вы, может ли C#/WP8 разрешать установку нескольких разных регистров при запуске эффекта? Например, с шейдером со скользящей шкалой (интенсивностью). –