MeshTangents extension

Tangent generation, split out of MeshData because it is a self-contained algorithm that only ever touches MeshData's public surface — an extension keeps it that way rather than granting it access to private state it does not need.

on

Methods

generateTangents({VertexLayout? target, TangentMethod method = TangentMethod.mikkTSpace, bool splitSeams = true}) → GeneratedTangents

Available on MeshData, provided by the MeshTangents extension

withGeneratedTangents, and for each vertex it appended, the vertex it copied: copiedFrom[i] is the source of vertex vertexCount + i of the input. Empty when nothing was split, which is every mesh without a mirrored seam and every run of TangentMethod.lengyel.
withGeneratedTangents({VertexLayout? target, TangentMethod method = TangentMethod.mikkTSpace, bool splitSeams = true}) → MeshData

Available on MeshData, provided by the MeshTangents extension

A copy with per-vertex tangents derived from the UV parametrization.