Noise
The Noise Tool is a GPU-accelerated blue-noise generation tool designed to produce high-quality 2D and 3D blue-noise patterns. It generates spatially uniform noise samples suitable for rendering, procedural placement, and sampling tasks.
This tool provides configurable parameters for precise control over the quality and characteristics of the noise. Optionally, the generated blue noise can be converted into coordinate images to support optimal distribution in procedural generation algorithms.
It supports both compact 8-bit textures and high-precision 16 and 32-bit representations. In addition to blue-noise synthesis, it can also generate associated Fourier transform images and histograms for quality validation and analysis.
Usage Example
Generate combined RGBAu8n noise texture:
- R and G channels contain blue-noise spatial coordinates.
- B and A channels contain two independent blue-noise sequences.
#!/bin/bash
SIZE=128
ts_noise -seed 1 -size $SIZE -os noise_rg.image
ts_noise -seed 3 -size $SIZE -bits 32 -o noise_b.image
ts_noise -seed 7 -size $SIZE -bits 32 -o noise_a.image
ts_image -v noise_rg.image noise_b.image noise_a.image -combine -o noise.image
rm noise_rg.image
rm noise_b.image
rm noise_a.image
Create two 64x64x32 3D blue-noise image using different seeds. It also outputs corresponding forward Fourier transform images for quality validation:
#!/bin/bash
SIZE=64
LAYERS=32
SIGMA=1.6
INIT=10
GRID=8
SCALE="-mul 2 1 1 1"
NAME=noise_${SIZE}x${SIZE}_l${LAYERS}_s${SIGMA}_i${INIT}
ts_noised -size $SIZE -layers $LAYERS -init $INIT -sigma $SIGMA -seed 123 -o ${NAME}_r.image -oh ${NAME}_r.txt -of ${NAME}_f_r.image -ox ${NAME}_fx_r.image -oy ${NAME}_fy_r.image
ts_noised -size $SIZE -layers $LAYERS -init $INIT -sigma $SIGMA -seed 731 -o ${NAME}_g.image -oh ${NAME}_g.txt -of ${NAME}_f_g.image -ox ${NAME}_fx_g.image -oy ${NAME}_fy_g.image
ts_imaged -v ${NAME}_f_r.image -grid $GRID -f ru8n normalize $SCALE -o ${NAME}_f_r.image
ts_imaged -v ${NAME}_f_g.image -grid $GRID -f ru8n normalize $SCALE -o ${NAME}_f_g.image
ts_imaged -v ${NAME}_fx_r.image -grid $GRID -f ru8n normalize $SCALE -o ${NAME}_fx_r.image
ts_imaged -v ${NAME}_fx_g.image -grid $GRID -f ru8n normalize $SCALE -o ${NAME}_fx_g.image
ts_imaged -v ${NAME}_fy_r.image -grid $GRID -f ru8n normalize $SCALE -o ${NAME}_fy_r.image
ts_imaged -v ${NAME}_fy_g.image -grid $GRID -f ru8n normalize $SCALE -o ${NAME}_fy_g.image
ts_imaged -v ${NAME}_r.image ${NAME}_g.image -combine -o ${NAME}.image
Command Line Parameters
Tellusim Blue Noise Image Generator
Usage: ts_noise -o noise.png
-i <filename> Input image
-o <filename> Output image
-os <filename> Spatial image
-of <filename> Forward image
-ox <filename> Forward X image
-oy <filename> Forward Y image
-oh <filename> Histogram output
-bits <bits> Image bits (8)
-size <size> Image size (128)
-width <width> Image width (128)
-height <height> Image width (128)
-layers <layers> Image layers (1)
-seed <value> Random seed (random)
-init <value> Initial pixels (10%)
-aspect <value> Noise aspect ratio (1.0)
-sigma <value> Gaussian sigma (2.0)
-epsilon <value> Quadratic epsilon (0.01)
-power <value> Quadratic power (1.0)
-device <index> Computation device index