###### ## ## Composite v0.1 by mf ## ## DotCrawl() - creates dotcrawl. With configurable strength. ## ## function DotCrawl(clip input, int "strength") { strength = Default(strength, 230) BlankClip(pixel_type="yv12", length=input.framecount, width=Ceil(input.width/4), \ height=Ceil(input.height/4)) black = last black.Invert() white = last Interleave(black, white) AssumeFieldBased().Weave() TurnLeft() Interleave(last, last.Invert) AssumeFieldBased().Weave() TurnRight() PointResize(last.width*2, last.height*2) Interleave(last, last.Invert) Crop(0, 0, input.width, input.height) DotCrawl = last input.EdgeMask(3, 255, 255, 255, "sobel", Y=3, V=1, U=1).Levels(0, 2, 45, 0, 255) \ .Inflate().Inflate().Inflate().Inflate().Levels(0, 1, 100, 0, 255).Blur(1) \ .Inflate().Inflate().Blur(1).Blur(1).Blur(1).Blur(1).Greyscale() ymask = last input.UToY().LanczosResize(last.width, last.height) unorm = last input.UToY().LanczosResize(last.width, last.height) vnorm = last BlankClip(unorm, color=$808080) grey = last YV12Subtract(grey, unorm.Invert(), tol=0).Levels(0, 1.5, 128, 0, 255) ulight = last YV12Subtract(grey, vnorm.Invert(), tol=0).Levels(0, 1.5, 128, 0, 255) vlight = last YV12Layer(ulight, vlight, "mul", 128) Levels(0, 1, 255, 0, strength) satmask = last MaskedMerge(input, dotcrawl, ymask) edgedots = last MaskedMerge(input, edgedots, satmask) }