Vixen
caa30e12
csharp
public record class TerrainNodeAsset

The terrain node a frame document names: the ground and its vegetation, as one pass.

Read the guide page for this →

Remarks

One node for the whole stack, deliberately. The surface, the grass scatter and the grass draw are one decision about where in the frame the ground goes — after the opaque pass, sharing its depth — and a document that could place the scatter without the draw would be offering an order nothing can want. What it draws is the world's TerrainComponent entities, not a terrain named here: which ground exists is the scene's, and the document only says where in the frame it lands.

The defaults are !StandardFrame's names, so the whole installation in a standard frame is three lines of extensions: — afterOpaque: [!Terrain {}] — and a hand-authored document names its own targets instead.

⚠ The nullable scalars are the quality waterfall's seam. Null means "whatever the factory was configured with", which is where a host folds its resolved quality tier; a written value is this document deciding, which out-votes the tier the way a !StandardFrame's own knobs do. See Vegetation.

Fields and properties (19)

  • public string Name

    The node's name, for debug groups and for a human reading the file.

  • public bool Enabled

    Whether the node runs.

  • public string Output

    The colour target the ground draws into — an existing one, loaded rather than cleared.

  • public string Depth

    The depth target it tests and writes — the scene's own, so occlusion works both ways.

  • public string View

    The view whose camera places, culls and streams the ground.

  • public string Albedo

    The frame's split albedo plane. Its presence is what turns the split path on.

  • public string Normals

    And its normal plane, on the same terms.

  • public string ShadowAtlas

    The cascade atlas the frame renders, which the lit ground samples.

  • public string ScenePass

    Which pass's names the frame's lighting is published under.

  • public bool Grass

    Whether grass fields scatter and draw at all.

  • public float? GrassDensityScale

    What fraction of each grass field to keep, 0…1, or null for the factory's tier.

  • public float? GrassCullDistanceScale

    A multiplier over every grass type's authored cull distances, or null for the tier.

  • public int? GrassResidentCells

    How many grass cells stay resident per field, or null for the tier.

  • public int? GrassBladesPerCell

    How many blades one cell's run holds, or null for the tier.

  • public float? TerrainNearRange

    How far level 0 reaches for a terrain whose component left it at zero, or null for the tier.

  • public float? FoliageDensityScale

    What fraction of each foliage volume to draw, 0…1, or null for the factory's tier.

  • public float? FoliageCullDistanceScale

    A multiplier over every foliage type's authored cull distances, or null for the tier.

  • public int? FoliageCellBudget

    How many foliage cells one volume's streamer keeps uploaded, or null for the tier.

  • public int? TerrainStreamingMegabytes

    Megabytes of staged tile chains a terrain's streamer may hold, or null for the tier.

Used by (6)

  • TerrainCasterTestsVixen.Rendering.Terrain.Tests
  • TerrainFactoryVixen.Rendering.Terrain
  • TerrainNodeTestsVixen.Rendering.Terrain.Tests
  • TerrainVelocityTestsVixen.Rendering.Terrain.Tests
  • TypeRegistrationVixen.Rendering.Terrain
  • Vixen_Rendering_Terrain_TerrainNodeAssetSerializerVixen.Rendering.Terrain