【问题标题】:How to compile hlsl shader file in Visual Studio C# project如何在 Visual Studio C# 项目中编译 hlsl 着色器文件
【发布时间】:2016-05-18 14:02:16
【问题描述】:

我想在 Visual Studio 2015 的 C# 项目中编译一个 hlsl 着色器文件。对于一个 C++ 项目,如果我添加如下图所示的 hlsl 文件,我会立即获得正确的属性:

但是,当我想在我的 C# 项目(使用 SharpDX)中执行此操作时,我没有获得此类选项,因此无法编译为我的项目的 CSO 文件。

有人知道解决办法吗?

【问题讨论】:

    标签: c# shader hlsl sharpdx


    【解决方案1】:

    现在有一个 NuGet 包 Microsoft.HLSL.CSharpVB,它为 C# 和 VB 项目添加了对 HLSL 着色器属性的支持:

    此包安装 MSBuild 支持,以支持 C# 和 VB 项目中的 HLSL 编译。

    请重新加载您的项目或重新启动 Visual Studio,以便新的着色器构建操作出现在属性窗口中。

    【讨论】:

      【解决方案2】:

      您不能直接在 C# 项目中执行此操作,因为 Visual Studio HLSL 编译内置集成只能从 C++ 中工作和访问 项目。

      虽然您可以将一个空的 C++ 项目放在同一个解决方案中,然后从那里添加和配置您的 HLSL 文件,然后从您的 C# 项目中引用生成的 cso 文件作为内容(并从 C# -> C++ 添加项目依赖项project)... 使用一些 MSBuild 技巧,您还可以将生成的内容自动复制到您的 C# 项目中。

      【讨论】:

      • 这确实是一个不错的解决方法。将 HLSL 文件的输出对象文件名设置为 $(SolutionDir)
        \%(Filename).cso。然后将 cso 文件作为内容文件添加到主项目中,使用“始终复制”或“如果较新则复制”就可以了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2012-01-06
      相关资源
      最近更新 更多