โ† All examples

procedural textures

CRT phosphor mask: aperture grille, delta dots and slots

Generate tileable maps of a CRT screen's phosphor layer: aperture-grille stripes with damper wires, a delta shadow mask of RGB dots or a staggered slot mask, with scanlines and an optional picture, as glowing emissive subpixels. Use for retro monitors, arcade cabinets, terminals and screen overlays.

Recorded render of CRT phosphor mask: aperture grille, delta dots and slots

What this component contains

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

How it works

Entry point
generate
Maps
albedo, normal, roughness, height, ao, emissive
Parameters
mask, triads_across, scanlines, scan_strength, picture, spot, glow, hue_shift and 2 more
Presets
default, shadow_mask_delta, slot_mask, arcade_low_res
Tileable
yes
Command line
python crt_phosphor_mask.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

A close-up pattern, not a display simulation: phosphor spots have Gaussian profiles, the beam adds a fixed scanline profile, and there is no convergence error, bloom, persistence, curvature or glass reflection. The picture is a smooth procedural image sampled per subpixel. Counts are whole numbers across the tile so the mask repeats; fine pitches alias when a stripe or dot is narrower than about three pixels. Phosphor primaries are approximate sRGB colours.