champions-of-luneraria/docs/port/logs/u5/player-benchmark-macos.json
Martin Stickelbroeck 2c1686b837 U5 Vertical Slice: PBR-Sätze, Surface-Shader, Mid-Lane, Kampf-VFX
Die Mid-Lane steht auf Zielqualität (stilisierter Realismus). Die übrige
Karte bleibt auf dem U2-Stand, bis über den Weg entschieden ist.

- U5A: tools/blender/bake_pbr.py backt sechs nahtlose PBR-Sätze
  (limestone, soil, bark, leaf, rock, water) mit Albedo, Normal aus dem
  Höhenfeld (Sobel) und ORM (R AO, G Rauigkeit, B Metall), je 2k.
  Torus-Mapping für Kantenfluss wie phase10/bake_bark.py.
- U5B: Luneraria/Surface trägt _AlbedoMap, _NormalMap, _OrmMap triplanar
  über den Godot-Weltfarben; ORM steuert Rauigkeit, Metall und AO.
  LuneMaterialFactory bindet je Oberfläche den passenden Satz, LN_Rock
  den Felsensatz.
- U5C: Mid-Lane-Licht — Nebel (ExponentialSquared, Dichte 0,0085),
  scharfe Schatten (Bias 0,02), Weißabgleich und Vignette, ACES und
  Bloom leicht angehoben.
- U5D: Hit- und Angriffs-Flash über MaterialPropertyBlock (warm beim
  Angriff, weißglühend beim Treffer), Turmblitze als dreipunktiger Funke
  mit Breitenkurve und Farbverlauf. CaptureMidLane schreibt fünf
  Nachweisbilder nach docs/port/screenshots/u5/.
- Leistung (macOS-Player, 116 Einheiten): 132 fps Übersicht, 182 fps Mid
  nah — 20–25 % unter U3 durch PBR, Normals und Nebel. Mid-Lane bleibt
  über 120 fps.
- Tests: EditMode 29/29, PlayMode 13/13, Kerntests 457/457. Keine
  Regeländerung; Golden 51.221 Werte unverändert.
- Grenze eingehalten: keine prozeduralen Gesichter, Haare oder Anatomie.
  Sculpts bleiben vorbehalten (Freigabe und Lizenzprüfung).
- Dokumentation: U5-VISUAL (Umsetzung, Nachweis, Entscheidungsvorlage
  für die ganze Karte), PORT-QA (U5), PORT-STATUS, KNOWN-BEHAVIOR-
  DIFFERENCES.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:10:10 +02:00

14 lines
1.5 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",
"windows": [
{"view": "overview (zoom 64)", "frames": 2651, "fps": 132.5, "frame_ms_avg": 7.55, "frame_ms_median": 5.11, "frame_ms_p95": 19.38, "frame_ms_p99": 23.09, "frame_ms_max": 30.11, "frames_over_16_7_ms": 185, "of_them_with_simulation_step": 18, "gc_collections": 27, "simulation_ms_per_frame": 0.116, "views_ms_per_frame": 0.257, "ui_ms_per_frame": 0.088, "units_alive_max": 116},
// timings overview (zoom 64): main thread avg 3.15 / median 3.05 / p95 4.31 ms, render thread avg 3.70 / median 3.69 / p95 4.20 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.39 / median 1.70 / p95 16.57 ms
{"view": "mid lane close (zoom 22)", "frames": 1823, "fps": 182.2, "frame_ms_avg": 5.49, "frame_ms_median": 4.22, "frame_ms_p95": 12.90, "frame_ms_p99": 17.07, "frame_ms_max": 24.96, "frames_over_16_7_ms": 34, "of_them_with_simulation_step": 1, "gc_collections": 10, "simulation_ms_per_frame": 0.056, "views_ms_per_frame": 0.365, "ui_ms_per_frame": 0.077, "units_alive_max": 63}
// timings mid lane close (zoom 22): main thread avg 2.70 / median 2.68 / p95 3.57 ms, render thread avg 3.10 / median 3.08 / p95 3.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 2.79 / median 1.38 / p95 10.26 ms
]
}