public static class GeometryRunner`vixen remesh`, `vixen unwrap` and `vixen uv pack` — a mesh file in, a mesh file out.
Remarks
docs/plan/41 § D16's CLI row and docs/plan/42 § D13's, which exist to be batchable over a directory. Neither reads a project: a file on disk is the unit, because the case both documents were written for is a pile of generated GLBs that are not assets yet and a build script that has to turn them into ones.
⚠ The input goes through Assimp — ModelReader — and the output through ModelWriter, which is why this reaches into Vixen.Editor.Assets. Tools/ is the top of the layering and already links two editor assemblies; writing a second glTF reader here so that the CLI could pretend not to would be the wrong kind of independence.
⚠ There is no --bake, and docs/plan/41 § D16's example line has one. The normal and displacement bake is R5's and nothing in the pipeline performs it yet — TransferAttributes is declared and unread. A flag that parsed and then wrote no maps is exactly the verb VixenCommand's own remarks refuse: "a verb that parses and then apologises is worse than one that is not there, because a build script can only discover the second kind." It arrives with the bake.
Methods (3)
public static ExitCode Remesh(string input, string output, RemeshSettings settings, IReadOnlyList<(string Path, float Strength)> guides, TextWriter progress, TextWriter error)Retopologises every mesh in a file.
public static ExitCode Unwrap(string input, string output, UvSettings settings, PackSettings packing, TextWriter progress, TextWriter error)Unwraps every mesh in a file: charts, flattening and packing.
public static ExitCode Pack(string input, string output, PackSettings packing, TextWriter progress, TextWriter error)Repacks the coordinates a file already carries, without touching a seam.
Used by (1)
- VixenCommandVixen.Cli