【问题标题】:SharpDX : edit shader fx file while application is runningSharpDX:在应用程序运行时编辑着色器 fx 文件
【发布时间】:2014-08-19 08:02:18
【问题描述】:

是否有一种简单的方法可以在应用程序运行时编辑着色器 fx 文件以查看更改?

现在我必须使用 DirectX11-net40\tkfxc.exe 手动重新编译它并重新启动我的整个应用程序以查看更改。

【问题讨论】:

  • 您需要在您的应用程序中构建着色器替换功能。首先,您必须指定必须替换哪个着色器(为已编辑文件构建目录观察程序,并在着色器文件更改时发出事件)。然后你可以在你的应用程序中加载源代码并使用D3DCompile() 编译它(虽然我不知道这在 SharpDX 中是否可用(我不禁将它发音为“SharpDicks”!))。编译代码后,您只需使用device.CreateXXXShader() 创建一个新的着色器,并将对旧着色器接口的引用替换为新的。
  • shaderdx 中的 D3DCompile 当然可用:ShaderBytecode.Compile 是相关函数。

标签: visual-studio directx-11 sharpdx


【解决方案1】:

我假设您正在使用 SharpDX Toolkit,否则您需要自行开发。如果您正在编译 SharpDX 示例中使用的项目(不使用 tkfxc.exe),但是通过在着色器上设置正确的“ToolkitFxc”操作并在代码中使用 EffectCompilerSystem,如示例 CustomEffect 中所示,这应该直接工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多