Fix the portrait staging: face the rig toward the camera (the old yaw was 180 degrees out) and hide the focus disc, which was covering the face in close-ups. Add the before/after Influencer portrait, fit measurements and judge scores in docs/screens/realism/2026-11-01-gear. Re-run check_screenshots (11 good/0 bad); headless 229/229.
3.6 KiB
Gear fit report: docs/screens/realism/2026-11-01-gear
Influencer (npc_coat) portrait, forced with --portrait-type=2, before the gear-fit
changes (da876e3, with the capture yaw/focus fixes backported) and after them (a478bfb).
Both frames use the same camera, sun and portrait staging. The focus disc is hidden because
it is a gameplay overlay, not part of the character still.
| measurement | before | after |
|---|---|---|
| sunglasses width | 0.282 m (0.90× head) | 0.202 m (0.64× head) |
| bag body inner face | 0.168 m (coat skirt 0.225, dress 0.260) | 0.262 m (clears both) |
| firefighter helmet brim | sat on the brow ridge | raised 2 cm |
Capture commands:
xvfb-run -a godot --path . --script res://src/test/capture_realism.gd -- \
--stages=portrait --portrait-type=2 \
--out=res://docs/screens/realism/2026-11-01-gear/candidate-v2
tools/check_screenshots.sh # 11 good / 0 bad
python3 tools/scene_concepts.py realism \
--run docs/screens/realism/2026-11-01-gear --judge
The judge improved the portrait from overall 2 / characters 1 (baseline) to overall 3 / characters 2 (candidate); the remaining fixes are the broader realism targets (skin/cloth shaders, GI, backdrop haze), not gear fit.
Vision judge: google/gemini-2.5-flash-lite (scores 0-10, higher is more realistic compared with the concept target).
| set | shot | target | gap ↓ | edges | detail | contrast | overall | lighting | materials | texture | backdrop |
|---|---|---|---|---|---|---|---|---|---|---|---|
| baseline | npc_portrait | npc_portrait_day | 1.093 | 24.42 | 9.88 | 43.77 | 2.0 | 3.0 | 2.0 | 1.0 | 4.0 |
| candidate | npc_portrait | npc_portrait_day | 1.094 | 24.43 | 9.89 | 43.74 | 3.0 | 4.0 | 3.0 | 2.0 | 5.0 |
Mean scores per set (all captured shots):
| set | shots | gap ↓ | overall | lighting | materials | texture_detail | backdrop | characters |
|---|---|---|---|---|---|---|---|---|
| baseline | 1 | 1.093 | 2.0 | 3.0 | 2.0 | 1.0 | 4.0 | 1.0 |
| candidate | 1 | 1.094 | 3.0 | 4.0 | 3.0 | 2.0 | 5.0 | 2.0 |
baseline / npc_portrait fixes:
- Improve character model realism with more detailed facial features, realistic skin shaders, and better clothing textures.
- Enhance material properties for all objects, especially the brick building and pavement, to better simulate real-world reflectivity, roughness, and subsurface scattering.
- Increase texture resolution and detail for all assets, particularly for the brickwork, pavement, and character clothing, to reduce the appearance of tiling and blurriness.
- Refine lighting to match the warm, directional sunlight and soft shadows of the target image, paying attention to ambient occlusion and global illumination.
- Add atmospheric perspective and volumetric fog to the backdrop to create a sense of depth and distance, mimicking the haze seen in the target image.
candidate / npc_portrait fixes:
- Improve character model realism with more detailed facial features, realistic skin shaders, and better hair simulation.
- Enhance material properties for clothing, pavement, and buildings to include subsurface scattering, anisotropic reflections, and more varied roughness maps.
- Increase texture resolution and add micro-detail (e.g., pores, fabric weave, concrete imperfections) to all surfaces.
- Implement more sophisticated global illumination and atmospheric scattering for a softer, more realistic lighting and haze effect.
- Refine the backdrop by adding more complex building geometry, varied foliage, and realistic distant city details with appropriate atmospheric perspective.