champions-of-luneraria/docs/port/logs/u5.5/ab55c-army-rigid-gpu-run3.json
Martin Stickelbroeck c386206876 U5.5-pilot Figuren: Meshy-Kohlenbeißer, Lava-Glut, GPU-Skinning
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>
2026-10-09 14:14:59 +02:00

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": 2602, "fps": 130.1, "frame_ms_avg": 7.69, "frame_ms_median": 3.71, "frame_ms_p95": 25.05, "frame_ms_p99": 35.71, "frame_ms_max": 57.25, "frames_over_16_7_ms": 367, "of_them_with_simulation_step": 31, "gc_collections": 21, "simulation_ms_per_frame": 0.091, "views_ms_per_frame": 0.237, "ui_ms_per_frame": 0.081, "units_alive_max": 97},
// timings overview (zoom 64): main thread avg 2.76 / median 2.40 / p95 4.88 ms, render thread avg 2.12 / median 1.97 / p95 3.68 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.93 / median 0.49 / p95 22.31 ms
{"view": "mid lane close (zoom 22)", "frames": 1671, "fps": 167.0, "frame_ms_avg": 5.99, "frame_ms_median": 3.48, "frame_ms_p95": 21.70, "frame_ms_p99": 34.37, "frame_ms_max": 50.94, "frames_over_16_7_ms": 161, "of_them_with_simulation_step": 10, "gc_collections": 10, "simulation_ms_per_frame": 0.056, "views_ms_per_frame": 0.229, "ui_ms_per_frame": 0.067, "units_alive_max": 44}
// timings mid lane close (zoom 22): main thread avg 2.29 / median 1.97 / p95 4.10 ms, render thread avg 1.65 / median 1.45 / p95 2.98 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 3.69 / median 0.26 / p95 19.00 ms
]
}