Pilot für eine generierte Figur: der Kohlenbeißer g01 kommt als Meshy-Ergebnis in den Port und ersetzt dort das Phase-4-Modell. Eine Figur genügt, um Pipeline, Bild und Leistung zu bewerten; Anatomie, Gesichter und Haare bleiben Künstler-Sculpts oder lizenzierte Packs (Vorgabe vom 1. Oktober). - Meshy-Pipeline unter tools/meshy/: API-Client (meshy.py, Ledger, Schlüssel nie geloggt) und Blender-Generator (build_figure.py) aus den unveränderten Downloads in assets-source/meshy/g01/. Export über den Manifest-Eintrag kohlenbeisser mit "replaces": "g01"; LuneUnitLibraryBuilder hängt die Figur zusätzlich unter der Godot-ID ein. - UV-Material AI_Kohlenbeisser (Familie authored): die Karten der Figur selbst, Lava-Glut aus der Albedo-Alpha (Meshy 7.1 ohne Emission-Map) mit _Glow 1,25. - Schatten ohne Normalen-Versatz (LuneShadowBias, _ShadowNormalScale 0): die UV-Naht-Kopien tragen geknickte Normalen; URP ApplyShadowBias zog helle Nähte durch den Schatten. Die Figur wirft nur mit Tiefen-Bias. - GPU-Batched-Skinning (PlayerSettings.meshDeformation, LuneProjectSetup): 35 Meshy-Kohlenbeißer kosteten mit CPU-Skinning rund 1 ms Haupt- und 1,7 ms Render-Thread je Bild. - LuneBenchmark: -luneBenchmarkRound und -luneBenchmarkArmy (Figuren-Stress). LuneAssetPreview: LUNE_ONLY für Vorher/Nachher, Trefferframe aus der Kontaktzeit des Manifests. FigureViewsTests (Explicit) für die vier Spielmomente der Figur. - Tests: EditMode 29/29, PlayMode 14/14 (6 Explicit), Verify 718/0, Player-Selbsttest 30/30, Kerntests 457/457, Fingerabdrücke unverändert (DCE95C96556F3A1A, 7B8E43AEFC0D60C5). - Leistung (A/B im selben Fenster, 35x g01): Meshy -21 % Mid (109,7 zu 138,8) und -13 % Karte (91,7 zu 105,6) gegenüber Phase-4. GPU-Skinning hebt Mid um 7-27 % und entlastet Haupt- und Render-Thread. Standard-Partie ab Runde 21 ohne g01 im Bild: drei Varianten bis 6 %. - Doku: U5-VISUAL (U5.5), PORT-QA, PORT-STATUS, KNOWN-BEHAVIOR-DIFFERENCES; Bilder screenshots/u5.5/ und u5.5-gpu/, Rohdaten logs/u5.5/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
15 lines
1.6 KiB
JSON
15 lines
1.6 KiB
JSON
{
|
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
|
"device": "Mac17,2; Apple M5; Apple M5",
|
|
"graphics_api": "Metal",
|
|
"resolution": "1920x1080",
|
|
"vsync": 0,
|
|
"match": "seed 9 from round 5, army g01 x36, speed 1x, measured after 10 s of combat",
|
|
// moving units at the start of the first window: g01 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
|
"windows": [
|
|
{"view": "overview (zoom 64)", "frames": 2270, "fps": 113.5, "frame_ms_avg": 8.81, "frame_ms_median": 7.82, "frame_ms_p95": 16.16, "frame_ms_p99": 21.89, "frame_ms_max": 27.07, "frames_over_16_7_ms": 95, "of_them_with_simulation_step": 15, "gc_collections": 22, "simulation_ms_per_frame": 0.124, "views_ms_per_frame": 0.407, "ui_ms_per_frame": 0.131, "units_alive_max": 97},
|
|
// timings overview (zoom 64): main thread avg 4.42 / median 4.32 / p95 6.21 ms, render thread avg 5.55 / median 5.45 / p95 6.90 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.39 / median 3.22 / p95 12.06 ms
|
|
{"view": "mid lane close (zoom 22)", "frames": 1363, "fps": 136.3, "frame_ms_avg": 7.34, "frame_ms_median": 7.01, "frame_ms_p95": 10.48, "frame_ms_p99": 15.60, "frame_ms_max": 17.36, "frames_over_16_7_ms": 2, "of_them_with_simulation_step": 2, "gc_collections": 9, "simulation_ms_per_frame": 0.073, "views_ms_per_frame": 0.400, "ui_ms_per_frame": 0.120, "units_alive_max": 44}
|
|
// timings mid lane close (zoom 22): main thread avg 3.98 / median 3.92 / p95 5.60 ms, render thread avg 5.36 / median 5.28 / p95 6.59 ms, gpu avg 0.02 / median 0.00 / p95 0.00 ms, present wait avg 3.36 / median 3.09 / p95 6.35 ms
|
|
]
|
|
}
|