✦ SPIELWELTENMoto Racer - Rampage ↗

Confirmed summer fir UV repair

The existing source import failed to expose the publisher's UVMap corner attribute as an active Blender UV layer. This affected both the summer CPU atlas renders and the delivered near-tree FBXs. The repair copies the original attribute's X/Y values into a real UV layer before rendering, reduction and export. It changes neither source images nor runtime material colors.

Actual evidence

Tools/Art/diagnose_summer_fir_uv.py reproduced the existing A/0-degree summer frame with the old pipeline. Its decoded RGBA pixels are identical to the previously published source frame, although PNG metadata makes their file hashes differ. The second CPU frame uses the same geometry, materials, original textures, orthographic camera, lighting and 12 samples; only explicit UV restoration differs.

Measurement Old interpretation Original X/Y restored
Pixels passing the 0.24 alpha cutoff 129,604 116,522
Mean RGB of those visible pixels, 8-bit 43.01 / 42.76 / 30.09 47.88 / 56.89 / 35.29

84,919 alpha pixels change; 13,094 pixels change cutoff classification. Personal inspection confirms greener photographed needles and finer transparent gaps. There is no tint, grading or image repaint in the comparison. Camera radius is 45 m, target height 9.478523 m and orthographic size 19.715328 m, exactly matching the old A view.

Separately, CPU reimports of the actual delivered Fir_LOD0.fbx and Fir_LOD1.fbx found zero UV layers on all six mesh parts. The corrected files have one nontrivial UVMap layer per part. The original exported geometry is preserved: all six canonical triangle-position hashes match the old delivered files at 0.00001 m precision, with the same bounds and triangle counts. LOD0 remains 18,605 triangles and LOD1 13,562.

The first corrected export exposed an unrelated discrepancy: the source script contained a small-wood filter that the delivered FBXs had not used. That draft reduced each bark part from 9,534 to 1,478 triangles and was rejected by the geometry check. The repair disables this filter explicitly, reexports, and passes the unchanged-geometry check. The filtered draft was not published. Any future branch reduction requires its own visual evaluation.

Published result

Both packed atlases were inspected before publication and match their reviewed-export hashes. Existing texture/FBX metadata and GUIDs remain in place. Single-tree bakes retain Cycles CPU, four threads and 12 samples; group bakes retain 16 samples, the original seeded 15-tree arrangements and original cameras. A 60-second per-view limit bounds rendering. No Unity/player or GPU render was started by this work.

Production changes are confined to Tools/Art/prepare_fir.py, prepare_fir_forest.py, source/export artifacts and the four published files. --mesh-only refreshes the editable model/export without repeating atlas renders. Runtime card layouts, material tints, forest placement, colliders and physics were not changed by this repair. The winter atlas integration remains a separate change.

Reproducible records and acceptance boundary

ArtSource/Alps/SummerFirUVDiagnostic retains the old scripts/assets under Before, the paired renders, paired-bake.json, pixel-comparison.json, the original FBX UV audit, repaired-fbx-verification.json and published-repair.json. The diagnostic script uses its archived old script so the before frame remains reproducible after production repair. Current source provenance and delivery hashes are also recorded in ALPINE-FIR-ASSETS.json.

This is a verified source/UV repair, not a native graphics acceptance. Its next Windows build still needs visual checks of near needle alpha, winter branch-snow coverage, LOD transitions and distant forest grouping. Repeated group silhouettes and placement remain separate from the proven missing-UV fault. No AAA claim follows from these source images.