Page 1 of 3

wireless connections for everybody.

Posted: Sat Feb 16, 2019 8:13 am
by andromeda_girl
I want to start using the wireless link node... but it is just for 2D nodes.
I want to unclutter my comps where my models have a mountain of spiderwebs from so many objects and surface shaders.

as one can see from the screengrab, the 3D merge bringing all the mesh together [plus the surfacing work] has somewhere between two and a hundred inputs and I have only got 1/4 of this completed so far.

Image

I haven't tried a wireless link tool yet because I already see a few problems that stop me:
- wireless link (WiL) 2D tool
- wireless link (Wire) 2D tool
-wireless linky (WiLy) multiple inputs, 2D tool

I'd need to have the ability to have my 3D merge 'become' a wireless link, and the same for shaders so they can spread out to the many different material nodes- but it seems the wireless link is specific to 2D tools only.

is there any hope of this being possible?
what if -any- tool could have a 'wireless link' feature turned on for it?

I am not talking about hiding all connections or having all connections visible; but the ability to just hide inputs on a selected tool- could be a simple radio connection button to turn on and off wireless connections- and, perhaps the connections could 'ghost-on' in a coloured wire when you mouse over the tool with the wireless connections- a way to just see what they are.

(sorry, not a programmer. I leave that to the ones who can do math in their head)

I think this could be a real big help for everyone.
:)

Au

Re: wireless connections for everybody.

Posted: Sat Feb 16, 2019 9:26 am
by SecondMan
Well, for starters there are 3D and Material Wireless link nodes in Reactor... :)

Wireless Merge3D wouldn't be a terrible thing to have... Hmm...

I like the idea for hovering over nodes to make connections visible. Would love to see something similar for expression links.

Re: wireless connections for everybody.

Posted: Sat Feb 16, 2019 9:48 am
by intelligent machine
There is a Wireless 3D and Wireless Material 3D available in Reactor.
I just made a simple macro out of duplicate Wireless 3D nodes connected to a Merge 3D:

Code: Select all

