125 lines
5.9 KiB
Markdown
125 lines
5.9 KiB
Markdown
# High-res tile textures (test)
|
|
|
|
Generated on 2026-11-07 with fal.ai for the high-res graphics style (`HD_TILES` in `src/gfx.rs`).
|
|
|
|
- Model: `fal-ai/flux-2-pro`, `image_size: square_hd` (1024x1024), `output_format: png`,
|
|
`seed: 4242` (floor and gold: a second try with `seed: 4243` and the prompts below; the first
|
|
floor had a frame and a centre motif, the first gold too few veins)
|
|
- Prompt: the kind's sentence followed by the shared style text.
|
|
- `tools/make_tile.py <name>-raw.png <name> --size 128 --colors 32` scales it to a 2x2 block of
|
|
64x64 tiles, makes it seamless and reduces the colours; `<name>-128.png` is copied to
|
|
`assets/textures/<name>.png`. `<name>-128-preview.png`: 3x3 copies to check the seams.
|
|
|
|
Shared style text:
|
|
|
|
```text
|
|
Seamless tileable square texture, viewed straight from above (orthographic top-down, no perspective), flat even lighting, no shadows, no vignette, no border, no text. Hand-painted pixel art style for a dark-fantasy dungeon strategy game: chunky clear shapes, crisp edges, limited muted palette, readable at small size. The pattern continues seamlessly across all four edges.
|
|
```
|
|
|
|
## floor: T_FLOOR (dug-out floor)
|
|
|
|
```text
|
|
A uniform all-over pattern of rough grey-brown cobblestones of mixed sizes set in packed dirt, evenly spread from edge to edge with no frame, no border and no centre motif, like a cropped piece of a large dungeon floor.
|
|
```
|
|
|
|
## claimed
|
|
|
|
Replaced by the masters' floors with five slabs each, see `floors/PROMPTS.md`.
|
|
|
|
## earth: T_EARTH (earth blocks)
|
|
|
|
```text
|
|
Solid packed brown earth seen from above, soil with small stones, roots and darker clumps, slightly lumpy.
|
|
```
|
|
|
|
## rock: T_ROCK (bedrock)
|
|
|
|
```text
|
|
Hard dark blue-grey bedrock seen from above, angular rock facets and deep cracks, very solid and impenetrable.
|
|
```
|
|
|
|
## water: T_WATER
|
|
|
|
```text
|
|
Deep dark blue underground river water seen from above, gentle wave crests and ripples in lighter blue-cyan, slight foam streaks.
|
|
```
|
|
|
|
## lava: T_LAVA
|
|
|
|
```text
|
|
Molten lava seen from above, glowing orange and yellow molten rock flowing in swirls, darker red cooling streaks, very hot and bright, no black crust.
|
|
```
|
|
|
|
## In the game
|
|
|
|
Water and lava flow as before (the shader moves the texture along the river and lets the surface
|
|
swell); in the high-res style a second, larger layer of the same texture drifts slower and
|
|
sideways over it, so the surface churns.
|
|
|
|
## 128x128 (2026-11-07)
|
|
|
|
The same raw pictures also give 128x128 tiles for close views (`HD_TILE2`; the world shows them
|
|
when a tile gets nearly 128 pixels, else the 64x64 ones):
|
|
|
|
```bash
|
|
python3 tools/make_tile.py <name>-raw.png <name> --size 256 --colors 48 --band 28
|
|
```
|
|
|
|
`<name>-256.png` is copied to `assets/textures/<name>-256.png`.
|
|
|
|
## Gold, silver, ruby and diamond: lumps without veins (2026-11-07)
|
|
|
|
Made from the earth picture so the soil matches: `fal-ai/nano-banana-pro/edit` with
|
|
`earth-raw.png` as the reference image (`aspect_ratio: 1:1`, `resolution: 1K`, one image each).
|
|
The prompt template, `{ore}` per kind:
|
|
|
|
```text
|
|
Keep this exact seamless tileable earth texture (same colours, same soil, same style, same top-down view) and embed {ore} scattered in the soil: about twelve separate lumps of different sizes, partly buried, spread evenly over the whole image including near the edges. No veins, no lines, no cracks filled with ore, no streaks - only separate lumps. The texture must stay seamless across all four edges. No text.
|
|
```
|
|
|
|
- gold: `chunky nuggets of shining yellow gold`
|
|
- silver: `chunky nuggets of bright shining silver ore`
|
|
- ruby: `chunky raw red ruby crystals`
|
|
- diamond: `chunky raw clear pale-blue diamond crystals`
|
|
|
|
Gold has four variants (`--size 128` and `--size 256` like the others). Silver, ruby and diamond
|
|
have two variants: one seamless tile for both (`--size 64 --colors 32 --band 8` and
|
|
`--size 128 --colors 48 --band 14`), copied to `assets/textures/<name>.png` and `<name>-128.png`.
|
|
|
|
## Five variants per kind (2026-11-07)
|
|
|
|
Floor, earth, rock and the ores (gold, silver, ruby, diamond) now have five tiles each that fit
|
|
together in any order (`HD_SETS` in `src/gfx.rs`; a tile picks one by its position). No new
|
|
pictures: `tools/make_tile.py --variants 5` takes the seamless sheet of a raw picture, makes one
|
|
quarter of it seamless on its own as the shared border and fills the middles of the other tiles
|
|
from other windows of the sheet:
|
|
|
|
```bash
|
|
python3 tools/make_tile.py <name>-raw.png <name> --size 256 --colors 48 --band 28 --variants 5 # 128x128 tiles
|
|
python3 tools/make_tile.py <name>-raw.png <name> --size 128 --colors 32 --band 14 --variants 5 # 64x64 tiles
|
|
```
|
|
|
|
`<name>-v64.png` / `<name>-v128.png` are copied to `assets/textures/`; `<name>-v128-preview.png`
|
|
shows a floor laid out at random. Water and lava keep their 2x2 blocks (they flow).
|
|
|
|
## Reinforced wall (2026-11-07)
|
|
|
|
Roughly hewn stone instead of bricks. `fal-ai/flux-2-pro` (`square_hd`, `seed: 4244`), the
|
|
sentence followed by the shared style text:
|
|
|
|
```text
|
|
A uniform all-over pattern of a fortified dungeon wall seen straight on: roughly hewn, irregular grey stone blocks of clearly different sizes and shapes, chiselled rough faces with tool marks and chipped edges, fitted tightly with thin dark mortar that has a faint dark-crimson tint, very solid and heavy - not bricks, not a regular brick pattern, no frame, evenly spread from edge to edge.
|
|
```
|
|
|
|
The stones came out small, so the middle of the picture (pixels 100-500) is used:
|
|
|
|
```bash
|
|
python3 -I -c "from PIL import Image; Image.open('reinforced-raw.png').crop((100,100,500,500)).save('/tmp/reinf-zoom.png')"
|
|
python3 tools/make_tile.py /tmp/reinf-zoom.png reinforced --size 256 --colors 32 --band 28 --variants 5 --bright 1.25
|
|
python3 tools/make_tile.py /tmp/reinf-zoom.png reinforced --size 128 --colors 24 --band 14 --variants 5 --bright 1.25
|
|
```
|
|
|
|
The pixel-art atlas (16x16) does not use the picture (scaled that small it turns to mush): its
|
|
reinforced wall is drawn in code in the same spirit (`T_REINF` in `gen_atlas`: rubble stones
|
|
around a jittered grid, crimson-tinted mortar).
|