Character surface floor — measured, not asserted

— We compared our sovereign character against a corpus of 50 freely-distributed reference packages to find out exactly how far our rendering capability sits from a shipped one. None of that content is used in, or shipped with, our engine — the packages are a ruler. This page reports what the ruler said, including the part that contradicted our own assumption.

The comparison

Left: a shipped 8192 by 8192 face diffuse texture at 1:1 pixels, showing pores, moles and colour variation. Right: our character's face at its true on-screen size of about 35 pixels, magnified 12 times, showing flat blocks with no surface detail.
Left: an authored 8192×8192 face diffuse map shown at 1:1 — one of sixteen maps a complete skin carries. Right: our face at its real on-screen size (~35 px), magnified 12×; the blocks are the frame's own pixels, and there is no texture underneath them to reveal. Reference excerpt: Skin 6 8k by Riddler, CC BY.

The floor, read from image headers rather than package names

PropertyMeasured floorWhere it came from
UV regions4 — Face, Torso, Limbs, Gensthe partition every measured skin uses
Maps per region4 — diffuse, specular, gloss, normalfilename suffixes D / S / G / N
Maps for a complete skin164 regions × 4 maps
Resolution floor4096 × 4096PNG header, two independent packages
Resolution premium8192 × 8192JPEG SOF marker — the “8k” claim verified, not trusted
Morph targets26 floor / 84 median / 310 higharchive entry counts across five looks

Our geometry is not the gap: 14,164 vertices, 28,092 triangles and 104 joints all sit inside the VR triangle budget. The entire distance is in the material path.

The finding that changed the plan

The obvious reading of that picture is “add texture sampling to the shader.” That would not have worked, and the instrument told us why only after we fixed the instrument.

Our asset-floor gate checked seven section tags against a file declaring eleven. Four sections were invisible to its own inventory — and the texture question lived in exactly that blind spot. Made self-describing, it reports the container's real contents:

VERT TRIS CLUS SKEL SKIN ANIM HSTR GVRT GTRI GPIN POSE

There is no TEXC section. Interleaved coordinates are ruled out by three independent element counts: VERT carries 3 components per vertex (position only), TRIS 3 per triangle, SKIN 8 per vertex (bone indices and weights).

Our mesh has no UV coordinates at all. With no UVs there is nowhere to sample a texture from, so sampling any map is not difficult today — it is impossible. The first rung is the asset format (UV unwrap, a TEXC section, and the bake that fills it), not the fragment shader. Our source comment reads “we shade procedurally from genome,” which sounds like an aesthetic choice; it is a constraint. A header that states a workaround as a preference hides the rung underneath it.

What exceeding the floor means

The reference ships fixed files: one face, painted once, by hand. The axis it cannot follow us onto is generation — if we synthesise diffuse, specular, gloss and normal per genome at load time, every character receives its own 4K–8K skin with no authoring pass and no shipped bytes. That is the same principle our faces already use, applied one layer out.

UNVERIFIED — what this page does not establish

Sources

Reference packages measured (freely distributed; excerpt shown under CC BY with credit):

Lineage — Forks off our own asset-floor work: the gate that produced our side of this comparison, and the metrology programme that insists a ruler names what it cannot see. Parent: the character asset floor measurement, 2026-08-03.