;; Film Grain effect - adds film grain texture ;; @param intensity float [0, 1] default 0.2 ;; @param colored bool default false (define-effect film_grain ((intensity 0.2) (colored false)) (let ((grain-amount (* intensity 50))) (map-pixels frame (lambda (x y c) (if colored (rgb (clamp (+ (red c) (gaussian 0 grain-amount)) 0 255) (clamp (+ (green c) (gaussian 0 grain-amount)) 0 255) (clamp (+ (blue c) (gaussian 0 grain-amount)) 0 255)) (let ((n (gaussian 0 grain-amount))) (rgb (clamp (+ (red c) n) 0 255) (clamp (+ (green c) n) 0 255) (clamp (+ (blue c) n) 0 255))))))))