โ† All examples

procedural textures

Chain mail in the European 4-in-1 weave

Generate tileable PBR maps of chain mail in the European 4-in-1 weave with alpha gaps: tilted rings in staggered rows, each passing over two neighbours and under two, in bright steel, blackened steel, brass or rusty iron. Use for armour, curtains, fantasy props and costumes.

Recorded render of Chain mail in the European 4-in-1 weave

What this component contains

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

How it works

Entry point
generate
Maps
albedo, normal, roughness, metallic, height, ao
Parameters
rings_across, wire, ring_size, tilt, tarnish, hue_shift, saturation, brightness
Presets
default, blackened, brass, rusty
Tileable
yes
Command line
python chain_mail.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

Rings are flat annuli with a round wire profile, tilted in alternating rows; the over and under is resolved per pixel by height, not by true 3D geometry, so deep overlaps and silhouettes are approximate. The gaps need alpha scissor. Contact shadows are darkened by hand rather than traced. Occlusion is a blurred-height estimate, not ray traced.