Vixen
dd8b0a81
csharp
public sealed class BlockoutRemeshDebug

docs/plan/41 § D1's seven artefacts, on screen.

Read the guide page for this →

Remarks

§ D1's argument for making every stage an artefact is that a remesher is judged by a picture, and until this the artefacts were there and the picture was not (#413). RemeshDump was referenced by its own tests, by a RunawayGuard comment and by nothing under Editor/; the measurements in that document were obtained by parsing written .obj files, which is the workaround for not having this.

⚠ Captured on demand and never per frame. RemeshDump.Capture re-runs stages ① to ⑤ and costs what a remesh costs — seconds — which is exactly why it is legitimate: § D14 makes the pipeline deterministic, so re-running gives the artefacts the remesh had. A hook threaded through Remesher to capture them in flight would put a debugging concern in the middle of a pipeline every caller pays for.

⚠ The capture remembers which entity it is of. Every artefact is indexed against the conditioned mesh of one particular solid, so drawing it over a different selection would be a field, a patch partition and a singularity set laid over geometry they say nothing about — which reads as the remesher having produced nonsense.

⚠ Colour is chosen here rather than in Core/, which is what RemeshRegion asks for in as many words: "a patch index rather than a colour … the index is the artefact; colouring it is one modulus away". This is the modulus.

Fields and properties (17)

  • public const float SingularityArm

    How long a singularity's cross arms are, as a fraction of the model's diagonal.

  • public bool ShowConditioned

    Stage ① — the conditioned triangles, as a wireframe.

  • public bool ShowFeatures

    Stage ② — the feature chains.

  • public bool ShowField

    Stage ③ — the 4-RoSy field, as a cross per vertex.

  • public bool ShowSingularities

    Stage ③ — where the field's singularities landed.

  • public bool ShowPatches

    Stage ④ — the patch partition, as coloured regions.

  • public bool ShowQuantization

    Stage ⑤ — the quantized arcs, coloured by how far they moved.

  • public Entity Target

    What the capture is of, or Null when there is none.

  • public RemeshDump? Dump

    The artefacts, or when nothing has been captured.

  • public IReadOnlyList<string> Warnings

    What the stages complained about, in the order they complained.

  • public bool IsVisible

    Whether anything would be drawn: a capture, and at least one stage turned on.

  • public Color4 FeatureColour

    What a feature chain is drawn in.

  • public Color4 FieldColour

    What a field cross is drawn in.

  • public Color4 SingularityColour

    What a singularity is drawn in.

  • public Color4 WireColour

    What the conditioned wireframe is drawn in.

  • public Color4 StrainColour

    What an arc the quantizer had to move a long way is drawn in.

  • public Color4 SettledColour

    What an arc that got what the density field asked for is drawn in.

Methods (3)

  • public bool Capture(SceneDocument document, RemeshSettings settings)

    Captures the artefacts for the first selected solid.

  • public void Clear()

    Throws the capture away.

  • public void Draw(GizmoDraw draw, in Matrix4x4 placement)

    Draws whichever stages are turned on.

Used by (3)

  • BlockoutHoverTestsVixen.Editor.Blockout.Tests
  • BlockoutModeVixen.Editor.Blockout
  • Describes_Vixen_Editor_Blockout_BlockoutRemeshDebugVixen.Editor.Blockout