Refracting Watermark Text over Video?

Moderator: SecondMan

Gene Cornelius
Posts: 29
Joined: Sun Mar 11, 2018 8:52 pm
Location: Haines, Alaska
Contact:

Refracting Watermark Text over Video?

#1

Post by Gene Cornelius » Fri Nov 08, 2019 3:57 pm

Howdy,

Clambering back into the saddle again ... for a practical reason. I want to use Resolve/Fusion pipeline to create watermarked versions of both single clips and sequences, so I can post my video online without that threat of theft.

The watermark I have in mind is less obtrusive, and likely more difficult to clone out/steal.

Basically I want it to be a distortion/emboss effect ... so the text "watermark" positioned over the center, refracts the moving video through it.

Am I barking up the wrong tree? Thanks a bunch for a clue.

Code: Select all

{
	Tools = ordered() {
		MediaIn1 = MediaIn {
			ExtentSet = true,
			CustomData = { MediaProps = {
					MEDIA_FORMAT_TYPE = "QuickTime",
					MEDIA_HEIGHT = 2160,
					MEDIA_MARK_IN = 0,
					MEDIA_MARK_OUT = 606,
					MEDIA_NAME = "Wintry Forest and River Aerial in Glowing Light.mov",
					MEDIA_NUM_FRAMES = 607,
					MEDIA_NUM_LAYERS = 1,
					MEDIA_PAR = 1,
					MEDIA_PATH = "E:\\Renders 2019\\Wintry Forest and River Aerial in Glowing Light.mov",
					MEDIA_SRC_FRAME_RATE = 29.97002997003,
					MEDIA_START_FRAME = 0,
					MEDIA_WIDTH = 3840
				}, },
			Inputs = {
				GlobalOut = Input { Value = 606, },
				Layer = Input { Value = "0", },
				ClipTimeEnd = Input { Value = 606, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
			},
			ViewInfo = OperatorInfo { Pos = { 306.542, 187.936 } },
		},
		Text3D1 = Text3D {
			Inputs = {
				["Transform3DOp.Translate.Z"] = Input { Value = -0.0323165779849541, },
				SortShadingElements = Input { Value = 1, },
				Red1 = Input { Value = 0.247058823529412, },
				Green1 = Input { Value = 0.247058823529412, },
				Blue1 = Input { Value = 0.247058823529412, },
				StyledText = Input { Value = "WATERMARK", },
				Font = Input { Value = "OptimusPrinceps", },
				Style = Input { Value = "Regular", },
				Size = Input { Value = 0.22, },
				VerticalTopCenterBottom = Input { Value = 1, },
				VerticalJustification = Input { Value = 3, },
				VerticalJustificationNew = Input { Value = 3, },
				HorizontalJustificationNew = Input { Value = 3, },
				Extrusion = Input { Value = 1, },
				ExtrusionProfile = Input {
					SourceOp = "Text3D1ExtrusionProfile",
					Source = "Value",
				},
				ExtrusionDepth = Input { Value = 0.0898, },
				ExtrusionSubdivisions = Input { Value = 5, },
				BevelDepth = Input { Value = 0.0031, },
				BevelWidth = Input { Value = 0.0197, },
				CustomExtrusionSubdivisions = Input { Value = 11, },
				SmoothingAngle = Input { Value = 0, },
				AdvancedFontControls = Input { Value = 1, },
				ManualFontKerningPlacement = Input {
					Value = StyledText {
						Array = {
						},
						Value = ""
					},
				},
			},
			ViewInfo = OperatorInfo { Pos = { 441.009, -9.9968 } },
			Colors = { TileColor = { R = 0.0823529411764706, G = 0.384313725490196, B = 0.517647058823529 }, }
		},
		Text3D1ExtrusionProfile = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { -0.288888888888889, RH = { 0.120142602495544, -0.0987654320987653 }, Flags = { Linear = true } },
					[0.360427807486631] = { 0.281481481481482, LH = { 0.240285204991087, 0.0913580246913583 }, RH = { 0.474866310160428, 0.263933305999727 }, Flags = { Linear = true } },
					[0.703743315508021] = { 0.222222222222222, LH = { 0.576636343903546, -0.128741287412874 }, RH = { 0.790017825311943, 0.311111111111111 } },
					[0.962566844919786] = { 0.488888888888889, LH = { 0.876292335115864, 0.4 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
			NameSet = true,
		},
		ReplaceMaterial3D1 = ReplaceMaterial3D {
			Inputs = {
				SceneInput = Input {
					SourceOp = "Text3D1",
					Source = "Output",
				},
				["ReplaceMode.Nest"] = Input { Value = 1, },
				MaterialInput = Input {
					SourceOp = "MediaIn1",
					Source = "Output",
				},
				["MtlStdInputs.MaterialIDNest"] = Input { Value = 1, },
				["MtlStdInputs.MaterialID"] = Input { Value = 1, },
			},
			ViewInfo = OperatorInfo { Pos = { 438.783, 72.5661 } },
		},
		Merge3D1 = Merge3D {
			CtrlWZoom = false,
			Inputs = {
				["Transform3DOp.Translate.X"] = Input { Value = -0.029, },
				SceneInput2 = Input {
					SourceOp = "ReplaceMaterial3D1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 573.772, 16.3284 } },
		},
		Merge1 = Merge {
			Inputs = {
				Blend = Input { Value = 0.953, },
				Background = Input {
					SourceOp = "MediaIn1",
					Source = "Output",
				},
				Foreground = Input {
					SourceOp = "Renderer3D1",
					Source = "Output",
				},
				Operator = Input { Value = FuID { "In" }, },
				PerformDepthMerge = Input { Value = 0, },
				ForegroundZOffset = Input { Value = -169.999997466803, },
				EffectMask = Input {
					SourceOp = "Renderer3D1",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 708.515, 188.635 } },
		},
		Renderer3D1 = Renderer3D {
			CustomData = { ToolVersion = 2, },
			Inputs = {
				GlobalOut = Input { Value = 606, },
				Width = Input { Value = 3840, },
				Height = Input { Value = 2160, },
				UseFrameFormatSettings = Input { Value = 1, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				SceneInput = Input {
					SourceOp = "Merge3D1",
					Source = "Output",
				},
				RendererType = Input { Value = FuID { "RendererOpenGL" }, },
				["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
				["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
			},
			ViewInfo = OperatorInfo { Pos = { 720.535, 13.6168 } },
			SubInputsData = {
				RendererOpenGL = {
					Version = 1
				}
			}
		},
		MediaOut1 = MediaOut {
			Inputs = {
				Index = Input { Value = "0", },
				Input = Input {
					SourceOp = "Merge1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 986.153, 98.2664 } },
		}
	}
}
Last edited by Gene Cornelius on Fri Nov 08, 2019 4:32 pm, edited 1 time in total.

User avatar
SirEdric
Fusionator
Posts: 1999
Joined: Tue Aug 05, 2014 10:04 am
Answers: 4
Real name: Eric Westphal
Been thanked: 147 times
Contact:

Re: Refracting Watermark Text over Video?

#2

Post by SirEdric » Fri Nov 08, 2019 4:03 pm

Gene Cornelius wrote:
Fri Nov 08, 2019 3:57 pm
Thanks a bunch for a clue.
First clue:
Please paste your tools in between .....:-)

User avatar
Midgardsormr
Fusionator
Posts: 1280
Joined: Wed Nov 26, 2014 8:04 pm
Answers: 6
Location: Los Angeles, CA, USA
Been thanked: 108 times
Contact:

Re: Refracting Watermark Text over Video?

#3

Post by Midgardsormr » Fri Nov 08, 2019 4:05 pm

To make that a bit clearer, between:

[code]

[/code]

User avatar
SecondMan
Site Admin
Posts: 3694
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 7
Location: Vancouver, Canada
Been thanked: 130 times
Contact:

Re: Refracting Watermark Text over Video?

#4

Post by SecondMan » Fri Nov 08, 2019 4:16 pm

And once you've done that, also make sure to bark up this tree: https://www.steakunderwater.com/wesuckl ... 690#p26690

:)

Gene Cornelius
Posts: 29
Joined: Sun Mar 11, 2018 8:52 pm
Location: Haines, Alaska
Contact:

Re: Refracting Watermark Text over Video?

#5

Post by Gene Cornelius » Fri Nov 08, 2019 4:41 pm

OK, will comply .. .sorry for the mess.

Will go barking thataway .. "Chromatic Displacement" .... a term I would not have guessed at.

Thank you all!

Gene Cornelius
Posts: 29
Joined: Sun Mar 11, 2018 8:52 pm
Location: Haines, Alaska
Contact:

Re: Refracting Watermark Text over Video?

#6

Post by Gene Cornelius » Fri Nov 08, 2019 6:31 pm

OK, yep, that's the ticket. SO COOL! Looks very useful.

Too bad I won't be able to use it for this purpose it just takes waaaay too long (tried in Fusion 9 as well as Resolve 16 Fusion page) ... if I could afford the supercomputer necessary I'd not be needing to put watermarks on clips ... drat. But thanks anyway!

Anyway, for future searchers, here's what I did (just a quick sample .. not likely I'd make the watermark this big):

Code: Select all

{
	Tools = ordered() {
		MediaIn1 = MediaIn {
			ExtentSet = true,
			CustomData = { MediaProps = {
					MEDIA_FORMAT_TYPE = "QuickTime",
					MEDIA_HEIGHT = 2160,
					MEDIA_MARK_IN = 0,
					MEDIA_MARK_OUT = 606,
					MEDIA_NAME = "Wintry Forest and River Aerial in Glowing Light.mov",
					MEDIA_NUM_FRAMES = 607,
					MEDIA_NUM_LAYERS = 1,
					MEDIA_PAR = 1,
					MEDIA_PATH = "E:\\Renders 2019\\Wintry Forest and River Aerial in Glowing Light.mov",
					MEDIA_SRC_FRAME_RATE = 29.97002997003,
					MEDIA_START_FRAME = 0,
					MEDIA_WIDTH = 3840
				}, },
			Inputs = {
				GlobalOut = Input { Value = 606, },
				Layer = Input { Value = "0", },
				ClipTimeEnd = Input { Value = 606, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
			},
			ViewInfo = OperatorInfo { Pos = { 69.2795, 108.226 } },
		},
		Text3D1 = Text3D {
			Inputs = {
				["Transform3DOp.Translate.Y"] = Input { Value = -0.0114482158663118, },
				["Transform3DOp.Translate.Z"] = Input { Value = -0.0323165779849541, },
				SortShadingElements = Input { Value = 1, },
				Red1 = Input { Value = 0.0431372549019608, },
				Green1 = Input { Value = 0.0549019607843137, },
				Blue1 = Input { Value = 0.247058823529412, },
				StyledText = Input { Value = "Watermark", },
				Font = Input { Value = "OptimusPrinceps", },
				Style = Input { Value = "Regular", },
				Size = Input { Value = 0.47, },
				VerticalTopCenterBottom = Input { Value = 1, },
				VerticalJustification = Input { Value = 3, },
				VerticalJustificationNew = Input { Value = 3, },
				HorizontalJustificationNew = Input { Value = 3, },
				Extrusion = Input { Value = 1, },
				ExtrusionStyle = Input { Value = 1, },
				ExtrusionProfile = Input {
					SourceOp = "Text3D1ExtrusionProfile",
					Source = "Value",
				},
				ExtrusionDepth = Input { Value = 0.0252, },
				BevelDepth = Input { Value = 0.074, },
				BevelWidth = Input { Value = 0.0394, },
				CustomExtrusionSubdivisions = Input { Value = 10, },
				SmoothingAngle = Input { Value = 21.73, },
				AdvancedFontControls = Input { Value = 1, },
				ManualFontKerningPlacement = Input {
					Value = StyledText {
						Array = {
						},
						Value = ""
					},
				},
			},
			ViewInfo = OperatorInfo { Pos = { 238.724, -135.822 } },
			Colors = { TileColor = { R = 0.0823529411764706, G = 0.384313725490196, B = 0.517647058823529 }, }
		},
		Text3D1ExtrusionProfile = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { -0.288888888888889, RH = { 0.120142602495544, -0.0987654320987653 }, Flags = { Linear = true } },
					[0.360427807486631] = { 0.281481481481482, LH = { 0.240285204991087, 0.0913580246913583 }, RH = { 0.474866310160428, 0.263933305999727 }, Flags = { Linear = true } },
					[0.703743315508021] = { 0.222222222222222, LH = { 0.576636343903546, -0.128741287412874 }, RH = { 0.790017825311943, 0.311111111111111 } },
					[0.962566844919786] = { 0.488888888888889, LH = { 0.876292335115864, 0.4 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
			NameSet = true,
		},
		ChromaticDisplacement = MacroOperator {
			CtrlWZoom = false,
			Inputs = ordered() {
				Comments = Input { Value = "Macro by Emilio Sapia - Millolab\nhttps://emiliosapia.myportfolio.com", },
				Background = InstanceInput {
					SourceOp = "ChangeDepth2_1",
					Source = "Input",
					Name = "Background",
				},
				Foreground = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Input",
					Name = "Foreground",
				},
				DisplaceControls = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "DisplaceControls",
				},
				Height = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Height",
					Default = 0,
				},
				Refraction = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Refraction",
					Default = 0,
				},
				Spread = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Spread",
					Default = 0,
				},
				LightPower = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "LightPower",
					Default = 0,
				},
				LightAngle = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "LightAngle",
					Default = 0,
				},
				CustomTransform = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "CustomTransform",
				},
				FlipHorizontally = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "FlipHorizontally",
					Default = 0,
				},
				FlipVertically = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "FlipVertically",
					Default = 0,
				},
				Rotation = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Rotation",
					Default = 0,
				},
				Scale = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Scale",
					Default = 1,
				},
				ChromaControls = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "ChromaControls",
				},
				DistortionSoftness = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "DistortionSoftness",
					Default = 1,
				},
				ChromaMix = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "ChromaMix",
					Default = 1,
				},
				LinearAberration = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "LinearAberration",
					MinScale = 0.495,
					MaxScale = 0.505,
					Default = 0.5,
				},
				LensAberrationX = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "LensAberrationX",
					MaxScale = 0.05,
					Default = 0,
				},
				LensAberrationY = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "LensAberrationY",
					MaxScale = 0.05,
					Default = 0,
				},
				LensSoftness = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "LensSoftness",
					Default = 0,
				},
				ChromaSaturation = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "ChromaSaturation",
					Default = 1,
				},
				Falloff = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Falloff",
					Default = 0.05,
				},
				FalloffGain = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "FalloffGain",
					Default = 1,
				},
				PerformanceMode = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "PerformanceMode",
					Default = 0,
				},
				AlphaControls = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "AlphaControls",
				},
				UseAlpha = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "UseAlpha",
					Default = 1,
				},
				Low = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "Low",
					ControlGroup = 24,
					Default = 0,
				},
				High = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "High",
					ControlGroup = 24,
					Default = 1,
				},
				CutOutMode = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "CutOutMode",
				},
				GlobalBlend = InstanceInput {
					SourceOp = "ChangeDepth2",
					Source = "GlobalBlend",
					Default = 1,
				},
				Input232 = InstanceInput {
					SourceOp = "Dissolve2",
					Source = "ApplyMaskInverted",
					Page = "Common",
					Default = 0,
				},
				Input233 = InstanceInput {
					SourceOp = "Dissolve1",
					Source = "MultiplyByMask",
					Default = 0,
				},
				Input234 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "Channel",
				},
				Input253 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "Low",
					ControlGroup = 164,
					Default = 0,
				},
				Input254 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "High",
					ControlGroup = 164,
					Default = 1,
				},
				Input255 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "ClipBlack",
					Name = "Black",
					Default = 1,
				},
				Input256 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "ClipWhite",
					Name = "White",
					Default = 1,
				},
				Input257 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "UseObject",
					Default = 0,
				},
				Input258 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "UseMaterial",
					Default = 0,
				},
				Input259 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "Object",
					ControlGroup = 169,
					Default = 0,
				},
				Input260 = InstanceInput {
					SourceOp = "Mask_In",
					Source = "Material",
					ControlGroup = 169,
					Default = 0,
				},
				EffectMask = InstanceInput {
					SourceOp = "Mask_In",
					Source = "Image",
				}
			},
			Outputs = {
				MainOutput1 = InstanceOutput {
					SourceOp = "Dissolve2",
					Source = "Output",
				}
			},
			ViewInfo = GroupInfo { Pos = { 297.168, 21.012 } },
			Tools = ordered() {
				ChangeDepth2_1 = ChangeDepth {
					CtrlWShown = false,
					Inputs = {
						Depth = Input {
							Value = 4,
							Expression = "ChangeDepth2.Depth",
						},
						Input = Input {
							SourceOp = "MediaIn1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -615.13, 412.225 } },
				},
				Merge2 = Merge {
					CtrlWShown = false,
					Inputs = {
						Background = Input {
							SourceOp = "ChangeDepth2_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "MatteControl1",
							Source = "Output",
						},
						PerformDepthMerge = Input { Value = 0, },
					},
					ViewInfo = OperatorInfo { Pos = { 466.449, 412.225 } },
				},
				Dissolve1 = Dissolve {
					Transitions = {
						[0] = "DFTDissolve"
					},
					CtrlWShown = false,
					Inputs = {
						Mix = Input {
							Value = 0,
							Expression = "ChangeDepth2.CutOutMode",
						},
						Background = Input {
							SourceOp = "Merge2",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "MatteControl1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 614, 412.225 } },
				},
				Dissolve2 = Dissolve {
					Transitions = {
						[0] = "DFTDissolve"
					},
					CtrlWShown = false,
					Inputs = {
						EffectMask = Input {
							SourceOp = "Mask_In",
							Source = "Mask",
						},
						MultiplyByMask = Input { Expression = "iif(Dissolve1.MultiplyByMask==1,1,(ChangeDepth2.CutOutMode))", },
						Mix = Input { Expression = "ChangeDepth2.GlobalBlend", },
						Background = Input {
							SourceOp = "ChangeDepth2_1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "Dissolve1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 614, 501.274 } },
				},
				ChangeDepth2 = ChangeDepth {
					CtrlWShown = false,
					Inputs = {
						Depth = Input { Value = 4, },
						Input = Input {
							SourceOp = "Renderer3D1",
							Source = "Output",
						},
						DisplaceControls = Input { Value = 1, },
						Height = Input { Value = 54.3, },
						Refraction = Input { Value = 0.17, },
						Spread = Input { Value = 4.72, },
						LightAngle = Input { Value = 101.74, },
						CustomTransform = Input { Value = 1, },
						ChromaControls = Input { Value = 1, },
						Falloff = Input { Value = 0.05, },
						PerformanceMode = Input { Value = 1, },
						AlphaControls = Input { Value = 1, },
						UseAlpha = Input { Value = 1, },
						High = Input { Value = 1, },
					},
					ViewInfo = OperatorInfo { Pos = { -202.652, 8.24156 } },
					UserControls = ordered() {
						DisplaceControls = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							LBLC_DropDownButton = true,
							INPID_InputControl = "LabelControl",
							LBLC_NumInputs = 5,
							INP_MaxScale = 1,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LBLC_NestLevel = 1,
							LINKS_Name = "Displace Controls",
						},
						Height = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "SliderControl",
							INP_MaxScale = 100,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "Height",
						},
						Refraction = {
							INP_Integer = false,
							LINKS_Name = "Refraction",
							INPID_InputControl = "SliderControl",
							INP_MinScale = -1,
							LINKID_DataType = "Number",
							INP_MaxScale = 1,
							INP_Default = 0,
						},
						Spread = {
							INP_Integer = false,
							LINKS_Name = "Spread",
							INPID_InputControl = "SliderControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 50,
							INP_Default = 0,
						},
						LightPower = {
							INP_Integer = false,
							LINKS_Name = "Light Power",
							INPID_InputControl = "SliderControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 30,
							INP_Default = 0,
						},
						LightAngle = {
							INP_Integer = false,
							LINKS_Name = "Light Angle",
							INPID_InputControl = "ScrewControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 90,
							INP_Default = 0,
						},
						CustomTransform = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							LBLC_DropDownButton = true,
							INPID_InputControl = "LabelControl",
							LBLC_NumInputs = 4,
							INP_MaxScale = 1,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LBLC_NestLevel = 1,
							LINKS_Name = "Custom Transforms",
						},
						FlipHorizontally = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "CheckboxControl",
							INP_MaxScale = 1,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							CBC_TriState = false,
							LINKS_Name = "Flip Horizontally",
						},
						FlipVertically = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "CheckboxControl",
							INP_MaxScale = 1,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							CBC_TriState = false,
							LINKS_Name = "Flip Vertically",
						},
						Rotation = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "ScrewControl",
							INP_MaxScale = 90,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "Rotation",
						},
						Scale = {
							LINKS_Name = "Scale",
							INP_Integer = false,
							INP_MaxScale = 2,
							INPID_InputControl = "SliderControl",
							LINKID_DataType = "Number",
							INP_MinScale = 0,
							ICD_Center = 1,
							INP_Default = 1,
						},
						ChromaControls = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							LBLC_DropDownButton = true,
							INPID_InputControl = "LabelControl",
							LBLC_NumInputs = 10,
							INP_MaxScale = 1,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LBLC_NestLevel = 3,
							LINKS_Name = "Chroma Controls",
						},
						DistortionSoftness = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "SliderControl",
							INP_MaxScale = 10,
							INP_Default = 1,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "Distortion Softness",
						},
						ChromaMix = {
							INP_Integer = false,
							LINKS_Name = "Chroma Mix",
							INPID_InputControl = "SliderControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 1,
							INP_Default = 1,
						},
						LinearAberration = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "SliderControl",
							INP_MaxScale = 0.504999995231628,
							INP_Default = 0.5,
							INP_MinScale = 0.495000004768372,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "Linear Aberration",
						},
						LensAberrationX = {
							INP_Integer = false,
							LINKS_Name = "Lens Aberration X",
							INPID_InputControl = "SliderControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 0.0500000007450581,
							INP_Default = 0,
						},
						LensAberrationY = {
							INP_Integer = false,
							LINKS_Name = "Lens Aberration Y",
							INPID_InputControl = "SliderControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 0.0500000007450581,
							INP_Default = 0,
						},
						LensSoftness = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "SliderControl",
							INP_MaxScale = 200,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "Lens Softness",
						},
						ChromaSaturation = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "SliderControl",
							INP_MaxScale = 5,
							INP_Default = 1,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							ICD_Center = 1,
							LINKS_Name = "Chroma Saturation",
						},
						Falloff = {
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "SliderControl",
							INP_MaxScale = 0.5,
							INP_Default = 0.0500000007450581,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "Falloff",
						},
						FalloffGain = {
							LINKS_Name = "Falloff Gain ",
							INP_Integer = false,
							INP_MaxScale = 2,
							INPID_InputControl = "SliderControl",
							LINKID_DataType = "Number",
							INP_MinScale = 0.5,
							ICD_Center = 1,
							INP_Default = 1,
						},
						PerformanceMode = {
							CBC_TriState = false,
							INP_Integer = false,
							LINKS_Name = "Performance Mode",
							INPID_InputControl = "CheckboxControl",
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							INP_MaxScale = 1,
							INP_Default = 0,
						},
						AlphaControls = {
							INP_Integer = false,
							LBLC_DropDownButton = true,
							LINKID_DataType = "Number",
							LBLC_NumInputs = 4,
							LBLC_NestLevel = 4,
							INPID_InputControl = "LabelControl",
							LINKS_Name = "Alpha Controls",
						},
						UseAlpha = {
							{ CCS_AddString = "Off" },
							{ CCS_AddString = "On" },
							INP_Integer = false,
							LINKID_DataType = "Number",
							CC_LabelPosition = "Horizontal",
							INPID_InputControl = "ComboControl",
							LINKS_Name = "Use Alpha",
						},
						Channel = {
							{ CCS_AddString = "Alpha" },
							{ CCS_AddString = "Luminance" },
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "ComboControl",
							CC_LabelPosition = "Horizontal",
							INP_MaxScale = 6,
							INP_Default = 0,
							INP_MinScale = 0,
							INP_MinAllowed = -1,
							LINKID_DataType = "Number",
							LINKS_Name = "Channel",
						},
						Low = {
							INP_Integer = false,
							INPID_InputControl = "RangeControl",
							INP_MaxScale = 1,
							INP_Default = 0,
							INP_MinScale = 0,
							LINKID_DataType = "Number",
							IC_ControlID = 0,
							IC_ControlGroup = 1,
							LINKS_Name = "Low",
						},
						High = {
							INP_Integer = false,
							LINKID_DataType = "Number",
							IC_ControlID = 1,
							LINKS_Name = "High",
							INPID_InputControl = "RangeControl",
							IC_ControlGroup = 1,
						},
						CutOutMode = {
							{ CCS_AddString = "Off" },
							{ CCS_AddString = "On" },
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "ComboControl",
							CC_LabelPosition = "Horizontal",
							INP_MaxScale = 1,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							LINKS_Name = "CutOut Mode",
						},
						GlobalBlend = {
							{ MBTNC_AddButton = "On" },
							{ MBTNC_AddButton = "Off" },
							INP_MaxAllowed = 1000000,
							INP_Integer = false,
							INPID_InputControl = "MultiButtonControl",
							MBTNC_ShowBasicButton = true,
							INP_MaxScale = 1,
							INP_Default = 1,
							INP_MinScale = 0,
							INP_MinAllowed = -1000000,
							LINKID_DataType = "Number",
							MBTNC_ShowName = true,
							MBTNC_StretchToFit = true,
							MBTNC_ShowToolTip = true,
							LINKS_Name = "Global Bypass",
						}
					}
				},
				Blur1 = Blur {
					CtrlWShown = false,
					Inputs = {
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
						Filter = Input { Value = FuID { "Gaussian" }, },
						XBlurSize = Input {
							Value = 4.72,
							Expression = "ChangeDepth2.Spread",
						},
						Input = Input {
							SourceOp = "ChangeDepth2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -202.652, 229.772 } },
				},
				CreateBumpMap1 = CreateBumpMap {
					CtrlWShown = false,
					Inputs = {
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
						Input = Input {
							SourceOp = "Blur1",
							Source = "Output",
						},
						HeightScale = Input {
							Value = 54.3,
							Expression = "ChangeDepth2.Height",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -346.363, 229.772 } },
				},
				Bitmap2_1 = BitmapMask {
					CtrlWShown = false,
					Inputs = {
						Level = Input { Expression = "ChangeDepth2.GlobalBlend", },
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1 }, },
						ClippingMode = Input { Value = FuID { "None" }, },
						Image = Input {
							SourceOp = "ChangeDepth2",
							Source = "Output",
						},
						Channel = Input { Value = FuID { "Luminance" }, },
					},
					ViewInfo = OperatorInfo { Pos = { -88.0035, 161.029 } },
				},
				Instance_Blur1_2 = Blur {
					CtrlWShown = false,
					SourceOp = "Blur1",
					Inputs = {
						StartEndRenderScripts = Input { },
						EffectMask = Input { },
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend" },
						XBlurSize = Input {
							Value = 4.72,
							Expression = "ChangeDepth2.Spread"
						},
						Input = Input {
							SourceOp = "Bitmap3",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 125.018, 120.29 } },
				},
				Bitmap1 = BitmapMask {
					CtrlWShown = false,
					Inputs = {
						Level = Input { Expression = "ChangeDepth2.GlobalBlend", },
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1 }, },
						ClippingMode = Input { Value = FuID { "None" }, },
						Image = Input {
							SourceOp = "Instance_Blur1_2",
							Source = "Output",
						},
						Channel = Input { Value = FuID { "Luminance" }, },
					},
					ViewInfo = OperatorInfo { Pos = { 249.997, 94.8717 } },
				},
				Bitmap1_1 = BitmapMask {
					CtrlWShown = false,
					Inputs = {
						EffectMask = Input {
							SourceOp = "Bitmap1",
							Source = "Mask",
						},
						Level = Input { Expression = "ChangeDepth2.GlobalBlend", },
						SoftEdge = Input {
							Value = 0.05,
							Expression = "ChangeDepth2.Falloff",
						},
						PaintMode = Input { Value = FuID { "Minimum" }, },
						Invert = Input { Value = 1, },
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1 }, },
						ClippingMode = Input { Value = FuID { "None" }, },
						Image = Input {
							SourceOp = "Instance_Blur1_2",
							Source = "Output",
						},
						Channel = Input { Value = FuID { "Luminance" }, },
					},
					ViewInfo = OperatorInfo { Pos = { 249.997, 151.102 } },
				},
				Bitmap3 = BitmapMask {
					CtrlWShown = false,
					Inputs = {
						Level = Input { Expression = "ChangeDepth2.GlobalBlend", },
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1 }, },
						ClippingMode = Input { Value = FuID { "None" }, },
						Image = Input {
							SourceOp = "ChangeDepth2",
							Source = "Output",
						},
						Channel = Input { Expression = "iif(ChangeDepth2.Channel ==0, \"Alpha\", \"Luminance\")", },
						Low = Input { Expression = "ChangeDepth2.Low", },
						High = Input { Expression = "ChangeDepth2.High", },
					},
					ViewInfo = OperatorInfo { Pos = { 349.85, 32.0338 } },
				},
				Instance_Blur1_1 = Blur {
					CtrlWShown = false,
					SourceOp = "Blur1",
					Inputs = {
						StartEndRenderScripts = Input { },
						EffectMask = Input { },
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend" },
						XBlurSize = Input {
							Value = 4.72,
							Expression = "ChangeDepth2.Spread"
						},
						Input = Input {
							SourceOp = "Bitmap2_1",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 29.9965, 229.391 } },
				},
				Displace1 = Displace {
					CtrlWShown = false,
					Inputs = {
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
						MultiplyByMask = Input { Value = 1, },
						Type = Input { Value = 1, },
						XOffset = Input { Value = -0.5, },
						XRefraction = Input {
							Value = 0.17,
							Expression = "ChangeDepth2.Refraction/self.Input.ProxyScale",
						},
						YOffset = Input { Value = -0.5, },
						YRefraction = Input {
							Value = 0.17,
							Expression = "XRefraction",
						},
						RefractionStrength = Input { Value = 2, },
						LightPower = Input { Expression = "ChangeDepth2.LightPower", },
						LightAngle = Input {
							Value = 101.74,
							Expression = "ChangeDepth2.LightAngle",
						},
						LightChannel = Input { Value = 5, },
						Input = Input {
							SourceOp = "Transform3",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "CreateBumpMap1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -346.363, 296.225 } },
				},
				MatteControl1 = MatteControl {
					CtrlWShown = false,
					Inputs = {
						Blend = Input { Expression = "ChangeDepth2.UseAlpha", },
						MatteCombine = Input { Value = 4, },
						PostMultiplyImage = Input { Value = 1, },
						Background = Input {
							SourceOp = "BrightnessContrast1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "Bitmap3",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 421.844, 296.225 } },
				},
				Transform3 = Transform {
					CtrlWShown = false,
					Inputs = {
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
						Size = Input {
							Value = 0.554,
							Expression = "ChangeDepth2.Scale",
						},
						Angle = Input { Expression = "ChangeDepth2.Rotation", },
						FlipHoriz = Input { Expression = "ChangeDepth2.FlipHorizontally", },
						FlipVert = Input { Expression = "ChangeDepth2.FlipVertically", },
						Edges = Input { Value = 3, },
						Input = Input {
							SourceOp = "ChangeDepth2_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -497.034, 296.225 } },
				},
				VariBlur1 = VariBlur {
					CtrlWShown = false,
					Inputs = {
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
						Method = Input { Value = 0, },
						XBlurSize = Input { Expression = "ChangeDepth2.DistortionSoftness", },
						Input = Input {
							SourceOp = "Displace1",
							Source = "Output",
						},
						BlurImage = Input {
							SourceOp = "Bitmap2_1",
							Source = "Mask",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -88.0035, 296.225 } },
				},
				BrightnessContrast1 = BrightnessContrast {
					CtrlWShown = false,
					Inputs = {
						EffectMask = Input {
							SourceOp = "Bitmap1_1",
							Source = "Mask",
						},
						Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
						Gain = Input { Expression = "ChangeDepth2.FalloffGain", },
						Saturation = Input { Expression = "ChangeDepth2.ChromaSaturation", },
						PreDividePostMultiply = Input { Value = 1, },
						Input = Input {
							SourceOp = "Merge1_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 249.997, 296.225 } },
				},
				Merge1_1 = Merge {
					CtrlWShown = false,
					Inputs = {
						EffectMask = Input {
							SourceOp = "Instance_Blur1_1",
							Source = "Output",
						},
						Blend = Input { Expression = "ChangeDepth2.ChromaMix", },
						MaskChannel = Input { Value = 5, },
						Background = Input {
							SourceOp = "VariBlur1",
							Source = "Output",
						},
						Foreground = Input {
							SourceOp = "ChannelBooleans3_1_1",
							Source = "Output",
						},
						PerformDepthMerge = Input { Value = 0, },
					},
					ViewInfo = OperatorInfo { Pos = { 29.9965, 296.225 } },
				},
				Group1 = GroupOperator {
					CtrlWShown = false,
					Inputs = ordered() {
						Input1 = InstanceInput {
							SourceOp = "ChangeDepth1_1_1",
							Source = "Input",
						}
					},
					Outputs = {
						Output1 = InstanceOutput {
							SourceOp = "ChannelBooleans3_1_1",
							Source = "Output",
						}
					},
					ViewInfo = GroupInfo {
						Pos = { 29.9965, 351.418 },
						Flags = {
							AllowPan = false,
							ConnectedSnap = true,
							AutoSnap = true,
							AspectPics = false,
							Thumbnails = false,
							RemoveRouters = true
						},
						Size = { 888.67, 193.36, 444.335, 24.2424 },
						Direction = "Horizontal",
						PipeStyle = "Direct",
						Scale = 1,
						Offset = { 4.14671, 0 }
					},
					Tools = ordered() {
						Blur1_2_1 = Blur {
							CtrlWShown = false,
							Inputs = {
								Blend = Input { Expression = "ChangeDepth2.GlobalBlend", },
								Filter = Input { Value = FuID { "Box" }, },
								LockXY = Input { Value = 0, },
								XBlurSize = Input {
									Value = 0,
									Expression = "0.0+ChangeDepth1_1_1.Scale*ChangeDepth1_1_1.soft",
								},
								YBlurSize = Input {
									Value = 0,
									Expression = "0.0+ChangeDepth1_1_1.ScaleY*ChangeDepth1_1_1.soft",
								},
								Passes = Input { Value = 3, },
								Input = Input {
									SourceOp = "Transform1_2_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 234, 8.25958 } },
						},
						Transform1_2_1 = Transform {
							CtrlWShown = false,
							Inputs = {
								Center = Input { Expression = "Point(ChangeDepth1_1_1.Amount, 0.5)", },
								UseSizeAndAspect = Input { Value = 0, },
								XSize = Input { Expression = "1+ChangeDepth1_1_1.Scale", },
								YSize = Input { Expression = "1.0+ChangeDepth1_1_1.ScaleY", },
								Edges = Input { Value = 3, },
								Input = Input {
									SourceOp = "ChannelBooleans1_1_1_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 86, 8.25958 } },
						},
						ChannelBooleans1_1_1_1_1 = ChannelBoolean {
							CtrlWShown = false,
							Inputs = {
								ToRed = Input { Value = 15, },
								ToGreen = Input { Value = 15, },
								Background = Input {
									SourceOp = "DirectionalBlur1_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { -87, 8.25958 } },
						},
						ChannelBooleans2_1_1 = ChannelBoolean {
							CtrlWShown = false,
							Inputs = {
								Operation = Input { Value = 1, },
								ToAlpha = Input { Value = 4, },
								Background = Input {
									SourceOp = "Blur1_2_1",
									Source = "Output",
								},
								Foreground = Input {
									SourceOp = "Transform1_1_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 381, 8.25958 } },
						},
						Transform1_1_1_1 = Transform {
							CtrlWShown = false,
							Inputs = {
								UseSizeAndAspect = Input { Value = 0, },
								XSize = Input { Expression = "1.0+(ChangeDepth1_1_1.Scale/2)", },
								YSize = Input { Expression = "1.0+(ChangeDepth1_1_1.ScaleY/2)", },
								Input = Input {
									SourceOp = "ChannelBooleans1_1_2_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 82, 72.2556 } },
						},
						ChannelBooleans1_1_2_1 = ChannelBoolean {
							CtrlWShown = false,
							Inputs = {
								ToRed = Input { Value = 15, },
								ToBlue = Input { Value = 15, },
								Background = Input {
									SourceOp = "DirectionalBlur1_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { -86, 72.2556 } },
						},
						DirectionalBlur1_1_1 = DirectionalBlur {
							CtrlWShown = false,
							Inputs = {
								Blend = Input {
									Value = 0,
									Expression = "iif(ChangeDepth2.GlobalBlend==0, 0,1.0-ChangeDepth1_1_1.PerformanceMode)",
								},
								Type = Input { Value = 3, },
								Length = Input { Expression = "0+(ChangeDepth1_1_1.Scale+ChangeDepth1_1_1.ScaleY)/4", },
								Input = Input {
									SourceOp = "ChangeDepth1_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { -230.72, 72.2556 } },
						},
						ChangeDepth1_1_1 = ChangeDepth {
							CtrlWShown = false,
							Inputs = {
								Dither = Input { Value = 2, },
								Input = Input {
									SourceOp = "VariBlur1",
									Source = "Output",
								},
								Amount = Input { Expression = "ChangeDepth2.LinearAberration", },
								Scale = Input { Expression = "ChangeDepth2.LensAberrationX", },
								ScaleY = Input { Expression = "ChangeDepth2.LensAberrationY", },
								soft = Input { Expression = "ChangeDepth2.LensSoftness", },
								PerformanceMode = Input {
									Value = 1,
									Expression = "ChangeDepth2.PerformanceMode",
								}
							},
							ViewInfo = OperatorInfo { Pos = { -352.643, 72.2556 } },
							UserControls = ordered() {
								Amount = {
									INP_MaxAllowed = 1000000,
									INP_Integer = false,
									INPID_InputControl = "SliderControl",
									INP_MaxScale = 0.504999995231628,
									INP_Default = 0.5,
									INP_MinScale = 0.495000004768372,
									INP_MinAllowed = -1000000,
									LINKID_DataType = "Number",
									ICS_ControlPage = "Controls",
									LINKS_Name = "Linear Aberration"
								},
								Scale = {
									INP_MaxAllowed = 1000000,
									INP_Integer = false,
									INPID_InputControl = "SliderControl",
									INP_MaxScale = 0.0500000007450581,
									INP_MinScale = 0,
									INP_MinAllowed = -1000000,
									LINKID_DataType = "Number",
									ICS_ControlPage = "Controls",
									ICD_Center = 0,
									LINKS_Name = "Lens Aberration X"
								},
								ScaleY = {
									INP_MaxAllowed = 1000000,
									INP_Integer = false,
									INPID_InputControl = "SliderControl",
									INP_MaxScale = 0.0500000007450581,
									INP_MinScale = 0,
									INP_MinAllowed = -1000000,
									LINKID_DataType = "Number",
									ICS_ControlPage = "Controls",
									LINKS_Name = "Lens Aberration Y"
								},
								soft = {
									INP_MaxAllowed = 1000000,
									INP_Integer = false,
									INPID_InputControl = "SliderControl",
									INP_MaxScale = 200,
									INP_Default = 0,
									INP_MinScale = 0,
									INP_MinAllowed = -1000000,
									LINKID_DataType = "Number",
									ICS_ControlPage = "Controls",
									LINKS_Name = "Lens Softenss"
								},
								PerformanceMode = {
									CBC_TriState = false,
									INP_Integer = true,
									INPID_InputControl = "CheckboxControl",
									INP_MaxScale = 1,
									INP_Default = 0,
									INP_MinScale = 0,
									LINKID_DataType = "Number",
									ICS_ControlPage = "Controls",
									LINKS_Name = "Performance Mode"
								}
							}
						},
						Instance_Blur1_3_1 = Blur {
							CtrlWShown = false,
							SourceOp = "Blur1_2_1",
							Inputs = {
								StartEndRenderScripts = Input { },
								EffectMask = Input { },
								Blend = Input { Expression = "ChangeDepth2.GlobalBlend" },
								XBlurSize = Input {
									Value = 0,
									Expression = "0.0+ChangeDepth1_1_1.Scale*ChangeDepth1_1_1.soft"
								},
								YBlurSize = Input {
									Value = 0,
									Expression = "0.0+ChangeDepth1_1_1.ScaleY*ChangeDepth1_1_1.soft"
								},
								Input = Input {
									SourceOp = "Transform2_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 233, 135.256 } },
						},
						ChannelBooleans3_1_1 = ChannelBoolean {
							CtrlWShown = false,
							Inputs = {
								Operation = Input { Value = 1, },
								ToAlpha = Input { Value = 4, },
								Background = Input {
									SourceOp = "ChannelBooleans2_1_1",
									Source = "Output",
								},
								Foreground = Input {
									SourceOp = "Instance_Blur1_3_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 381, 135.256 } },
						},
						ChannelBooleans1_2_1 = ChannelBoolean {
							CtrlWShown = false,
							Inputs = {
								ToGreen = Input { Value = 15, },
								ToBlue = Input { Value = 15, },
								Background = Input {
									SourceOp = "DirectionalBlur1_1_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { -86, 135.256 } },
						},
						Transform2_1_1 = Transform {
							CtrlWShown = false,
							Inputs = {
								Center = Input { Expression = "Point(1-Transform1_2_1.Center.X, 0.5)", },
								UseSizeAndAspect = Input { Value = 0, },
								Edges = Input { Value = 3, },
								Input = Input {
									SourceOp = "ChannelBooleans1_2_1",
									Source = "Output",
								},
							},
							ViewInfo = OperatorInfo { Pos = { 83, 135.256 } },
						}
					},
				},
				Mask_In = BitmapMask {
					CtrlWShown = false,
					Inputs = {
						Filter = Input { Value = FuID { "Fast Gaussian" }, },
						MaskWidth = Input { Value = 1920, },
						MaskHeight = Input { Value = 1080, },
						PixelAspect = Input { Value = { 1, 1 }, },
						ClippingMode = Input { Value = FuID { "None" }, },
						Material = Input { Value = 50, },
					},
					ViewInfo = OperatorInfo { Pos = { 405.44, 501.274 } },
				}
			},
		},
		Renderer3D1 = Renderer3D {
			CustomData = { ToolVersion = 2, },
			Inputs = {
				GlobalOut = Input { Value = 606, },
				Width = Input { Value = 3840, },
				Height = Input { Value = 2160, },
				UseFrameFormatSettings = Input { Value = 1, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				SceneInput = Input {
					SourceOp = "Text3D1",
					Source = "Output",
				},
				RendererType = Input { Value = FuID { "RendererOpenGL" }, },
				["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
				["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
				["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
				["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
			},
			ViewInfo = OperatorInfo { Pos = { 295.747, -57.3547 } },
			SubInputsData = {
				RendererOpenGL = {
					Version = 1
				}
			}
		},
		Merge3 = Merge {
			Inputs = {
				Background = Input {
					SourceOp = "MediaIn1",
					Source = "Output",
				},
				Foreground = Input {
					SourceOp = "Dissolve2",
					Source = "Output",
				},
				PerformDepthMerge = Input { Value = 0, },
			},
			ViewInfo = OperatorInfo { Pos = { 455.752, 45.9134 } },
		},
		MediaOut1 = MediaOut {
			Inputs = {
				Index = Input { Value = "0", },
				Input = Input {
					SourceOp = "Merge3",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 704.249, 85.4099 } },
		}
	}
}

User avatar
Movalex
Sir Requestalot
Posts: 136
Joined: Fri Nov 03, 2017 5:36 am
Answers: 2
Been thanked: 39 times
Contact:

Re: Refracting Watermark Text over Video?

#7

Post by Movalex » Sat Nov 09, 2019 6:41 am

You can make this tool a bit faster (approximately 30-50% to my tests) by changing initial change bit depth to 16 float. For me the changes are indistinguishable.
ChromaticDisplacement_16f.setting
You do not have the required permissions to view the files attached to this post.

User avatar
Millolab
Fusioneer
Posts: 123
Joined: Wed Oct 24, 2018 6:26 am
Been thanked: 27 times

Re: Refracting Watermark Text over Video?

#8

Post by Millolab » Sat Nov 09, 2019 7:19 am

Movalex wrote:
Sat Nov 09, 2019 6:41 am
You can make this tool a bit faster (approximately 30-50% to my tests) by changing initial change bit depth to 16 float. For me the changes are indistinguishable.
ChromaticDisplacement_16f.setting
Well, in my tests the 16bit float wasn’t enough most of the time. But I should add the possibility to switch, actually. Good idea Alex!