public enum MaterialMapTargetOne file a bake writes, which is not the same list as MaterialMapUsage.
Remarks
⚠ Two of these bind to no material feature, and saying so is the point of the type. Mask is not a material map at all: § 4.10's mask sources read it, and a material never does. Parameter returns null for both, and a bake writes them without inventing a feature to hang them on.
⚠ Height is the one worth a sentence, because the reason changed and the conclusion did not. #615 is closed, and it resolved to height-blended layering — so a textured runtime feature that reads a height map now exists, TexturedMaterialLayersFeature.HeightMap under its HeightBlended permutation. It is not this map. That one is a four-channel per-layer bundle whose channel i is layer i's height; a bake writes one material's single channel. Two different textures with one English name, which is exactly #615's finding one level along — and wiring a bake's output into that slot is the mistake this paragraph exists to prevent.
⚠ #1065 has since landed and Parameter still returns null here, which is a decision rather than an oversight. ParallaxOcclusionFeature reads exactly this map, but a name returned unconditionally means one of two wrong things: a texture entry no feature samples, or — if the bake composed the feature to go with it — a per-pixel march on every material any graph ever emitted a height output from. So the name is Material's to supply, and only for a material whose author put the feature there. See #1103. ⚠ #1067 is not a third reading still waiting for one: it was closed on 2026-09-08 by deciding it — true displacement moves vertices on a pre-subdivided mesh and is therefore not a material feature at all.
⚠ Splat is a file this vocabulary writes and not one any MaterialMapUsage feeds, which is #1118's answer kept rather than reversed. TexturedMaterialLayersFeature's splat map is a multi-channel weight map whose channel i is layer i — an index into one material's own layer list. Every other target is a measurement of a surface, which is why a graph can produce one: albedo, roughness and occlusion mean the same thing whatever material samples them. A layer index does not. A graph has no layer list, an Output node names a usage rather than an ordinal, and a texture set's channels are keyed by that usage — so "which layer is this the weight of" is a question the whole authoring vocabulary is shaped not to be able to ask.
So Packed returns nothing for it, which is that decision written as code rather than as a paragraph. Encode keeps a target only when one of the usages it packs was produced, so a graph bake can never write a splat map however many Output nodes it has — and adding a MaterialMapUsage that fed one would still have to name a layer ordinal, which is the thing the vocabulary cannot say.
⚠ What fills it is the layer stack, where the layer list actually exists — #1124's Bake Splat Map verb, which resolves each chosen layer's painted coverage and packs them in layer order. That is a second write path deliberately, and it is a member of this enum rather than a vocabulary of its own so that it inherits the file naming, the digest, the painted-over guard and the provenance block ProjectMaterialBaker already has — which is exactly what a second write path forgets.
Fields and properties (8)
BaseColorThe albedo map.
NormalThe tangent-space normal map.
OrmOcclusion, roughness and metalness in R, G and B.
HeightThe height map. Written always, and sampled only where the author asked.
EmissiveThe emissive map.
OpacityThe opacity mask.
MaskA mask for another graph. Written, and bound to nothing.
SplatA layered material's per-layer weights, one layer per channel in layer order.
Used by (13)
- BakedMaterialImageTestsVixen.Graphics.Golden.Tests
- BakedMaterialFileTestsVixen.Editor.AssetEditors.Tests
- MaterialBakeVixen.Editor.Assets
- MaterialBakeAssetTestsVixen.Editor.Assets.Tests
- MaterialBakeParallaxVixen.Editor.Assets
- MaterialBakeSetVixen.Editor.Assets
- MaterialBakeTestsVixen.Editor.Assets.Tests
- MaterialMapImageVixen.Editor.Assets
- MaterialMapNamingVixen.Editor.Assets
- MaterialProvenanceVixen.Editor.Assets
- MaterialSplatTestsVixen.Editor.Assets.Tests
- ProjectMaterialBakerVixen.Editor.Assets
- TextureCommandTestsVixen.Cli.Tests