{
	Tools = ordered() {
		Shape3D1 = Shape3D {
			CtrlWZoom = false,
			Inputs = {
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
				Shape = Input { Value = FuID { "SurfaceCylinderInputs" }, },
				["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0, },
				["MtlStdInputs.MaterialID"] = Input { Value = 1, },
				["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 4, }
			},
			ViewInfo = OperatorInfo { Pos = { 55, 16.5 } },
		},
		Shape3D1_1 = Shape3D {
			Inputs = {
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
				["Transform3DOp.Translate.X"] = Input { Value = -1.95398403676724, },
				Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
				["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0, },
				["MtlStdInputs.MaterialID"] = Input { Value = 1, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, }
			},
			ViewInfo = OperatorInfo { Pos = { 165, 16.5 } },
		},
		WirelessMerge3D = GroupOperator {
			Inputs = ordered() {
				Input1 = InstanceInput {
					SourceOp = "WirelessLink3DMerge3_1",
					Source = "Input",
				},
				Input2 = InstanceInput {
					SourceOp = "WirelessLink3DMerge4_1",
					Source = "Input",
				},
				Input3 = InstanceInput {
					SourceOp = "WirelessLink3DMerge5_1",
					Source = "Input",
				},
				Input4 = InstanceInput {
					SourceOp = "WirelessLink3DMerge2_1",
					Source = "Input",
				},
				Input5 = InstanceInput {
					SourceOp = "WirelessLink3DMerge1_1",
					Source = "Input",
				},
				Input6 = InstanceInput {
					SourceOp = "WirelessLink3DMerge7_1",
					Source = "Input",
				},
				Input7 = InstanceInput {
					SourceOp = "WirelessLink3DMerge6_1",
					Source = "Input",
				},
				Input8 = InstanceInput {
					SourceOp = "WirelessLink3DMerge8_1",
					Source = "Input",
				},
				Input9 = InstanceInput {
					SourceOp = "WirelessLink3DMerge9_1",
					Source = "Input",
				},
				Input10 = InstanceInput {
					SourceOp = "WirelessLink3DMerge10_1",
					Source = "Input",
				}
			},
			Outputs = {
				MainOutput1 = InstanceOutput {
					SourceOp = "Merge3D2_1",
					Source = "Output",
				}
			},
			ViewInfo = GroupInfo {
				Pos = { 165, 148.5 },
				Flags = {
					AllowPan = false,
					ForceSource = true,
					GridSnap = true,
					AutoSnap = true
				},
				Size = { 291, 361.3, 145.5, 22 },
				Direction = "Horizontal",
				PipeStyle = "Orthogonal",
				Scale = 1,
				Offset = { 0, 0 }
			},
			Tools = ordered() {
				WirelessLink3DMerge3_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "Shape3D1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -82.5, 76.15 } },
				},
				WirelessLink3DMerge4_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "Shape3D1_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -82.5, 109.15 } },
				},
				WirelessLink3DMerge5_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					Inputs = {
						Input = Input {
							SourceOp = "Shape3D1_2",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { -82.5, 142.15 } },
				},
				WirelessLink3DMerge2_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 43.15 } },
				},
				WirelessLink3DMerge1_1 = Fuse.Wireless3D {
					CtrlWZoom = false,
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 10.15 } },
				},
				WirelessLink3DMerge7_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 208.15 } },
				},
				WirelessLink3DMerge6_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 175.15 } },
				},
				WirelessLink3DMerge8_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 241.15 } },
				},
				WirelessLink3DMerge9_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 274.15 } },
				},
				WirelessLink3DMerge10_1 = Fuse.Wireless3D {
					CtrlWShown = false,
					NameSet = true,
					ViewInfo = OperatorInfo { Pos = { -82.5, 307.15 } },
				},
				Merge3D2_1 = Merge3D {
					CtrlWZoom = false,
					CtrlWShown = false,
					Inputs = {
						SceneInput1 = Input {
							SourceOp = "WirelessLink3DMerge1_1",
							Source = "Output",
						},
						SceneInput2 = Input {
							SourceOp = "WirelessLink3DMerge2_1",
							Source = "Output",
						},
						SceneInput3 = Input {
							SourceOp = "WirelessLink3DMerge3_1",
							Source = "Output",
						},
						SceneInput10 = Input {
							SourceOp = "WirelessLink3DMerge10_1",
							Source = "Output",
						},
						SceneInput9 = Input {
							SourceOp = "WirelessLink3DMerge9_1",
							Source = "Output",
						},
						SceneInput6 = Input {
							SourceOp = "WirelessLink3DMerge6_1",
							Source = "Output",
						},
						SceneInput5 = Input {
							SourceOp = "WirelessLink3DMerge5_1",
							Source = "Output",
						},
						SceneInput8 = Input {
							SourceOp = "WirelessLink3DMerge8_1",
							Source = "Output",
						},
						SceneInput7 = Input {
							SourceOp = "WirelessLink3DMerge7_1",
							Source = "Output",
						},
						SceneInput4 = Input {
							SourceOp = "WirelessLink3DMerge4_1",
							Source = "Output",
						},
					},
					ViewInfo = OperatorInfo { Pos = { 82.5, 142.15 } },
				}
			},
		},
		Shape3D1_2 = Shape3D {
			CtrlWZoom = false,
			Inputs = {
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, },
				["Transform3DOp.Translate.X"] = Input { Value = 3.50121251528827, },
				Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
				["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0, },
				["MtlStdInputs.MaterialID"] = Input { Value = 1, },
				["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 3, }
			},
			ViewInfo = OperatorInfo { Pos = { 275, 16.5 } },
		}
	}
}

Re: wireless connections for everybody.

Posted: Sat Feb 16, 2019 9:51 am
by intelligent machine
@SecondMan beats me to it again. I need to start refreshing the before submitting!
Would be cool if there was an AJAX refresh feature so the pages would update automatically as new posts arrive.

Re: wireless connections for everybody.

Posted: Sat Feb 16, 2019 9:53 am
by Midgardsormr
Whenever I submit and there's a new post in the thread, the forum alerts me to it and makes me confirm the submission. It doesn't do that for you? edit: Maybe it doesn't work with the quick reply box...

Re: wireless connections for everybody.

Posted: Sat Feb 16, 2019 9:55 am
by intelligent machine
It probably does but I never paid attention...haha. I just hit submit again...thought it was a glitch!

Re: wireless connections for everybody.

Posted: Sat Feb 16, 2019 10:20 am
by intelligent machine
Another useful feature to add to all the Wireless nodes are buttons next to the link field to "jump to" and edit source. I know you can right-click on the input and select "edit" to bring up the tool parameters but a button to "jump to" the node in the flow would help (either in addition to a wired/wireless toggle or in place of).

Re: wireless connections for everybody.

Posted: Sun Feb 17, 2019 3:43 am
by thibaud
I see nothing wrong in this screenshot, add a few 3dmerge and everything gets tidy
// rant on
I'm a fervent opposant of the wireless concept.
I hope I shall never never have to open a flow contaminated with this heresy in my life.
Wires are the very foundation of the node based paradigm, erasing them annihilates the concept and just opens a can of worms when trying to fix things up

Re: wireless connections for everybody.

Posted: Sun Feb 17, 2019 12:30 pm
by SecondMan
intelligent machine wrote:
Sat Feb 16, 2019 10:20 am
Another useful feature to add to all the Wireless nodes are buttons next to the link field to "jump to" and edit source.
The ones available in Reactor have that already.

