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.7 KiB
JSON
15 lines
1.7 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 21 (fixture high_wave_21), speed 1x, measured after 10 s of combat",
|
|
// moving units at the start of the first window: w04 14, e03 12, w06 11, g04 10, g02 9, g06 9, w02 7, e04 6, e05 6, e06 6, e01 4, e02 4, g08 4, g10 4, w08 4, w10 4, g05 2
|
|
"windows": [
|
|
{"view": "overview (zoom 64)", "frames": 2111, "fps": 105.5, "frame_ms_avg": 9.48, "frame_ms_median": 6.70, "frame_ms_p95": 21.69, "frame_ms_p99": 26.92, "frame_ms_max": 42.71, "frames_over_16_7_ms": 295, "of_them_with_simulation_step": 33, "gc_collections": 27, "simulation_ms_per_frame": 0.142, "views_ms_per_frame": 0.321, "ui_ms_per_frame": 0.109, "units_alive_max": 116},
|
|
// timings overview (zoom 64): main thread avg 3.93 / median 3.75 / p95 5.65 ms, render thread avg 4.70 / median 4.56 / p95 6.00 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.54 / median 2.52 / p95 17.60 ms
|
|
{"view": "mid lane close (zoom 22)", "frames": 1347, "fps": 134.5, "frame_ms_avg": 7.43, "frame_ms_median": 6.00, "frame_ms_p95": 15.87, "frame_ms_p99": 19.84, "frame_ms_max": 24.29, "frames_over_16_7_ms": 52, "of_them_with_simulation_step": 8, "gc_collections": 9, "simulation_ms_per_frame": 0.085, "views_ms_per_frame": 0.416, "ui_ms_per_frame": 0.106, "units_alive_max": 63}
|
|
// timings mid lane close (zoom 22): main thread avg 3.68 / median 3.48 / p95 5.32 ms, render thread avg 4.30 / median 4.20 / p95 5.48 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 3.75 / median 2.19 / p95 12.43 ms
|
|
]
|
|
}
|