From abffa737ec21e9fa4c8c789b8f35f3239eff3c19 Mon Sep 17 00:00:00 2001 From: Olivier Date: Tue, 6 Oct 2026 21:48:44 +0200 Subject: [PATCH] docs: ADR 0012 amendment, READMEs and brief for the landform vocabulary Co-Authored-By: Claude Fable 5.1 --- content/README.md | 8 ++++++ docs/VERTICAL_SLICE_TECHNICAL_PLAN.md | 5 +++- .../0012-authored-heightfield-dive-sites.md | 26 +++++++++++++++++++ docs/briefs/terrain-varied-landforms.md | 12 +++++---- tests/README.md | 15 +++++++---- 5 files changed, 55 insertions(+), 11 deletions(-) diff --git a/content/README.md b/content/README.md index 17dd887..de1d118 100644 --- a/content/README.md +++ b/content/README.md @@ -15,3 +15,11 @@ est son `SiteTerrainData`. Les deux sont produits par `tools/bake_site_terrain.gd -- ` depuis `tools/sites/_recipe.gd`, la recette étant le document d'auteur (ADR 0012). Ne pas éditer les fichiers produits à la main. + +Sites présents : + +- `vehicle_test` : site de calibration du véhicule (fixture des tests) ; +- `zone1_vigilant` : le Banc du Vigilant, site de mission de la tranche 3 ; +- `terrain_showcase` : le Jardin des Formes, catalogue des formes de relief + (canyon à strates, crevasse, chaos de blocs, éperons, falaise sinueuse), sans + épave ni route ; chargeable par `select_dive_site` pour inspection. diff --git a/docs/VERTICAL_SLICE_TECHNICAL_PLAN.md b/docs/VERTICAL_SLICE_TECHNICAL_PLAN.md index c285233..bc63edc 100644 --- a/docs/VERTICAL_SLICE_TECHNICAL_PLAN.md +++ b/docs/VERTICAL_SLICE_TECHNICAL_PLAN.md @@ -867,7 +867,10 @@ rotation et remplacement d'un relevé. État au 2026-10-06 : terrain du site implémenté. Le Banc du Vigilant (`content/sites/zone1_vigilant.tres`) est chargé par `Nouvelle partie` ; ses placements d'épaves sont encore des volumes graybox métalliques. Voir -`docs/briefs/terrain-site-zone1-gameplay.md` et l'ADR 0012. +`docs/briefs/terrain-site-zone1-gameplay.md` et l'ADR 0012. Le vocabulaire de +formes du cuiseur couvre canyons à strates, crevasses, buttes, chaos de blocs +et falaises sinueuses, démontrés sur `content/sites/terrain_showcase.tres` +(`docs/briefs/terrain-varied-landforms.md`, amendement 1 de l'ADR 0012). - Ajouter carte limitée, position persistante du navire et sonar de surface. - Construire le terrain graybox, l'épave majeure contemporaine et deux leurres diff --git a/docs/adr/0012-authored-heightfield-dive-sites.md b/docs/adr/0012-authored-heightfield-dive-sites.md index d8952b8..1df1eb4 100644 --- a/docs/adr/0012-authored-heightfield-dive-sites.md +++ b/docs/adr/0012-authored-heightfield-dive-sites.md @@ -2,6 +2,7 @@ - Statut : accepté - Date : 2026-10-06 +- Amendé : 2026-10-06 (vocabulaire de formes, voir « Amendement 1 ») - Remplace : aucun ## Contexte @@ -58,6 +59,31 @@ dépôt et sa production. - Une sculpture manuelle (Blender) ultérieure devra ré-exporter vers le même `SiteTerrainData` ; le contrat ne change pas. +## Amendement 1 — vocabulaire de formes (2026-10-06) + +Le point 3 est précisé sans changer le contrat de données. La recette est une +somme de **primitives** additives, suivie de **modificateurs** qui reçoivent la +pente locale du champ en cours, puis du plancher, de la règle de matériau par +pente, des matériaux imposés par primitive et des `MaterialPatch`. + +- Primitives lisses : plan incliné, bosse gaussienne, crête, sillon, rupture + de pente, rides, rugosité déterministe. +- Primitives de relief marqué : `Canyon` (tranchée à fond plat le long d'une + polyligne, contour bruité), `Escarpment` (rupture de pente le long d'une + polyligne, le terrain descend à droite du sens de parcours), `Outcrop` + (butte ou fosse à sommet plat, contour bruité, matériau roche imposé), + `BoulderField` (blocs semi-ellipsoïdaux tirés par graine, combinés par + maximum, roche imposée). +- Modificateur : `Strata` quantifie les pentes raides en gradins horizontaux ; + les fonds et sommets plats ne bougent pas. + +Tout aléa passe par une graine explicite (`FastNoiseLite`, +`RandomNumberGenerator`) ; `tests/unit/run_site_baker_tests.gd` vérifie que +le Banc du Vigilant se recuit à l'identique. Le site de démonstration +`content/sites/terrain_showcase.tres` (« Jardin des Formes ») sert de +catalogue et de banc d'essai des contrats géométriques +(`docs/briefs/terrain-varied-landforms.md`). + ## Alternatives considérées - **Plugin de terrain externe** : rejeté, dépendance et ADR supplémentaires diff --git a/docs/briefs/terrain-varied-landforms.md b/docs/briefs/terrain-varied-landforms.md index f721473..3416e00 100644 --- a/docs/briefs/terrain-varied-landforms.md +++ b/docs/briefs/terrain-varied-landforms.md @@ -123,10 +123,10 @@ Plan de masse (nord en haut) : ```text +---------------------------------------------+ | NW : canyon à strates NE : crevasse | - | mesas à -24 m, tranchée fente 6 m de | - | 28 m de large, 24 m de large, 20 m | - | profond, gradins 2,5 m, de profond, | - | fond ridé entre buttes | + | mesa à -24 m, tranchée fente 6 m de | + | 28 m de large au sommet, large, 20 m | + | 20 m de profond, parois à de profond, | + | 55°, gradins 4 m, fond ridé entre buttes | | [départ] | | SW : chaos de blocs SE : éperons | | 80 blocs r 2–6 m sur deux buttes | @@ -169,7 +169,9 @@ Plan de masse (nord en haut) : ## 8. Décisions laissées à Olivier 1. **Résolution** : le showcase est cuit à 1,0 m par cellule (crevasse de 6 m - lisible). Les sites de mission restent à 1,5 m sauf décision contraire ; une + lisible). Les gradins imposent une paroi d'au moins 2 à 3 cellules par + couche : à 1 m par cellule, des couches de 4 m sur une paroi à 55° ; une + paroi à 76° (première cuisson) ne montrait aucun gradin. Les sites de mission restent à 1,5 m sauf décision contraire ; une crevasse de 5 m à 1,5 m par cellule n'a que trois cellules de large. 2. **Strates partout ?** Le modificateur est appliqué au canyon seulement. L'appliquer à la falaise sud du Banc du Vigilant est un changement de diff --git a/tests/README.md b/tests/README.md index acefa24..b468f3c 100644 --- a/tests/README.md +++ b/tests/README.md @@ -24,10 +24,15 @@ Suites de production actuelles : - `unit/run_site_domain_tests.gd` : données de terrain, champ de hauteur, définition de site et ses placements/routes ; - `unit/run_site_application_tests.gd` : règle de limites jouables ; -- `unit/run_site_baker_tests.gd` : primitives et déterminisme de la cuisson ; +- `unit/run_site_baker_tests.gd` : primitives (lisses et de relief marqué : + canyon, falaise, butte, chaos de blocs), modificateur de strates, matériaux + imposés, déterminisme de la cuisson et stabilité octet par octet du Banc du + Vigilant ; - `contract/run_site_content_tests.gd` : règles de contenu du Banc du Vigilant - (profondeurs, routes, amers) ; + (profondeurs, routes, amers) et géométrie du Jardin des Formes (profondeur et + gradins du canyon, largeur de la crevasse, fraction de roche du chaos, chenal + entre les éperons, chute de la falaise) ; - `integration/run_site_terrain_integration.gd` : collision et maillage égaux au - champ, matériaux sonar par cellule, puis scène de site chargée deux fois — le - site de calibration et le Banc du Vigilant (budget de chargement de 3 s, - sillon, coque, scan de référence depuis le départ). + champ, matériaux sonar par cellule, puis scène de site chargée trois fois — le + site de calibration, le Banc du Vigilant et le Jardin des Formes (budget de + chargement de 3 s, sillon, coque, canyon, scans de référence).