Skip to content

LODSelector

AnvilWorld and streamingApplies toRR

LODSelector describes five graphic-object levels, directly referenced or supplied by leading dependency meshes. All 48,862 selectors in the six-archive enumeration consume exactly with the counted BoneIDs array and footer: body size is 266 + 4 × sum(BoneIDs counts) + 13 × dependency count. Proven

LODSelector body (head)12 bytesRR92% known

Little-endian. All 48,862 LODSelectors across the six installed forges consume exactly with no refusals; serialized fields and counts are covered, not the runtime fade algorithm. Dependency-word size interpretation remains sampled.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x01u8 = 01ManagedObject byteUnknownStored bytes; meaning is not established.
0x11u8DescriptorMaskProvenregistry field of GraphicObject, an 8-bit mask. 0 (44,945), 16 (2,594), 128 (660), 1 (658) over 48,857 selectors; the same byte of a Mesh takes 0, 1, 2, 8, 16, 17, 18, 32, 64, 128. What each bit selects is not established.
0x21u8GeneratedProvenGraphicObject bool; 0 in all 48,857 selectors (and all 85,577 Meshes)
0x31u8VertexStrideProvenGraphicObject bit field; 0 in all 48,857 selectors (and all 85,577 Meshes)
0x44f32MaxCullingDistanceProvenGraphicObject f32; 0.0 in all 48,857 selectors (in Meshes: 660.0 on 2,729, 820.0 on 94, 2,580.0 on 35, 100.0 on 14 of 85,577)
0x84u32 = 0EstimatedMemoryUsageProvenGraphicObject.EstimatedMemoryUsage (u32, flags 0x02000000), the base class's last stored field after MaxCullingDistance; 0 in all 48,857 selectors
Level (48 + 4n bytes, ×5)48 + 4n bytesRR100% known

Little-endian. All 48,862 LODSelectors across the six installed forges consume exactly with no refusals; serialized fields and counts are covered, not the runtime fade algorithm. Dependency-word size interpretation remains sampled.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x08u64LODDescriptor object idProventhe u64 id every embedded object starts with (kind 0x16: u64 id, u32 class id, body).
0x84u32 = 0xA360319AmarkerProventhe CRC-32 of LODDescriptor
0xC10refMeshProventhe level's Mesh, or none
0x164f32SwitchDistanceProvenLODDescriptor.SwitchDistance (registry): > 0 on 244,283 of 244,285 levels, up to 30,004 (USNAT)
0x1A4f32TransitionZoneSizeProvenLODDescriptor.TransitionZoneSize: 0.0 on all 244,285 levels
0x1E4f32FadeTimeMultiplierProvenLODDescriptor.FadeTimeMultiplier: 1.0 on 103,967 of the 104,035 USNAT levels (0.0 on 62, 0.5 on 3, 3.0 on 1; 2 others)
0x224u32FakeTypeProvenLODDescriptor.FakeType (enum LODDescriptor::FakeType), a u32: 0 on 238,372 of 244,285 levels, 1 on 5,913 (levels 1 to 3 only)
0x261u8OptionalProven
0x274u32ShaderLODProvenLODDescriptor.ShaderLOD (enum ShaderLODLevel, u32): 0, 1 or 2; level 0: 0 on 32,069 and 1 on 16,788 of 48,857; level 3: 0 on 21,528, 2 on 16,769, 1 on 10,560 Enumerators: 0 ShaderLOD_High, 1 ShaderLOD_Low, 2 ShaderLOD_UltraLow.
0x2B4u32BoneIDs count nProvenLODDescriptor.BoneIDs is an array of u32; its count: 0 to 136, > 0 on 13,424 of 244,285 levels (every one of the 48,857 selectors reads to its end with it)
0x2F4·nu32·nBoneIDsProven
47+4n1u83B574E9DUnknownUnnamed bool, one on 11,536 of 244,285 measured descriptor slots.
LODSelector footer (after the 5th level)varRR100% known

Little-endian. All 48,862 LODSelectors across the six installed forges consume exactly with no refusals; serialized fields and counts are covered, not the runtime fade algorithm. Dependency-word size interpretation remains sampled.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x04u32count dProven1 or 2 in the traced samples
0x49dbytesdependenciesProven
4+9d4u32count d againProvenmust equal d
8+9d4du32·ddependency wordsObservedone u32 per dependency.
8+13d6bytesLODSelector boolsProventhe six bool fields of the class LODSelector in the registry's order: TransitionToEmptyLOD, UseNearNullObjects, ForceNoBlend, ForceNoComputeBlendFactor, UseBlendFactorWithDefaultTransition, 0xB0CD17D3 (name not found).
Dependency (9 bytes, ×d)9 bytesRR100% known

Little-endian. All 48,862 LODSelectors across the six installed forges consume exactly with no refusals; serialized fields and counts are covered, not the runtime fade algorithm. Dependency-word size interpretation remains sampled.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x01u8 = 0tagProven
0x18u64ClassIDProven

Every selector’s dependency count equals its leading-empty-slot count. All 39,250 stored dependency occurrences resolve to Mesh resources. The patch-over-base deduplicated population instead contains 24,430 selectors and 19,623 dependencies; these are different counting units. Proven · slot relationship

Across 244,310 slots, direct references include 123,716 Mesh and 238 Impostor references; four use mode four. A level is not restricted to Mesh. Every direct reference in all 244,310 stored slots is included in this classification. Proven

SwitchDistance, TransitionZoneSize, FadeTimeMultiplier, FakeType, Optional, ShaderLOD and BoneIDs are registry names checked against stored descriptors. Common switch-distance sets include (25, 60, 120, 640, 641) and (4, 8, 20, 40, 160) metres. Interpreting each distance as the end of its slot’s display interval fits the ordering, but is not a complete renderer rule. Observed Inferred

Dependency words match compiled geometry size on 12,088 of 12,681 checked ranged dependencies. The mismatches prevent treating them as authoritative buffer lengths. Observed

How are distance fields converted into instance fade bands?

The exact conversion to per-instance shader data and bool hash 0x3B574E9D remain unresolved. Unknown

See also geometry LOD forms for the meshes and impostors reached by these descriptors.