post oprgb → rgbimport fullseye as fs; fs.ledger.film_grain(rgb, sigma=0.03, seed=0, monochrome=True) (実装を直接呼ぶなら import gfx2d; gfx2d.film_grain(rgb, sigma=0.03, seed=0, monochrome=True)、台帳から引くなら opsgfx2d.get("film_grain"))Add zero-mean Gaussian grain, deterministically from seed.
monochrome adds the same noise to all three channels (what film grain
does — the silver halide crystal is not coloured); set it false for sensor
read noise, which is per-channel.
sigma=0 returns the input bit for bit. The clip at [0, 1] biases the
mean wherever the image is already near an end of the range; the suite
measures the shift (2.4e-4 on a mid-grey image at sigma=0.03, 1.0e-4 on a
half-black half-white one) rather than claiming it is zero.
py -3.11 examples/gfx2d_scene.pyrgb を入力に取れる)srgb_to_linear · linear_to_srgb · blend_mode · light_mask · normal_map_decode · bloom · vignette · chromatic_aberration
post)bloom · vignette · chromatic_aberration · color_lut · color_grade · dither · palette_quantize
Provenance: gfx2d.py — GFX2D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.