patchPlacement

function patchPlacement
terrainMesh.ts:627
patchPlacement(patch: RenderPatch, bodyPosition: Vec3, bodyOrientation: Quat, scale: number) → PatchPlacement

Put a body-fixed patch back into render space, on the body it belongs to.

Called once per patch per frame, and that frequency is the point: the body's pose changes every tick, so anything that bakes it into vertex data is stale before it is drawn. This is the same two lines the datum sphere gets from placeAt, which is why the sphere tracked the planet correctly while the terrain in front of it did not.

bodyPosition and scale come from that same placeAt, and the patch has to wear both. Beyond NEAR_LIMIT — two thousand kilometers, which the surface tier reaches out to more than eight radii — a body is drawn at a compressed distance and a matching scale, so its angular size survives and its depth does not. Terrain placed at true meters against a sphere placed at compressed ones is not slightly wrong, it is somewhere else. The old opacity fade hid this by drawing no terrain above about an octave of altitude; with the fade retired the patches reach the compressed range on every approach.

patchRenderPatch
Undocumented
bodyPositionVec3
Undocumented
bodyOrientationQuat
Undocumented
scalenumber
Undocumented