Baltor Get started

Gallery / Procedural textures

Pixel-art sand with dithered dunes and ripples

In your harnessProcedural textureMIT

Generate a tileable pixel-art sand tile at a chosen art resolution: broad dune shading turned into stepped Bayer-dithered bands, wavy wind ripple lines with light crests and shadowed troughs, shells and pebbles, with per-pixel normal, height, roughness and occlusion maps. Use for beaches and deserts in 2D games.

Render of Pixel-art sand with dithered dunes and ripples
The render its check recorded in Godot 4.7.2, 256 by 256 pixels.

What it takes and gives

Entry point
generate
Maps
albedo, normal, roughness, height, ao
Parameters
art_pixels, dunes, dune_shading, ripple_spacing, ripple_slant, ripples, shells, pebbles and 4 more
Presets
default, desert_dunes, white_coral, black_sand
Tileable
yes
Command line
python pixel_sand_dunes.py --size 1024 --seed 7 --preset NAME --out DIR [--width W --height H] [--set NAME=VALUE] [--directx-normal] [--orm]
Godot material
material.tres
Blender builder
blender_material.build_material(folder)

Limits. Stylized pixel art with the light from the top left baked into the shading; dunes and ripples are periodic waves bent by noise, not a wind or sediment model. Ripple frequencies are whole numbers across and down the tile so the pattern repeats exactly, which limits slants to whole steps. Shells and pebbles are tiny fixed sprites. The normal map treats each art pixel as a flat facet. Output sizes that are not a whole multiple of art_pixels give art pixels of unequal widths. Occlusion is a blurred-height estimate posterized to eighths.

Details

Kind
Procedural texture
Engine
Python 3.10 or later
Files
12 files, 179.0 KB
Licence
MIT
Declared effects
runs commands, writes files
Checked with
Godot 4.7.2, gl_compatibility
Checks
command line generates declared maps, maps decode, maps have declared size and channels, maps tile without a seam, normal vectors unit length facing out, maps carry detail, godot imports the maps, godot material template loads every map, godot compatibility render, capture shows the textured surface, blender builds the material
Techniques
Ordered dithering with a 4 x 4 Bayer matrix, Periodic waves with whole-number frequencies, Phase bending by low-frequency fractal noise, Crest and trough lines from the fractional phase, Small sprite stamping with wrap-around, Per-art-pixel normals by central differences
Tags
texture, pixel art, tileable, sand, desert, beach, dithering, 2d
Identity
library.supply.creative_originals.115892ad943889c2f6225feb.f5f8f9a4ed676542
Version
f5f8f9a4ed676542e3b80e24c44a1f6bbe9f22c554e51f64fb9fccb9b42b6b91

The version is the SHA-256 of the item your harness downloads; every file in it names its own checksum.

Something wrong with this item, its rights or its safety? Report it on the support page, or from your harness after a download.