public interface IMaterialFeatureOne choice in a material's feature tree — a base workflow, a normal map, a clear coat.
Remarks
Stride's composable model, resolved through Raven's compose rather than through a mixin system: a feature names the shader that implements it, and MaterialCompiler turns a list of them into the bindings that select those shaders and the parameters that feed them. Adding a feature is a shader in Raven/Library/Material and an implementation of this — no registration table, and nothing in the pass changes.
An interface with a [DataContract] name per implementation, which is how the rest of the engine does polymorphism in a file: the contract name is the YAML tag, so !MetalRoughness selects the type.
A feature is values, not resources. Every parameter here is written into the material's constant buffer; a feature that samples a texture needs a descriptor, and which binding index it lands on is the compiled shader's decision — the same authoring gap the compositor's nodes have. Until it closes, a textured material sets the values and a host builds the descriptor set.
Fields and properties (1)
string ShaderNameThe Raven shader implementing this feature, from Raven/Library/Material.
Methods (1)
void Compile(MaterialCompilationContext context)Writes this feature's parameters, and fills any slots of its own.
Used by (27)
- AnisotropyFeatureVixen.Rendering
- BlendFeatureVixen.Rendering
- ClearCoatFeatureVixen.Rendering
- ClearCoatNormalMapFeatureVixen.Rendering
- EmissiveFeatureVixen.Rendering
- MaterialCompilationContextVixen.Rendering
- MaterialCompilerVixen.Rendering
- MaterialCompilerTestsVixen.Rendering.Tests
- MaterialContentVixen.Rendering
- MaterialDescriptorVixen.Rendering
- MaterialLayersFeatureVixen.Rendering
- MaterialSurfaceVixen.Rendering
- MaterialSurfaceTestsVixen.Rendering.Tests
- MetalRoughnessFeatureVixen.Rendering
- NormalMapFeatureVixen.Rendering
- OcclusionFeatureVixen.Rendering
- SheenFeatureVixen.Rendering
- SpecularGlossinessFeatureVixen.Rendering
- SubsurfaceFeatureVixen.Rendering
- TexturedMaterialTestsVixen.Rendering.Tests
- TexturedMetalRoughnessFeatureVixen.Rendering
- Vixen_Rendering_Materials_BlendFeatureSerializerVixen.Rendering
- Vixen_Rendering_Materials_MaterialContentSerializerVixen.Rendering
- Vixen_Rendering_Materials_MaterialDescriptorSerializerVixen.Rendering
- MaterialAssetVixen.Editor.AssetEditors
- TypeRegistrationVixen.Editor.AssetEditors
- Vixen_Editor_AssetEditors_Materials_MaterialAssetSerializerVixen.Editor.AssetEditors