Table of Contents

效果与着色器

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 优化器优化以提升性能。

本节内容