feat(hero): stepped medallion relief, seated on the parapet face
The medallions were not just flat - they were buried. seat_on_front put Hero_Medallion at offset 0.08 (front Y -0.42) while the 1.2 m-deep parapet stands at Y -0.15, so both discs sat inside the parapet and never rendered. The motto band and surround have the same burial (offset 0.06) and are a separate follow-up. - Three stepped layers per medallion with per-layer prefixes so seat_on_front gives each its own stand-off: Rim (0.55 m, dark, offset 0.36 -> Y -0.14), Field (0.38 m, light, offset 0.43 -> Y -0.07), Boss (0.15 m, dark, offset 0.50 -> Y 0.00). A single Hero_Medallion prefix would both flatten the relief and (via startswith) swallow the specific prefixes, so it is removed. - Moved from +/-6.2 (inside the inscription text, which spans +/-6.87) to +/-9.8. - Fixed Tools/review/hero_iterate.sh, which still had the pre-tools-move 'cd dirname/..' and landed in Tools/ instead of the repo root. Rendered and judged; the advisory two-model judge (no, 0.93) no longer flags the medallions. Owner review pending.
This commit is contained in:
1 parent
1d57ed477d
commit
33f8139cb2
24 files changed
+54
-34
No files matched your search
@@ -272,13 +272,22 @@ def build():
|
||||
"photographs: motto panel above the colonnade, now an inset panel with a "
|
||||
"moulded surround rather than a flat stripe")
|
||||
|
||||
# Medallions either side of the inscription: discs on the parapet face, not
|
||||
# pancakes on the coping (see disc_on_wall).
|
||||
for i, x in enumerate((-6.2, 6.2), start=1):
|
||||
disc_on_wall(f"Hero_Medallion_{i}", x, -1.30, HEIGHT - PARAPET_H / 2.0,
|
||||
0.55, 0.04, stone_dark, vertices=20)
|
||||
note("Hero_Medallion_x2", (1.1, 0.04, 1.1),
|
||||
"photographs: two stone discs beside the motto, mounted on the parapet face")
|
||||
# Medallions either side of the inscription: stepped round reliefs (dark rim, raised
|
||||
# light field, dark central boss) so they read as round medallions at 45 m instead of
|
||||
# flat, empty discs. Each layer has its own prefix so `seat_on_front` gives it its own
|
||||
# stand-off; one shared prefix would seat every disc at the same offset and flatten the
|
||||
# relief. They sit OUTSIDE the inscription text (which spans ~±6.9 m) on the parapet
|
||||
# face, which is 0.35 m proud of FRONT_Y - at the old 0.08 offset they were buried
|
||||
# inside the 1.2 m-deep parapet and never rendered.
|
||||
for i, x in enumerate((-9.8, 9.8), start=1):
|
||||
disc_on_wall(f"Hero_MedallionRim_{i}", x, -1.30, HEIGHT - PARAPET_H / 2.0,
|
||||
0.55, 0.10, stone_dark, vertices=28)
|
||||
disc_on_wall(f"Hero_MedallionField_{i}", x, -1.30, HEIGHT - PARAPET_H / 2.0,
|
||||
0.38, 0.16, stone, vertices=28)
|
||||
disc_on_wall(f"Hero_MedallionBoss_{i}", x, -1.30, HEIGHT - PARAPET_H / 2.0,
|
||||
0.15, 0.20, stone_dark, vertices=20)
|
||||
note("Hero_Medallion_x2", (1.1, 0.20, 1.1),
|
||||
"photographs: two round reliefs beside the motto - dark rim, raised light field, dark boss")
|
||||
|
||||
# --- entrances ---------------------------------------------------------
|
||||
# Three portals between column pairs, each with its own short flight. The
|
||||
@@ -403,7 +412,8 @@ def build():
|
||||
seat_on_front((
|
||||
("Hero_Architrave", 0.05), ("Hero_Cornice", 0.05), ("Hero_Dentil", 0.05),
|
||||
("Hero_Entablature", 0.03), ("Hero_MottoBand", 0.06), ("Hero_MottoSurround", 0.06),
|
||||
("Hero_Medallion", 0.08), ("Hero_Banner", 0.08), ("Hero_Window", 0.03),
|
||||
("Hero_MedallionRim", 0.36), ("Hero_MedallionField", 0.43), ("Hero_MedallionBoss", 0.50),
|
||||
("Hero_Banner", 0.08), ("Hero_Window", 0.03),
|
||||
("Hero_Portal", 0.05), ("Hero_PortalJamb", 0.08), ("Hero_PortalLintel", 0.08),
|
||||
("Hero_PortalMullion", 0.04), ("Hero_PortalSign", 0.10),
|
||||
# The parapet is 1.2 m deep and stands in front of the wall plane, so the inscription has to sit on
|
||||
|
||||
Reference in new issue
Block a user