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