Re: wireless connections for everybody.

Posted: Sun Feb 17, 2019 5:00 pm
by gez
Now that you mention it, in the last project I did I found that the bitmap nodes couldn't be picked up by wireless nodes. Bug?

Re: wireless connections for everybody.

Posted: Sun Feb 17, 2019 5:55 pm
by intelligent machine
gez wrote:
Sun Feb 17, 2019 5:00 pm
Now that you mention it, in the last project I did I found that the bitmap nodes couldn't be picked up by wireless nodes. Bug?
The datatype of the fuse is set to "Image". For a quick fix you can simply duplicate the .fuse file and change the naming in it to something like "Wireless Mask Link" and set the datatype to "Mask".
Feature request: Make the input nonspecific and determine what to do after the input is received.

For something like a mask I'd usually copy and paste as an instance so I can see what is being driven anyway.

A few ways that Wireless Links come in really handy (for me):
I have motion graphics projects where I want to store the client branding in one part of the flow so if I need to swap colors throughout I just work with a few nodes in that one area. I have a series of backgrounds that are all solid colors and maybe a few gradients that will be reused over and over and over. They aren't connected to anything as they are just treated as source material. Wireless links are then added as the source for different parts of the flow. Since there are at a source point, no backtracking is usually necessary.

The same applies to outside source material. Instead of loading the exact same material in multiple loaders you can link one loader to many parts of the flow and deal with masking after the node.

Another concept is to setup a series of wireless links whose outputs are not connected to anything at all. Then I can drop in various checkpoints from the the main flow and use the wireless links for spot checking.

Re: wireless connections for everybody.

Posted: Sun Feb 17, 2019 10:59 pm
by SecondMan
Some interesting uses there, thanks! I like the spot checking one...
intelligent machine wrote:
Sun Feb 17, 2019 5:55 pm
Feature request: Make the input nonspecific and determine what to do after the input is received.
Ah, been explored... the Holy Grail of the Wireless Workflow... take a look here and here. So close, yet so far away. But perhaps it may see the light of day in an upcoming version of Fusion.

Re: wireless connections for everybody.

Posted: Mon Feb 18, 2019 2:05 am
by intelligent machine
I started fiddling with an idea for a universal wireless tool. Multiple input types in one tool - hidden/revealed from a dropdown list. I have the field types working but still need to figure out connecting the appropriate output.

Re: wireless connections for everybody.

Posted: Mon Feb 18, 2019 2:12 am
by intelligent machine
SecondMan wrote:
Sun Feb 17, 2019 10:59 pm
...an upcoming version of Fusion.
I'd love to know more about that :D

Re: wireless connections for everybody.

Posted: Mon Feb 18, 2019 2:39 am
by gez
intelligent machine wrote:
Sun Feb 17, 2019 5:55 pm
The datatype of the fuse is set to "Image". For a quick fix you can simply duplicate the .fuse file and change the naming in it to something like "Wireless Mask Link" and set the datatype to "Mask".
Feature request: Make the input nonspecific and determine what to do after the input is received.

For something like a mask I'd usually copy and paste as an instance so I can see what is being driven anyway.
Ah, cool.
Another way I was thinking was to merge/boolean the output of the bitmap node over a bg.

intelligent machine wrote:
Sun Feb 17, 2019 5:55 pm
A few ways that Wireless Links come in really handy (for me):
I have motion graphics projects where I want to store the client branding in one part of the flow so if I need to swap colors throughout I just work with a few nodes in that one area. I have a series of backgrounds that are all solid colors and maybe a few gradients that will be reused over and over and over. They aren't connected to anything as they are just treated as source material. Wireless links are then added as the source for different parts of the flow. Since there are at a source point, no backtracking is usually necessary.

The same applies to outside source material. Instead of loading the exact same material in multiple loaders you can link one loader to many parts of the flow and deal with masking after the node.
I'm doing mostly motion graphics work and I use wireless links exactly for that.
Re-utilizing the same assets multiple times in the composite as if they were individual loaders is super handy and it keeps the flow clean and tight.
In the last work I shared in the theather section I used it for two different textures I overlaid on different objects of the composite several time and for a little animation of two drops I used also several times in the comp changing their colour.
They are instances of the same object, but as they are used as entry points there's no need to track down the original part of the composite (although the fuse allows that if I needed to).
intelligent machine wrote:
Sun Feb 17, 2019 5:55 pm
Another concept is to setup a series of wireless links whose outputs are not connected to anything at all. Then I can drop in various checkpoints from the the main flow and use the wireless links for spot checking.
Sweet. That's a great idea.
intelligent machine wrote:
Mon Feb 18, 2019 2:12 am
SecondMan wrote:
Sun Feb 17, 2019 10:59 pm
...an upcoming version of Fusion.
I'd love to know more about that :D
Me too!