使用HLSL效果文件

时间:2013-12-16 21:44:19

标签: hlsl

我是一名学生并致力于我的最终项目。 该项目是关于图像处理。 我找到了一个从对象中删除背景的代码,这正是我需要的 但代码是HLSL中的效果文件(* fx)。 我从来没有使用它,也不知道如何使用它 我找了一个初学者的训练,一无所获 有没有人能帮助我呢? 我需要什么环境以及如何运行效果文件? 它可以添加到c#项目吗?

感谢

1 个答案:

答案 0 :(得分:0)

你在为什么开发?我看到你正在使用C#,这是否意味着你正在构建Windows手机?或?...

除了[创建镜头应用程序 - 诺基亚] [1]之外,这可能对您有所帮助,因为这是我在我在应用程序中创建的着色器中导入的内容。另外,您如何在UI前端访问此着色器?你能粘贴一些代码吗?

  

添加SharpDX参考而不是使用默认的DirectX   通过单独的C ++ DLL实现互操作性,我们将使用   SharpDX库用于从C#代码进行绘图调用。这个图书馆是一个   底层DirectX函数的包装器,允许使用它们   在任何.NET语言中,目前支持Windows桌面,Windows   Metro和Windows Phone 8.首先前往下载部分   并获得您选择的包:“仅二进制”包括   库和“完整包”有一些关于如何执行的示例代码   SharpDX的常见任务。

     

在项目名为Lib的文件夹中创建一个新目录。打开   它创建了两个名为x86和ARM的子文件夹。解压缩   您下载的包和Bin文件夹,复制内容   标准-wp8-x86到您的x86文件夹,标准-wp8-ARM到ARM。在   在您的项目中,右键单击References并选择Add References ...,   在新窗口中单击“浏览”并导航到Lib \ x86文件夹   选择以下程序集:

     

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    您需要将路径的x86部分更改为   $(平台),所以结尾如下:

     

  Lib \ $(平台)\ SharpDX.dll我们是什么   写的是一个MSBuild属性,被当前替换   构建项目时的平台名称,所以正确的版本   使用程序集。对所有现有引用重复此步骤   SharpDX。完成后,保存更改并重新打开解决方案   Visual Studio。

     

Note.png注意:如果Visual Studio找不到SharpDX引用,请转到   到构建> Configuration Manager ...菜单并更改为Active   解决方案平台到x86。请记住在以后再次将其更改为ARM   部署到Windows Phone 8设备。

     

编译着色器SharpDX.Toolkit完全支持FX效果文件,   虽然您只能在桌面平台的运行时编译它们。至   将它们编译为二进制格式我们将使用tkfxc.exe   工具,你可以在Bin \ Win8Desktop-net40文件夹里面找到   您下载的SharpDX二进制文件。然后我们的应用程序就可以了   加载此二进制blob并将其用于绘图。要编译它,make   确保该文件与tkfxc.exe二进制文件位于同一目录中(或   你已将它正确添加到PATH中)并执行以下操作   命令提示符窗口中的命令:tkfxc.exe /FoInverted.tkfxo   Inverted.fx这将以二进制形式编译着色器并输出   到文件Inverted.tkfxo(默认情况下是output.tkfxo)。如果   发生了一些不好的事情你会得到一个红色文本输出,所以检查一下   出错并修复了着色器,直到它编译完成。你可以输出   二进制代码到包含byte数组的C#源代码文件   对象。为此,请指定参数/FcInverted.cs而不是   /FoInverted.tkfxo。

     

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