โ† All examples

procedural textures

Sand ripples and dunes

Generate tileable PBR maps of sand with wind or water ripples: asymmetric crests that bend, fork and merge, dark minerals in the troughs, optional dune swells and wet sand. Use for beaches, deserts and riverbeds.

Recorded render of Sand ripples and dunes

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • blender_material.py
  • component.json
  • material.tres
  • pngio.py
  • preview.png
  • sand_ripples.py
  • test_package.py
  • texkit.py
  • verification/native.json

How it works

Entry point
generate
Maps
albedo, normal, roughness, height, ao
Parameters
ripples, direction, meander, asymmetry, dune_swell, trough_minerals, wetness, hue_shift and 2 more
Presets
default, tidal_wet, desert_dunes, white_gypsum
Tileable
yes
Command line
python sand_ripples.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)

Recorded checks

godot 4.7.2.stable.official.ed1daf0bf

  • 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

Limits to consider

Ripple direction is limited to four whole-tile directions so the texture repeats. Ripples are a phase field, not a sediment simulation, and do not respond to obstacles. Dune swells are low-frequency height only. Occlusion is a blurred-height estimate.