Resolve 15 Fusion 3D mattes and masks

• Author
• Message

Steve McDonald

• Posts: 23
• Joined: Tue Oct 25, 2016 1:43 pm
• Location: McKinney, TX
I have a two part question: I am trying to figure out how to (1) apply a polygon mask to 3Dtext (before it is 3Drendered) and then (2) use the masked part of the 3D text as a mask/matte to another 3D object. I am stumped. Does anything have any ideas?

Sander de Regt

• Posts: 1267
• Joined: Thu Nov 13, 2014 10:09 pm
Yes. Try something else. By it's very nature you cannot mask a 3D object (that exists in 3D space) with a 2D object (the polygon) without turning the 3D object in a 2D object (by rendering it) A polyline has no depth, how could it mask a 3D object?

Maybe if you explain the result you're after we could help you in achieving that look in a way that is actually possible Sander de Regt

The Netherlands

Bryan Ray

• Posts: 970
• Joined: Mon Nov 28, 2016 5:32 am
• Location: Los Angeles, CA, USA
You could do a projection of the mask onto the text. Something like this:

Code: Select all
`{   Tools = ordered() {      Bitmap1 = BitmapMask {         Inputs = {            SoftEdge = Input { Value = 0.0171, },            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 = "Rectangle1",               Source = "Mask",            },            Center = Input { Value = { 0.64367816091954, 0.5 }, },         },         ViewInfo = OperatorInfo { Pos = { 715, 82.5 } },      },      Transform1 = Transform {         CtrlWZoom = false,         Inputs = {            Center = Input { Value = { 0.375404094827586, 0.5 }, },            Input = Input {               SourceOp = "Bitmap1",               Source = "Mask",            },         },         ViewInfo = OperatorInfo { Pos = { 715, 115.5 } },      },      Rectangle1 = RectangleMask {         Inputs = {            OutputSize = Input { Value = FuID { "Custom" }, },            MaskWidth = Input { Value = 512, },            MaskHeight = Input { Value = 512, },            PixelAspect = Input { Value = { 1, 1 }, },            ClippingMode = Input { Value = FuID { "None" }, },            Center = Input {               SourceOp = "Path1",               Source = "Position",            },            Width = Input { Value = 1.82793879134053, },            Height = Input { Value = 1.53742679069185, },         },         ViewInfo = OperatorInfo { Pos = { 825, 49.5 } },      },      Path1 = PolyPath {         DrawMode = "InsertAndModify",         Inputs = {            Displacement = Input {               SourceOp = "Path1Displacement",               Source = "Value",            },            PolyLine = Input {               Value = Polyline {                  Points = {                     { Linear = true, LockY = true, X = -1.61332064029335, Y = 0, RX = 0.438697318007663, RY = 0 },                     { Linear = true, LockY = true, X = -0.297228686270362, Y = 0, LX = -0.438697318007663, LY = 0 }                  }               },            },         },      },      Path1Displacement = BezierSpline {         SplineColor = { Red = 255, Green = 0, Blue = 255 },         NameSet = true,         KeyFrames = {             = { 0, RH = { 14, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },             = { 1, LH = { 28, 0.666666666666667 }, Flags = { Linear = true, LockedY = true } }         }      },      ReplaceMaterial3D1 = ReplaceMaterial3D {         Inputs = {            SceneInput = Input {               SourceOp = "UVMap3D1",               Source = "Output",            },            ["ReplaceMode.Nest"] = Input { Value = 1, },            ["ReplaceMode.RedMode"] = Input { Value = 0, },            ["ReplaceMode.GreenMode"] = Input { Value = 0, },            ["ReplaceMode.BlueMode"] = Input { Value = 0, },            MaterialInput = Input {               SourceOp = "Rectangle1",               Source = "Mask",            },            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },         },         ViewInfo = OperatorInfo { Pos = { 825, 148.5 } },      },      UVMap3D1 = UVMap {         Inputs = {            SceneInput = Input {               SourceOp = "Text3D1_1",               Source = "Output",            },            Orientation = Input { Value = 2, },            ["Size.X"] = Input { Value = 3, },            ["Size.Y"] = Input { Value = 3, },            ["Size.Z"] = Input { Value = 0.200000002980232, },            ["Center.X"] = Input { Value = 0.00269100069999695, },            ["Center.Y"] = Input { Value = 0.270254671573639, },            ["Center.Z"] = Input { Value = 0.100000001490116, },         },         ViewInfo = OperatorInfo { Pos = { 660, 148.5 } },      },      Text3D1_1 = Text3D {         Inputs = {            Font = Input { Value = "Palatino Linotype", },            StyledText = Input { Value = "STEP", },            Style = Input { Value = "Regular", },            Extrusion = Input { Value = 1, },            ExtrusionProfile = Input {               SourceOp = "Text3D1_1ExtrusionProfile",               Source = "Value",            },            ExtrusionDepth = Input { Value = 0.2, },            ManualFontKerningPlacement = Input {               Value = StyledText {                  Array = {                  },                  Value = ""               },            },            Red1 = Input { Value = 0.136, },         },         ViewInfo = OperatorInfo { Pos = { 495, 148.5 } },      },      Text3D1_1ExtrusionProfile = LUTBezier {         KeyColorSplines = {             = {                = { 0, RH = { 0.0666666666666667, 0.333333333333333 }, Flags = { Linear = true } },               [0.2] = { 1, LH = { 0.133333333333333, 0.666666666666667 }, RH = { 0.4, 1 }, Flags = { Linear = true } },               [0.8] = { 1, LH = { 0.6, 1 }, RH = { 0.866666666666667, 0.666666666666667 }, Flags = { Linear = true } },                = { 0, LH = { 0.933333333333333, 0.333333333333333 }, Flags = { Linear = true } }            }         },         SplineColor = { Red = 192, Green = 128, Blue = 64 },         NameSet = true,      },      ReplaceMaterial3D1_1 = ReplaceMaterial3D {         Inputs = {            SceneInput = Input {               SourceOp = "UVMap3D1_1",               Source = "Output",            },            ["ReplaceMode.Nest"] = Input { Value = 1, },            ["ReplaceMode.RedMode"] = Input { Value = 0, },            ["ReplaceMode.GreenMode"] = Input { Value = 0, },            ["ReplaceMode.BlueMode"] = Input { Value = 0, },            MaterialInput = Input {               SourceOp = "Transform1",               Source = "Output",            },            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },         },         ViewInfo = OperatorInfo { Pos = { 825, 214.5 } },      },      UVMap3D1_1 = UVMap {         Inputs = {            SceneInput = Input {               SourceOp = "Text3D1",               Source = "Output",            },            Orientation = Input { Value = 2, },            ["Size.X"] = Input { Value = 3, },            ["Size.Y"] = Input { Value = 3, },            ["Size.Z"] = Input { Value = 0.200000002980232, },            ["Center.X"] = Input { Value = 2.98023223876953e-008, },            ["Center.Y"] = Input { Value = 0.272561252117157, },            ["Center.Z"] = Input { Value = 0.100000001490116, },         },         ViewInfo = OperatorInfo { Pos = { 660, 214.5 } },      },      Text3D1 = Text3D {         Inputs = {            Font = Input { Value = "Palatino Linotype", },            StyledText = Input { Value = "TEXT", },            Style = Input { Value = "Regular", },            Extrusion = Input { Value = 1, },            ExtrusionProfile = Input {               SourceOp = "Text3D1ExtrusionProfile",               Source = "Value",            },            ExtrusionDepth = Input { Value = 0.2, },            ManualFontKerningPlacement = Input {               Value = StyledText {                  Array = {                  },                  Value = ""               },            },            Blue1 = Input { Value = 0, },         },         ViewInfo = OperatorInfo { Pos = { 495, 214.5 } },      },      Text3D1ExtrusionProfile = LUTBezier {         KeyColorSplines = {             = {                = { 0, RH = { 0.0196116135138184, 0.098058067569092 }, Flags = { Linear = true } },               [0.2] = { 1, LH = { 0.180388386486182, 0.901941932430908 }, RH = { 0.3, 1 }, Flags = { Linear = true } },               [0.8] = { 1, LH = { 0.7, 1 }, RH = { 0.819611613513818, 0.901941932430908 }, Flags = { Linear = true } },                = { 0, LH = { 0.980388386486182, 0.098058067569092 }, Flags = { Linear = true } }            }         },         SplineColor = { Red = 192, Green = 128, Blue = 64 },         NameSet = true,      },      Merge3D1 = Merge3D {         Inputs = {            SceneInput1 = Input {               SourceOp = "ReplaceMaterial3D1_1",               Source = "Output",            },            SceneInput2 = Input {               SourceOp = "ReplaceMaterial3D1",               Source = "Output",            },         },         ViewInfo = OperatorInfo { Pos = { 935, 214.5 } },      }   }}`

