Vixen
c7401864

WaterFieldDescription

struct Core/Vixen.Water/WaterField.cs:59
csharp
public readonly record struct WaterFieldDescription

The shape of a field: a square window on the ground plane, at a resolution.

Read the guide page for this →

Remarks

Always a sliding window ([§ D3](../../docs/plan/35-water.md#d3-the-water-info-texture-is-the-interchange-and-it-is-a-zone-render)). Unreal made local tessellation a mode in 5.3 because the fixed-extent version does not survive an open world, and there is no reason to build the version that does not survive first.

⚠ The origin is snapped, and the snap is to a texel of the coarsest thing that reads the field. Snapping to the window's own grid is not enough once a ripple simulation samples it at a different resolution: the two grids beat against each other and produce a crawl along the shoreline that appears only while the camera moves. That is the same class of bug as the terrain quadtree's morph, and it gets the same treatment — a test on the arithmetic, before there is a renderer to see it in. See Snap.

Fields and properties (6)

  • public Vector2 Origin

    The window's low corner, on the ground plane.

  • public float Extent

    How wide and deep the window is, in metres.

  • public int Resolution

    How many texels along each axis.

  • public static WaterFieldDescription Default

    A 256-metre window at one metre per texel.

  • public float MetresPerTexel

    How many metres apart two neighbouring texels are.

  • public long Bytes

    How many bytes the four channels and the coverage occupy.

Methods (2)

  • public string? Validate()

    Why this shape cannot be rasterised, or if it can.

  • public WaterFieldDescription Snap(Vector2 centre, float coarsestTexel = 0)

    The window this one becomes when the view moves, snapped so it does not shimmer.

Used by (19)

  • BuoyancyTestsVixen.Water.Tests
  • LakeVixen.Water.Physics.Tests
  • WaterDebugDrawVixen.Rendering.Water
  • WaterDebugDrawTestsVixen.Rendering.Water.Tests
  • WaterEvaluatorTestsVixen.Water.Tests
  • WaterFieldVixen.Water
  • WaterFieldPyramidVixen.Water
  • WaterFieldTestsVixen.Water.Tests
  • WaterInfoTextureVixen.Rendering.Water
  • WaterMeshRendererVixen.Rendering.Water
  • WaterSurfaceMeshVixen.Water
  • WaterSurfaceMeshTestsVixen.Water.Tests
  • WaterSurfacePassVixen.Rendering.Water
  • WaterSurfacePassTestsVixen.Rendering.Water.Tests
  • WaterZoneVixen.Water
  • WaterZoneStateVixen.Water
  • WaterZoneSystemVixen.Rendering.Water
  • WaterZoneTestsVixen.Water.Tests
  • WaterPresenterVixen.Editor.App