Vixen
dd8b0a81
csharp
public enum MaterialFeatureStage

When a feature has to run, relative to the features that read what it writes.

Read the guide page for this →

Remarks

The chain has exactly one ordering rule and this is it. Every feature in the library but one reads d.uv and writes a channel, so the order those run in is the author's business and nothing here has an opinion — CompositeSurface calls its eight slots in the order MaterialCompiler filled them, which is the order the material's Features list happens to be in.

⚠ A feature that writes the coordinate inverts that, and the failure is a plausible frame. Parallax occlusion reads d.uv and writes it back displaced; placed third, it displaces the coordinate the two features before it already sampled at, so half the material is parallaxed and half is not — no device reports anything, and the surface merely looks wrong in a way that gets blamed on the map. See #1065, which is the feature this was written ahead of.

Written before the first feature that needs it, deliberately. A rule added after the feature is a rule the feature was already shipped without.

Fields and properties (2)

  • Coordinate

    Rewrites the coordinate the rest of the chain samples at, so it runs before them.

  • Surface

    Contributes to the surface at the coordinate it was handed. Every feature today.

Used by (8)

  • DisplaceFeatureVixen.Rendering.Tests
  • IMaterialFeatureVixen.Rendering
  • MaterialBaseSurfaceTestsVixen.Rendering.Tests
  • MaterialCompilerVixen.Rendering
  • MaterialFeatureOrderTestsVixen.Rendering.Tests
  • ParallaxOcclusionFeatureVixen.Rendering
  • TileFeatureVixen.Rendering.Tests
  • TypeRegistrationVixen.Rendering