โ† All examples

procedural textures

Pixel-art dungeon floor of irregular stone slabs

Generate a tileable pixel-art flagstone floor at a chosen art resolution: random-ashlar slabs of one or two cells with dark joints, lit and shadow bevels, chipped corners, branching cracks, moss in the joints and glossy puddles, with per-pixel normal, height, roughness and occlusion maps. Use for dungeon floors.

Recorded render of Pixel-art dungeon floor of irregular stone slabs

What this component contains

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

How it works

Entry point
generate
Maps
albedo, normal, roughness, height, ao
Parameters
art_pixels, cells, large_slabs, cracks, chips, moss, puddles, relief and 3 more
Presets
default, mossy_crypt, sandstone_temple, flooded_cellar
Tileable
yes
Command line
python pixel_dungeon_floor.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

Stylized pixel art with the light from the top left baked into the slab bevels. Slabs are rectangles on a coarse grid of cells, one or two cells each way, so the layout has no curved or diagonal joints, and a grid of two cells makes plain square slabs. Cracks are random walks and puddles thresholded noise. Roughness and height are values per drawn class, and 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.