面向开发者的材质
高级 程序员
此示意图展示了 Material 接口及其实现类:

- 接口 @'Stride.Rendering.Materials.IMaterialDescriptor' 是材质描述的根接口。
- @'Stride.Rendering.Materials.IMaterialShaderGenerator' 是用于生成材质着色器的主要接口。
- 每个属性和层都实现此接口,以修改最终的材质着色器。
- @'Stride.Rendering.Materials.MaterialDescriptor' 是材质在编辑器时的描述,即其被编译为材质着色器之前的状态。
- @'Stride.Rendering.Material' 类是由 @'Stride.Rendering.Materials.MaterialDescriptor' 生成的运行时材质着色器。
在运行时修改参数
文件 @'Stride.Rendering.Materials.MaterialKeys' 包含了你可能需要使用的大多数材质键(key)。可以浏览该文件,弄清楚需要获取哪个键来修改你关心的参数。
假设你有这样一个相当简单的材质:

你想要克隆该材质,但在运行时将其颜色改为红色。
通过搜索 @'Stride.Rendering.Materials.MaterialKeys' 中包含的不同键,你可以找到 MaterialKeys.DiffuseValue,并用它作为键来设置你想要的新颜色值:
var clone = SerializerExtensions.Clone(MyMaterial);
clone.Passes[0].Parameters.Set(MaterialKeys.DiffuseValue, new Color4(1, 0, 0));
如果你不太确定你的材质使用了哪些参数键,最好的方法是用调试器检查材质的变量。 以下是通过 Rider 的 Threads & Variables 窗口进行检查的示例:
