gpt4 book ai didi

wpf - 如何在 csproj 中构建着色器效果 (.fx)

转载 作者:行者123 更新时间:2023-12-04 02:17:32 33 4
gpt4 key购买 nike

我正在尝试在 C# 类库中构建像素着色器。

我已将 fx 文件添加到项目中。由于找不到任何合适的构建操作,我尝试手动编辑 csproj:

<FxCompile Include="MyEffect.fx">
<ShaderType>Pixel</ShaderType>
</FxCompile>

但是当我尝试定位 ps 文件时,我得到了 System.IO.IOException: Cannot locate resource 'MyEffect.ps'

这是抛出错误的代码:

 public class MyEffect : ShaderEffect
{
public MyEffect(){
this.PixesShader = new Uri("pack://application:,,,/WpfControlLibrary1;component/MyEffect.ps");
}
}

如何设置我的项目以便找到已编译的着色器?

我找到的所有教程都是针对 C++ 项目或涉及自定义构建任务等旧工具的,但我认为自 VS2012 以来就不再需要了。

编辑:Visual Studio 仅在 C++ 项目中编译 .fx 文件。在 C# 项目中它不起作用。这里提到:http://blogs.msdn.com/b/chuckw/archive/2012/05/07/hlsl-fxc-and-d3dcompile.aspx

最佳答案

您可以设置一个 Postbuild 选项来使用 fxc 编译您的 fx 文件:

fxc /O0 /Fc /Zi /T  fx_5_0 /Fo myShader.fxo myShader.fx

但我在开发时会在运行时编译我所有的着色器。我不确定您使用的是什么 C# 库,但您可以在 SharpDX 和 SlimDX 中执行此操作:

ShaderBytecode.CompileFromFile(effectFile, "fx_5_0", ShaderFlags.None, EffectFlags.None);

关于wpf - 如何在 csproj 中构建着色器效果 (.fx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023231/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com