Jump to: Board index » General » Fusion

How to add border to node?

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline
User avatar

PedjaS

  • Posts: 15
  • Joined: Wed Jul 13, 2022 3:54 pm
  • Real Name: Predrag Supurovic

How to add border to node?

PostFri Aug 12, 2022 11:54 pm

I created simple fusion containing two texts. Letters are white but two texts are touching each other creating visual effect of one shape.

Now, I want to add border to that shape.

All I found was how to add border to each text separately but that is not what I want. What I need is to treat both text as one shape that has border on all edges but those where texts are touching each other.

Here is example. Left image shows how I can do in fusion, right one shows how I want it to look.

text-outline.png
text-outline.png (14.42 KiB) Viewed 421 times
Offline

Eyn-0519

  • Posts: 15
  • Joined: Thu Jun 10, 2021 4:00 pm
  • Real Name: Hui Eyn

Re: How to add border to node?

PostSat Aug 13, 2022 3:50 am

You can use "ErodeDilate" node, adjustment amount.
Code: Select all
{
   Tools = ordered() {
      Text_A = TextPlus {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SelectElement = Input { Value = 1, },
            Select = Input { Value = 1, },
            Enabled2 = Input { Value = 1, },
            StyledText = Input { Value = "A", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 1, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -16.5 } },
      },
      Transform1 = Transform {
         Inputs = {
            Center = Input { Value = { 0.375, 0.5 }, },
            Input = Input {
               SourceOp = "Text_A",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 16.5 } },
      },
      Transform2 = Transform {
         Inputs = {
            Center = Input { Value = { 0.65, 0.5 }, },
            Input = Input {
               SourceOp = "Text_B",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 49.5 } },
      },
      Text_B = TextPlus {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SelectElement = Input { Value = 1, },
            Select = Input { Value = 1, },
            Enabled2 = Input { Value = 1, },
            StyledText = Input { Value = "B", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 1, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, -16.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform2",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 82.5 } },
      },
      Instance_Transform1 = Transform {
         SourceOp = "Transform1",
         Inputs = {
            SettingsNest = Input { },
            TransformNest = Input { },
            ReferenceSize = Input { },
            Input = Input {
               SourceOp = "Text_A_1",
               Source = "Output",
            },
            CommentsNest = Input { },
            FrameRenderScriptNest = Input { },
            StartRenderScripts = Input { },
            EndRenderScripts = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 605, 16.5 } },
      },
      Text_A_1 = TextPlus {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SelectElement = Input { Value = 1, },
            Select = Input { Value = 1, },
            StyledText = Input { Value = "A", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 1, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 605, -16.5 } },
      },
      Merge2 = Merge {
         NameSet = true,
         Inputs = {
            Background = Input {
               SourceOp = "Instance_Transform1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Instance_Transform2",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 82.5 } },
      },
      Instance_Transform2 = Transform {
         SourceOp = "Transform2",
         Inputs = {
            SettingsNest = Input { },
            TransformNest = Input { },
            ReferenceSize = Input { },
            Input = Input {
               SourceOp = "Text_B_1",
               Source = "Output",
            },
            CommentsNest = Input { },
            FrameRenderScriptNest = Input { },
            StartRenderScripts = Input { },
            EndRenderScripts = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 715, 49.5 } },
      },
      Text_B_1 = TextPlus {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SelectElement = Input { Value = 1, },
            Select = Input { Value = 1, },
            StyledText = Input { Value = "B", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 1, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 715, -16.5 } },
      },
      ErodeDilate1 = ErodeDilate {
         CtrlWZoom = false,
         Inputs = {
            Filter = Input { Value = 3, },
            XAmount = Input { Value = 0.01, },
            Input = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 115.5 } },
      },
      Background1 = Background {
         Inputs = {
            EffectMask = Input {
               SourceOp = "ErodeDilate1",
               Source = "Output",
            },
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 148.5 } },
      },
      Merge2_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 181.5 } },
      }
   }
}
Attachments
Snipaste_2022-08-13_11-43-57.png
Snipaste_2022-08-13_11-43-57.png (169.82 KiB) Viewed 337 times
Offline

Sander de Regt

  • Posts: 2782
  • Joined: Thu Nov 13, 2014 10:09 pm

Re: How to add border to node?

PostSat Aug 13, 2022 6:37 am

Is there a reason why you use 2 seperate text nodes?
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline
User avatar

PedjaS

  • Posts: 15
  • Joined: Wed Jul 13, 2022 3:54 pm
  • Real Name: Predrag Supurovic

Re: How to add border to node?

PostSat Aug 13, 2022 7:41 am

Thanks a lot.

I have two words, different fonts and sizes, and they are not positioned in simple manner as in example.

I must say this is overwhelming for novice user. I expected there could be simple tool to apply for simple effect as outline which is often needed.

In meanwhile I found out this:



It also helped. I added link here if someone else looks for the same thing.
Offline

xunile

  • Posts: 2718
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: How to add border to node?

PostSat Aug 13, 2022 4:58 pm

You can also use a combination of Tracking, Manual Positioning, and Character Level Styling to get that look with multiple words and different fonts.
Attachments
2022-08-13 (4).jpg
2022-08-13 (4).jpg (289.71 KiB) Viewed 262 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.1 | Fusion Studio 18.1.1

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6

Return to Fusion

Who is online

Users browsing this forum: No registered users and 16 guests