I'm not sure if I interpreted the second part of your question correctly. But this uses a mask projected on the Z axis to replace the Alpha portion of the material.
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com

Steve McDonald

• Posts: 23
• Joined: Tue Oct 25, 2016 1:43 pm
• Location: McKinney, TX
Ok - here is what I am trying to do: 3d-masks.PNG (235.33 KiB) Viewed 553 times

I have a some 3D text and a cylinder turned on its side like a light. I am rendering it and then masking it and am going to render the mask animating to make it look like the text is disintegrating (hence the mask) from right to left. I want to figure out how to create light rays from the cylinder light source and make the rays morph to look like rays of light are coming through the disintegrating text. I will add some particles after that, but I cannot figure out how to animate the disintegrating 3D text in 3D and create rays in either 3D or 2D that will shining around the morphing text.

Any ideas?

Steve McDonald

• Posts: 23
• Joined: Tue Oct 25, 2016 1:43 pm
• Location: McKinney, TX
OK - I think I am close to getting what I want. But I am getting no performance out of fusion inside Resolve 15. Have a look... 3D-masking.JPG (545.68 KiB) Viewed 454 times

Back in fusion 9 there was a button you could hit to cache your render path to disk and I seem to be missing that for some reason. Also the direction blur seems to be a complete resource hog. It takes seconds (multiple) per frame to render. Is there some scaling or render trick I am missing?

