Page 1 of 1

Resolve 15 Fusion 3D mattes and masks

PostPosted: Sat Sep 22, 2018 7:25 pm
by Steve McDonald
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?

Re: Resolve 15 Fusion 3D mattes and masks

PostPosted: Sat Sep 22, 2018 9:14 pm
by Sander de Regt
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 :lol:

Re: Resolve 15 Fusion 3D mattes and masks

PostPosted: Sat Sep 22, 2018 10:31 pm
by Bryan Ray
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] = { 0, RH = { 14, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },
            [42] = { 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] = {
               [0] = { 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 } },
               [1] = { 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] = {
               [0] = { 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 } },
               [1] = { 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.

Re: Resolve 15 Fusion 3D mattes and masks

PostPosted: Sun Sep 23, 2018 12:00 am
by Steve McDonald
Ok - here is what I am trying to do:

3d-masks.PNG
3d-masks.PNG (235.33 KiB) Viewed 2319 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?

Re: Resolve 15 Fusion 3D mattes and masks

PostPosted: Mon Sep 24, 2018 11:31 pm
by Steve McDonald
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
3D-masking.JPG (545.68 KiB) Viewed 2220 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?

Re: Resolve 15 Fusion 3D mattes and masks

PostPosted: Tue Sep 25, 2018 12:34 am
by Matthew Zinn
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

Re: Resolve 15 Fusion 3D mattes and masks

PostPosted: Tue Sep 25, 2018 2:45 pm
by Steve McDonald
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.