function AddStaticGrainM(clip orig, int "cont", int "bright", int "grain", int "mode", float "mThresh", bool "showmask") { ####################################### # # Requires: # - AddGrain() # - RemoveGrain() # - MaskTools2 # - gradfunkmirror() # - GradFun2dbMod() # ####################################### # # cont - cont value of Tweak(). Lower value means weaker mask # Default 4 # # bright - bright value of Tweak(). Lower value means stronger mask. # Default -128 # # mode - values from 0 to 2 # 0 - no preprocessing # 1 - preprocessing using gradfunkmirror() # 2 - preprocessing using gradfun2dbmod() # Default 1 # # mThresh - preprocessing strength # Default 1.2 for mode 1 and 2 # # Showmask - enables preview of the mask. Brighter areas will have more grain applied to them. Useful for choosing settings. # Default false # ####################################### cont = Default(cont, 4) bright = Default(bright, -128) grain = Default(grain, 1) mode = Default(mode, 1) mThresh = Default(mThresh, 1.2) showmask = Default(showmask, false) clp = orig.IsYV12() ? orig : orig.ConvertToYV12() clp = (mode==1) ? clp.gradfunkmirror(mThresh) : clp clp = (mode==2) ? clp.gradfun2dbmod(mThresh) : clp grain = clp.AddGrain(1,constant=true) grainmask = clp.Tweak(cont,bright).GreyScale().Invert() clp.RemoveGrain(1) final = mt_merge(last,grain,grainmask,true) result = showmask ? grainmask : final return result }