Matthew Zinn

• Posts: 20
• Joined: Mon Jan 05, 2015 2:26 am
Hey Steve,

I am also getting very frustrated with the caching feature not being available inside Resolve 15's version of Fusion. To the point where I've re-created some comps in fusion 9 rather than suffer through the crashes and frustrations I've been dealing with inside Resolve. The one saving graces I've been using in place of that feature is the Saver node which will let me render sections as .exr sequences. Then I work around and re-import those sequences into Resolve through the edit tab into the compound (or Fusion) clip I've created and back into Fusion - what a pain - learned my lesson though Made a note to myself to just go back to the old VFX connect workflow instead of trying to do it all in Resolve, it's a nice idea but perhaps I just don't understand the workflow enough or it's not polished quite yet.

As for your initial question, I don't do much 3D in fusion, but could you just create a blocker object with a 'holdout' type material which will serve the same function as the mask. It won't be as flexible, but it will allow you to block your 3D objects without rendering into 2D space - just my thoughts

Best of luck

-Matthew

Steve McDonald

• Posts: 23
• Joined: Tue Oct 25, 2016 1:43 pm
• Location: McKinney, TX
Ok - I think I have a work around on the performance thing in Fusion inside resolve.

• If you want the comp to run faster inside the fusion tab you need to turn on Playback > Proxy Mode > Half Resolution
• If you want the comp to run faster on the Resolve Edit Tab, then turn on Playback > Render Cache > User

It takes a while on the edit timeline to render Fusion to cache (highlighted in blue at the top of the timeline) but at least it is back to not having to round-trip those items.