效果与着色器
Stride 使用可编程着色管线。你可以编写自定义着色器,用它们创建 @'Stride.Graphics.Effect',并用于绘制。@'Stride.Rendering.EffectSystem' 类提供了一种加载效果的简便方式。
加载效果
使用:
var myEffect = EffectSystem.LoadEffect("MyEffect").WaitForResult();
然后,你可以将该效果绑定为管线状态。
效果通常还会定义一组参数。要设置这些参数,你需要在绘制前绑定资源。
着色器
着色器使用 Stride 着色语言编写,它是 HLSL 的扩展。它们通过继承、着色器混入(Mixin)以及着色器输入输出属性的自动编织,实现模块化着色器的真正组合。
效果
Stride 中的效果使用类 C# 语法进一步组合着色器。它们提供着色器的条件组合,以生成效果变体(permutation)。
由于某些平台无法在运行时编译着色器(例如 iOS、Android 等),因此使用效果变体文件(.sdeffectlog)提前枚举所有变体。
面向所有平台
Stride 着色器会自动转换到目标图形平台——Direct3D 使用纯 HLSL,Vulkan 平台使用 SPIR-V。
对于移动平台,着色器会经过 GLSL 优化器优化以提升性能。