SuperAPI AI 工具集

stride-shader-asset-workflow

编程与开发

查看项目

更新于 10-16 08:05

技能介绍

用途:在 C# 的 Stride 项目中新增、重命名或调试 Stride 着色器文件(*.sdsl)时,规范正确的着色器注册与资产编译工作流,覆盖 compute、material/mixin、effect 及自定义着色器类。

主要能力:检查项目配置、生成着色器 key 文件(*.sdsl.cs,由 StrideShaderKeyGenerator 生成,类名形如 <ShaderName>Keys),并执行 Stride 资产编译步骤,帮助排查 E1202 “mixin ... is not in the module” 等错误及运行时新着色器未加载等问题。

使用方式:默认模板中着色器通常放在 <GameName>/Effects 下,.sdpkg 的 AssetFolders 需包含该目录;项目若链接着色器,优先使用 None 项并显式设置 Generator="StrideShaderKeyGenerator",确保生成的 .sdsl.cs 被编译。推荐递归通配模式: <None Include="....\shaders**.sdsl" Link="Assets%(RecursiveDir)%(Filename)%(Extension)" Generator="StrideShaderKeyGenerator" /> <Compile Include="....\shaders***.sdsl.cs" Link="Assets\Generated%(RecursiveDir)%(Filename)%(Extension)" Visible="false" AutoGen="True" DesignTime="True" /> CLI/Agent 工作流需具备资产编译器目标(如 PackageReference Stride.Core.Assets.CompilerApp,PrivateAssets all,IncludeAssets build;buildTransitive)。按顺序执行:添加着色器、确认 .sdpkg 与 .csproj链接、刷新生成 key,再强制重建资产: dotnet msbuild src/MyStrideApp/MyStrideApp.csproj "/t:_StridePrepareAssetCompiler;StrideAssetUpdateGeneratedFiles" /p:Configuration=Debug dotnet msbuild src/MyStrideApp/MyStrideApp.csproj /t:StrideCleanAsset /p:Configuration=Debug dotnet msbuild src/MyStrideApp/MyStrideApp.csproj /t:StrideCompileAsset /p:Configuration=Debug 之后才 dotnet build / dotnet run。

适用场景:标准模板项目通常无需显式 .csproj 链接;显式链接主要适用于共享外部着色器文件夹、runner/测试项目或非模板布局。

限制:在未执行显式资产重建前,不要添加底层 D3D/SharpDX 调度绕过;参数绑定优先用生成的 Key 类而非字符串键;SDSL 默认值应写显式 float 字面量(如 100.0f),否则生成的 *.sdsl.cs 可能编译失败。