โ† All examples

procedural textures

Pixel-art snow drifts and glossy ice patches

Generate a tileable pixel-art snow and ice tile at a chosen art resolution: lumpy drift mounds with lit caps and blue shadows, sparkles, glossy ice patches with diagonal highlight streaks, rims and cracks, and dirt for trodden snow, with per-pixel normal, height, roughness and occlusion maps. Use for 2D winter levels.

Recorded render of Pixel-art snow drifts and glossy ice patches

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • blender_material.py
  • component.json
  • material.tres
  • pixel_snow_ice.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, mounds, ice, streak_spacing, cracks, sparkles, dirt, relief and 3 more
Presets
default, frozen_pond, packed_snow, glacier
Tileable
yes
Command line
python pixel_snow_ice.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 mound shading and the ice rims; drifts are Voronoi mounds and ice patches thresholded noise, not a snow or freezing model. Streaks are fixed diagonal highlights, not reflections of the scene. 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.