Welcome to WSL!

Make yourself at home, but before posting, please may I ask you to read the following topics.


Posting 101
Server space, screenshots, and you

Thank you!

PS. please pretty please:


Image

[Submission] MT_FringeFighterTurbo  [SUBMITTED]

Moderator: SecondMan

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

[Submission] MT_FringeFighterTurbo

#1

Post by Midgardsormr » Thu Jul 02, 2020 3:59 pm

Fringe Fighter Turbo emulates Nuke's Disjoint Over apply mode. Useful to handle the artifacting that appears when you merge smoke with holdout geo on top of the rendered geo (most noticeable with lots of motion blur).

by Dan De'Etremont for Muse VFX
http://www.musevfx.com

compareA.jpg
compareB.jpg

Changelog

v1.0 - 2020-July-02
[*]First public release

Atom file contents:

Code: Select all

Atom {
	Name = "Fringe Fighter Turbo",
	Category = "Tools/Composite",
	Author = "Dan De'Etremont",
	Version = 1,
	Date = {2020, 7, 2},
	Description = [[<p>Fringe Fighter Turbo emulates Nuke's Disjoint Over apply mode. Useful to handle the artifacting that appears when you merge smoke with holdout geo on top of the rendered geo (most noticeable with lots of motion blur).</p>

<p>Find it in Macros/Composite</p>

by Dan De'Etremont for Muse VFX]],
	Deploy = {
		"Macros/Composite/MT_FringeFighterTurbo.setting",
	},
}
Atom directory:
com.MuseVFX.FringeFighterTurbo.zip
You do not have the required permissions to view the files attached to this post.

User avatar
SecondMan
Site Admin
Posts: 4503
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 122 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#2

Post by SecondMan » Thu Jul 02, 2020 7:58 pm

What a delightfully descriptive name ;)

Submitted, thanks! :cheer:

User avatar
Kristof
Fusionista
Posts: 787
Joined: Thu Aug 07, 2014 1:30 pm
Answers: 2
Been thanked: 24 times

Re: [Submission] MT_FringeFighterTurbo

#3

Post by Kristof » Thu Jul 02, 2020 11:46 pm

Hey BMD, disjoint-over should be the default merge operation in a Merge node.

User avatar
SecondMan
Site Admin
Posts: 4503
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 122 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#4

Post by SecondMan » Fri Jul 03, 2020 1:32 am

It's handy to have, but it shouldn't be the default. Disjoint-over doesn't work for overlapping transparent objects. It's a very case-specific merge operation (it combines two different ones based on alpha values) specifically for non-overlapping objects.

Here's an example:

Code: Select all

{
	Tools = ordered() {
		Background1_1 = Background {
			Inputs = {
				EffectMask = Input {
					SourceOp = "Ellipse1_1",
					Source = "Mask",
				},
				Width = Input { Value = 1920, },
				Height = Input { Value = 1080, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				TopLeftRed = Input { Value = 0.48365, },
				TopLeftGreen = Input { Value = 0.5774356, },
				TopLeftBlue = Input { Value = 0.85, },
				TopLeftAlpha = Input { Value = 0.4, },
			},
			ViewInfo = OperatorInfo { Pos = { 330, -16.5 } },
		},
		Ellipse1_1 = EllipseMask {
			Inputs = {
				Filter = Input { Value = FuID { "Fast Gaussian" }, },
				SoftEdge = Input { Value = 0.0043, },
				MaskWidth = Input { Value = 1920, },
				MaskHeight = Input { Value = 1080, },
				PixelAspect = Input { Value = { 1, 1 }, },
				ClippingMode = Input { Value = FuID { "None" }, },
				Center = Input { Value = { 0.396755162241888, 0.5 }, },
				Width = Input { Value = 0.304349879880853, },
				Height = Input { Value = 0.304349879880853, },
			},
			ViewInfo = OperatorInfo { Pos = { 330, -49.5 } },
		},
		Ellipse1 = EllipseMask {
			Inputs = {
				Filter = Input { Value = FuID { "Fast Gaussian" }, },
				SoftEdge = Input { Value = 0.0043, },
				MaskWidth = Input { Value = 1920, },
				MaskHeight = Input { Value = 1080, },
				PixelAspect = Input { Value = { 1, 1 }, },
				ClippingMode = Input { Value = FuID { "None" }, },
				Center = Input { Value = { 0.585545722713864, 0.5 }, },
				Width = Input { Value = 0.448697681112542, },
				Height = Input { Value = 0.448697681112542, },
			},
			ViewInfo = OperatorInfo { Pos = { 220, 16.5 } },
		},
		Background1 = Background {
			Inputs = {
				Width = Input { Value = 1920, },
				Height = Input { Value = 1080, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				TopLeftRed = Input { Value = 0.85, },
				TopLeftGreen = Input { Value = 0.48365, },
				TopLeftBlue = Input { Value = 0.48365, },
				TopLeftAlpha = Input { Value = 0.4, },
				EffectMask = Input {
					SourceOp = "Ellipse1",
					Source = "Mask",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 220, 49.5 } },
		},
		Merge1 = Merge {
			CtrlWZoom = false,
			Inputs = {
				Background = Input {
					SourceOp = "Background1",
					Source = "Output",
				},
				Foreground = Input {
					SourceOp = "Background1_1",
					Source = "Output",
				},
				PerformDepthMerge = Input { Value = 0, },
			},
			ViewInfo = OperatorInfo { Pos = { 385, 82.5 } },
		},
		FringeFighterTurbo1 = MacroOperator {
			Inputs = ordered() {
				Comments = Input { Value = "Fringer Fighter Turbo emulates Nuke's Disjoint Over apply mode. Useful to handle the artifacting that appears when you merge smoke with holdout geo on top of the rendered geo (most noticeable with lots of motion blur).\n\nby Dan De'Etremont for Muse VFX\nhttp://www.musevfx.com\n", },
				Background = InstanceInput {
					SourceOp = "FringeFighterTurbo",
					Source = "Image1",
					Name = "BG",
				},
				Foreground = InstanceInput {
					SourceOp = "FringeFighterTurbo",
					Source = "Image2",
					Name = "FG",
				},
				Blend = InstanceInput {
					SourceOp = "FringeFighterTurbo",
					Source = "Blend",
					Default = 1,
				},
				EffectMask = InstanceInput {
					SourceOp = "FringeFighterTurbo",
					Source = "EffectMask",
				}
			},
			Outputs = {
				Output = InstanceOutput {
					SourceOp = "FringeFighterTurbo",
					Source = "Output",
				}
			},
			ViewInfo = GroupInfo { Pos = { 495, 49.5 } },
			Tools = ordered() {
				FringeFighterTurbo = Custom {
					CtrlWZoom = false,
					CtrlWShown = false,
					NameSet = true,
					CustomData = {
						Settings = {
							[1] = {
								Tools = ordered() {
									CustomTool1 = Custom {
										Inputs = {
											LUTIn3 = Input {
												SourceOp = "CustomTool1LUTIn3",
												Source = "Value"
											},
											LUTIn1 = Input {
												SourceOp = "CustomTool1LUTIn1",
												Source = "Value"
											},
											Image1 = Input {
												SourceOp = "TimeSpeed1",
												Source = "Output"
											},
											Image2 = Input {
												SourceOp = "ChangeDepth1_1",
												Source = "Output"
											},
											LUTIn4 = Input {
												SourceOp = "CustomTool1LUTIn4",
												Source = "Value"
											},
											LUTIn2 = Input {
												SourceOp = "CustomTool1LUTIn2",
												Source = "Value"
											}
										},
										Name = "CustomTool1",
										CtrlWZoom = false,
										ViewInfo = OperatorInfo { Pos = { 550, 181.5 } },
										CustomData = {
										}
									},
									CustomTool1LUTIn1 = LUTBezier {
										Name = "CustomTool1LUTIn1",
										NameSet = true,
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										SplineColor = { Green = 0, Blue = 0, Red = 204 }
									},
									CustomTool1LUTIn2 = LUTBezier {
										Name = "CustomTool1LUTIn2",
										NameSet = true,
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										SplineColor = { Green = 204, Blue = 0, Red = 0 }
									},
									CustomTool1LUTIn3 = LUTBezier {
										Name = "CustomTool1LUTIn3",
										NameSet = true,
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										SplineColor = { Green = 0, Blue = 204, Red = 0 }
									},
									CustomTool1LUTIn4 = LUTBezier {
										Name = "CustomTool1LUTIn4",
										NameSet = true,
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										SplineColor = { Green = 204, Blue = 204, Red = 204 }
									}
								}
							},
							[2] = {
								Tools = ordered() {
									CustomTool1 = Custom {
										Inputs = {
											LUTIn3 = Input {
												SourceOp = "CustomTool1LUTIn3",
												Source = "Value"
											},
											LUTIn4 = Input {
												SourceOp = "CustomTool1LUTIn4",
												Source = "Value"
											},
											Image2 = Input {
												SourceOp = "ChangeDepth1_1",
												Source = "Output"
											},
											RedExpression = Input { Value = "c1-c2" },
											GreenExpression = Input { Value = "c1-c2" },
											LUTIn1 = Input {
												SourceOp = "CustomTool1LUTIn1",
												Source = "Value"
											},
											Image1 = Input {
												SourceOp = "TimeSpeed1",
												Source = "Output"
											},
											BlueExpression = Input { Value = "c1-c2" },
											LUTIn2 = Input {
												SourceOp = "CustomTool1LUTIn2",
												Source = "Value"
											}
										},
										CtrlWZoom = false,
										ViewInfo = OperatorInfo { Pos = { 550, 181.5 } },
										CustomData = {
										}
									},
									CustomTool1LUTIn1 = LUTBezier {
										SplineColor = { Green = 0, Blue = 0, Red = 204 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									},
									CustomTool1LUTIn2 = LUTBezier {
										SplineColor = { Green = 204, Blue = 0, Red = 0 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									},
									CustomTool1LUTIn3 = LUTBezier {
										SplineColor = { Green = 0, Blue = 204, Red = 0 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									},
									CustomTool1LUTIn4 = LUTBezier {
										SplineColor = { Green = 204, Blue = 204, Red = 204 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									}
								}
							},
							[3] = {
								Tools = ordered() {
									CustomTool1 = Custom {
										Inputs = {
											LUTIn3 = Input {
												SourceOp = "CustomTool1LUTIn3",
												Source = "Value"
											},
											LUTIn4 = Input {
												SourceOp = "CustomTool1LUTIn4",
												Source = "Value"
											},
											Image2 = Input {
												SourceOp = "ChangeDepth1_1",
												Source = "Output"
											},
											RedExpression = Input { Value = "c1+c2" },
											GreenExpression = Input { Value = "c1+c2" },
											LUTIn1 = Input {
												SourceOp = "CustomTool1LUTIn1",
												Source = "Value"
											},
											Image1 = Input {
												SourceOp = "TimeSpeed1",
												Source = "Output"
											},
											BlueExpression = Input { Value = "c1+c2" },
											LUTIn2 = Input {
												SourceOp = "CustomTool1LUTIn2",
												Source = "Value"
											}
										},
										CtrlWZoom = false,
										ViewInfo = OperatorInfo { Pos = { 550, 181.5 } },
										CustomData = {
										}
									},
									CustomTool1LUTIn1 = LUTBezier {
										SplineColor = { Green = 0, Blue = 0, Red = 204 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									},
									CustomTool1LUTIn2 = LUTBezier {
										SplineColor = { Green = 204, Blue = 0, Red = 0 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									},
									CustomTool1LUTIn3 = LUTBezier {
										SplineColor = { Green = 0, Blue = 204, Red = 0 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									},
									CustomTool1LUTIn4 = LUTBezier {
										SplineColor = { Green = 204, Blue = 204, Red = 204 },
										KeyColorSplines = {
											[0] = {
												[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
												[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
											}
										},
										NameSet = true
									}
								}
							}
						}
					},
					Inputs = {
						LUTIn1 = Input {
							SourceOp = "CustomTool1LUTIn1",
							Source = "Value",
						},
						LUTIn2 = Input {
							SourceOp = "CustomTool1LUTIn2",
							Source = "Value",
						},
						LUTIn3 = Input {
							SourceOp = "CustomTool1LUTIn3",
							Source = "Value",
						},
						LUTIn4 = Input {
							SourceOp = "CustomTool1LUTIn4",
							Source = "Value",
						},
						RedExpression = Input { Value = "if(a2+a1<1, c2+c1, (c2+c1*(1-a2)/a1))", },
						GreenExpression = Input { Value = "if(a2+a1<1, c2+c1, (c2+c1*(1-a2)/a1))", },
						BlueExpression = Input { Value = "if(a2+a1<1, c2+c1, (c2+c1*(1-a2)/a1))", },
						AlphaExpression = Input { Value = "if(a2+a1<1, c2+c1, (c2+c1*(1-a2)/a1))", },
						Image1 = Input {
							SourceOp = "Background1",
							Source = "Output",
						},
						Image2 = Input {
							SourceOp = "Background1_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
				},
				CustomTool1LUTIn1 = LUTBezier {
					KeyColorSplines = {
						[0] = {
							[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
							[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
						}
					},
					SplineColor = { Red = 204, Green = 0, Blue = 0 },
				},
				CustomTool1LUTIn2 = LUTBezier {
					KeyColorSplines = {
						[0] = {
							[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
							[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
						}
					},
					SplineColor = { Red = 0, Green = 204, Blue = 0 },
				},
				CustomTool1LUTIn3 = LUTBezier {
					KeyColorSplines = {
						[0] = {
							[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
							[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
						}
					},
					SplineColor = { Red = 0, Green = 0, Blue = 204 },
				},
				CustomTool1LUTIn4 = LUTBezier {
					KeyColorSplines = {
						[0] = {
							[0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
							[1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
						}
					},
					SplineColor = { Red = 204, Green = 204, Blue = 204 },
				}
			},
		}
	}
}
which also shows an issue with the Macro - @Midgardsormr, FringeFighter takes the DoD of the BG rather than the union of FG and BG.

User avatar
Movalex
Sir Requestalot
Posts: 243
Joined: Fri Nov 03, 2017 5:36 am
Answers: 4
Been thanked: 43 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#5

Post by Movalex » Fri Jul 03, 2020 1:45 am

They say set Burn In to 1 will have the same effect in Fusion as Nuke's Disjoint Over merge. Is it true?

User avatar
Kristof
Fusionista
Posts: 787
Joined: Thu Aug 07, 2014 1:30 pm
Answers: 2
Been thanked: 24 times

Re: [Submission] MT_FringeFighterTurbo

#6

Post by Kristof » Fri Jul 03, 2020 1:47 am

I disagree. I'm aware of that (the math behind it is easy to understand), but with the work I do most, it is by far the best default solution. It's not even an option, which is actually the main point I was trying to make. A Disjoint-Over function should be added by BMD.

User avatar
SecondMan
Site Admin
Posts: 4503
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 122 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#7

Post by SecondMan » Fri Jul 03, 2020 1:58 am

Movalex wrote:
Fri Jul 03, 2020 1:45 am
Is it true?
It's not true :)

Burn-in of 1 will be the same as a Boolean Add (for an additive Merge), no matter the values of your alpha channels, whereas Disjoint-Over depends on those and be a combination of an Add and an Over.

User avatar
SecondMan
Site Admin
Posts: 4503
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 122 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#8

Post by SecondMan » Fri Jul 03, 2020 2:06 am

Kristof wrote:
Fri Jul 03, 2020 1:47 am
with the work I do most, it is by far the best default solution
That may well be true for your particular case, but simply merging a transparent key on a partly transparent background (say a fast moving airplane or Superman with long hair on top of a wispy cloud) will look very wrong - or not yield the expected result - with Disjoint-Over.

Over:

Image

Disjoint-Over:

Image

Images courtesy of Hollywood Camera Work

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

Re: [Submission] MT_FringeFighterTurbo  [SUBMITTED]

#9

Post by Midgardsormr » Fri Jul 03, 2020 8:07 am

SecondMan wrote:
Fri Jul 03, 2020 1:32 am
FringeFighter takes the DoD of the BG rather than the union of FG and BG.
Curious. I'm not sure if there's anything in the CustomTool itself that could change that behavior, but here's an update with a SetDomain in the input, and cleaner code in the .setting file:

Atom file contents:

Code: Select all

Atom {
	Name = "Fringe Fighter Turbo",
	Category = "Tools/Composite",
	Author = "Dan De'Etremont",
	Version = 1.1,
	Date = {2020, 7, 2},
	Description = [[<p>Fringe Fighter Turbo emulates Nuke's Disjoint Over apply mode. Useful to handle the artifacting that appears when you merge smoke with holdout geo on top of the rendered geo (most noticeable with lots of motion blur).</p>

<p>Find it in Macros/Composite</p>

by Dan De'Etremont for Muse VFX]],
	Deploy = {
		"Macros/Composite/MT_FringeFighterTurbo.setting",
	},
}
Atom directory:
com.MuseVFX.FringeFighterTurbo.zip
You do not have the required permissions to view the files attached to this post.

User avatar
SecondMan
Site Admin
Posts: 4503
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 122 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#10

Post by SecondMan » Fri Jul 03, 2020 10:13 am

Thanks for the update, submitted! :cheer:

User avatar
Millolab
Fusionista
Posts: 579
Joined: Wed Oct 24, 2018 6:26 am
Answers: 3
Been thanked: 84 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#11

Post by Millolab » Fri Jul 10, 2020 7:54 am

@Midgardsormr I did my own version of this adding some more blend modes from Nuke. I came up to a simple solution for the DoD issue, maybe could help.
ml_Blend.setting
You do not have the required permissions to view the files attached to this post.

User avatar
Kristof
Fusionista
Posts: 787
Joined: Thu Aug 07, 2014 1:30 pm
Answers: 2
Been thanked: 24 times

Re: [Submission] MT_FringeFighterTurbo

#12

Post by Kristof » Fri Jul 10, 2020 8:48 am

SecondMan wrote:
Fri Jul 03, 2020 2:06 am
Kristof wrote:
Fri Jul 03, 2020 1:47 am
with the work I do most, it is by far the best default solution
That may well be true for your particular case, but simply merging a transparent key on a partly transparent background (say a fast moving airplane or Superman with long hair on top of a wispy cloud) will look very wrong - or not yield the expected result - with Disjoint-Over.

Over:

Image

Disjoint-Over:

Image

Images courtesy of Hollywood Camera Work
That's exactly what I said. And I rephrased my point (see above).

re the DoD and a custom tool, I brought it up a long time ago but I got a response along the lines of "this is normal." I don't think it is. I'd expect it to deal with the union Dod of BG and FG when dealing with 2 inputs. The disjoint-over macro I use also has a set domain in it. I'd love to see a custom tool take care of this though.

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

Re: [Submission] MT_FringeFighterTurbo

#13

Post by Midgardsormr » Fri Jul 10, 2020 9:03 am

Millolab wrote:
Fri Jul 10, 2020 7:54 am
I came up to a simple solution for the DoD issue, maybe could help.
I think a BrightnessContrast with Alpha checked and Gain 0 would be more efficient than adding two more CustomTools. CT's expensive. Interesting use of expressions on the expression fields, though. Never thought of that. I'd probably have just used Dissolves to choose from several different CTs.

In any case, I think the SetDomain I used in the revised version is the most straightforward solution, since it's the tool designed for that purpose.

User avatar
Millolab
Fusionista
Posts: 579
Joined: Wed Oct 24, 2018 6:26 am
Answers: 3
Been thanked: 84 times
Contact:

Re: [Submission] MT_FringeFighterTurbo

#14

Post by Millolab » Fri Jul 10, 2020 9:16 am

Midgardsormr wrote:
Fri Jul 10, 2020 9:03 am
I think a BrightnessContrast with Alpha checked and Gain 0 would be more efficient than adding two more CustomTools. CT's expensive. Interesting use of expressions on the expression fields, though. Never thought of that. I'd probably have just used Dissolves to choose from several different CTs.

In any case, I think the SetDomain I used in the revised version is the most straightforward solution, since it's the tool designed for that purpose.
I totally missed the latest update!

I tried using a ChannelBooleans set to Clear but it was more expensive than the CT. Will try the BC. :)

User avatar
Chad
Fusionator
Posts: 1496
Joined: Fri Aug 08, 2014 1:11 pm
Been thanked: 12 times

Re: [Submission] MT_FringeFighterTurbo

#15

Post by Chad » Wed Jul 22, 2020 2:43 pm

It's called ROIDS for a reason.