feat(environment): add painterly skies and living meadows
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# Painterly valley assets
|
||||
|
||||
Original broadleaf and evergreen meshes created in Blender for The Steward.
|
||||
Scalloped crowns, painted vertex variation, crooked forks and root flares replace
|
||||
the primitive tree silhouettes. Editable sources are in `art/painterly/`;
|
||||
`.gdignore` keeps Blender outside Godot's runtime import dependencies. The two
|
||||
portable GLBs use opaque geometry without textures or alpha cards.
|
||||
|
||||
## Rebuild and mesh budget
|
||||
|
||||
From the project root, using Blender 5.1 and Godot 4.7:
|
||||
|
||||
```sh
|
||||
"$BLENDER_BIN" --background --python tools/art/build_painterly_trees.py
|
||||
"$GODOT_BIN" --headless --editor --path "$PWD" --import
|
||||
```
|
||||
|
||||
Use the isolated Godot profile configured by `tools/quality.sh` for headless
|
||||
validation. Runtime consumes the GLBs directly; no mesh-extraction step is
|
||||
needed. Preserve their `.import` files when updating exports.
|
||||
|
||||
| Geometry | Triangles | Surfaces |
|
||||
| --- | ---: | ---: |
|
||||
| Shared broadleaf crown | 1,236 | 1 |
|
||||
| Joined broadleaf trunk, forks and roots | 406 | 1 |
|
||||
| Complete broadleaf: four crowns plus trunk | 5,350 | 5 |
|
||||
| Complete conifer: boughs plus trunk | 1,580 | 2 |
|
||||
|
||||
`tree_mesh_budget.json` records these export counts. The broadleaf GLB is
|
||||
45,676 bytes; the conifer GLB is 40,836 bytes and stands 3.10 m before placement
|
||||
scaling. A separate temporary rebuild with Blender 5.1.2 produced byte-identical
|
||||
copies of both GLBs and the budget JSON. This establishes generator
|
||||
reproducibility with that Blender version, not identical `.blend` serialization
|
||||
across versions.
|
||||
|
||||
`StylizedTree` shares imported meshes and isolates crown tint/wind materials.
|
||||
Its four direct `Canopy*` children retain the existing thinning and stump
|
||||
presentation contract. `PainterlyConifer` shares imported bough/trunk meshes.
|
||||
Both use the same world-direction breeze and explicit painted bark colors;
|
||||
neither adds simulation state, collision or per-frame GDScript work.
|
||||
|
||||
## Painted sky provenance
|
||||
|
||||
`painted_sky.png` is an original 1774 × 887 image generated with the built-in
|
||||
ImageGen tool, rather than a CLI generator. The prompt asks for a painted
|
||||
cumulus panorama with warm ivory cloud tops, cool turquoise cloud shadows and
|
||||
a clear blue summer atmosphere. Film references informed the color and mood;
|
||||
no external film image was copied into the texture. The exact generation
|
||||
prompt is recorded in [sky_prompt.md](sky_prompt.md).
|
||||
|
||||
`storybook_sky.gdshader` maps the panorama's horizon at 69% of its height onto
|
||||
the upper hemisphere, repeats the painted band twice around the azimuth to
|
||||
retain cloud proportions, blends its seam/edge into haze, and follows the existing
|
||||
day/night palette. The image supplies the sky backdrop only; it does not paint
|
||||
terrain or create volumetric clouds.
|
||||
|
||||
Final renderer QA and the complete project quality gate belong to the
|
||||
integrated environment review. See the [presentation guide](../../docs/FEATURE_PRESENTATION_PERFORMANCE.md)
|
||||
for current verification evidence and remaining hardware limits.
|
||||
Reference in New Issue
Block a user