โ† All examples

procedural textures

Riveted metal plates

Generate tileable PBR maps of riveted plating: a grid of lapped plates at slightly different heights, rows of domed or flush rivets along every edge, rust or dirt streaks running down from each rivet, and paint worn on rivet heads and edges. Use for ship hulls, tanks, airframes and steampunk props.

Recorded render of Riveted metal plates

What this component contains

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

How it works

Entry point
generate
Maps
albedo, normal, roughness, metallic, height, ao
Parameters
plates_across, plate_rows, rivets_per_edge, rivet_size, rivet_height, paint, streaks, plate_variation and 3 more
Presets
default, steampunk_brass, airframe, rusty_tank
Tileable
yes
Command line
python riveted_plates.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

Plates form a regular grid; real plating staggers its seams and follows frames and curvature. Rivets run in straight rows just inside each edge. Streaks always run toward the bottom of the tile. Occlusion is a blurred-height estimate, not ray traced.