gpt4 book ai didi

c# - SharpDX 编译着色器

转载 作者:行者123 更新时间:2023-11-30 21:38:55 26 4
gpt4 key购买 nike

如何在构建时在 SharpDX 中编译顶点和像素着色器?您可以在“Direct3D Rendering Cookbook”中读到的方法是使用 HLSLCompiler.CompileFromFile。这将在运行时编译着色器,这并不总是好的。

最佳答案

好吧,我发现,上面的方式不太适合部署。问题是,内容文件位于 exe 或 dll 之外,所以我宁愿将它们用作“嵌入式资源”——这样 cso 文件就嵌入到程序集(dll 或 exe)中。要为嵌入式资源加载流,请使用:

protected SharpDX.D3DCompiler.ShaderBytecode LoadShaderFromManifestResourceFile(
System.Reflection.Assembly assembly, string resourceName)
{
SharpDX.D3DCompiler.ShaderBytecode shaderBytecode = null;

using (var shaderCodeReader = assembly.GetManifestResourceStream(resourceName))
{
shaderBytecode = ToDispose(ShaderBytecode.FromStream(shaderCodeReader));
}

return shaderBytecode;
}

要获取资源路径/标识符(可能很长),您可以使用:

var assembly = Assembly.GetExecutingAssembly();
string[] resources = assembly.GetManifestResourceNames();

关于c# - SharpDX 编译着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45511351/

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