Jump to: Board index » General » Fusion

High pass or Sharp effect?

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

Paulo Madeira

  • Posts: 17
  • Joined: Sat Aug 29, 2015 7:10 pm
  • Location: Sweden/Portugal

High pass or Sharp effect?

PostSat Oct 24, 2015 8:53 pm

Hi all

Is there some way to create a high pass in Fusion?

Are there any tools for improving sharpness?

Thanks
Madeira3d
Offline

Chad Capeland

  • Posts: 1766
  • Joined: Mon Nov 10, 2014 9:40 pm

Re: High pass or Sharp effect?

PostSat Oct 24, 2015 9:15 pm

A highpass is just a the original divided by the lowpass, no?
Chad Capeland
Indicated, LLC
www.floweffects.com
Offline

Paulo Madeira

  • Posts: 17
  • Joined: Sat Aug 29, 2015 7:10 pm
  • Location: Sweden/Portugal

Re: High pass or Sharp effect?

PostSat Oct 24, 2015 9:40 pm

No idea , but is the low pass a function in fusion?

Can't find it....
Offline

Chad Capeland

  • Posts: 1766
  • Joined: Mon Nov 10, 2014 9:40 pm

Re: High pass or Sharp effect?

PostSat Oct 24, 2015 9:57 pm

Paulo Madeira wrote:No idea , but is the low pass a function in fusion?

Can't find it....


Blur?
Chad Capeland
Indicated, LLC
www.floweffects.com
Offline

Paulo Madeira

  • Posts: 17
  • Joined: Sat Aug 29, 2015 7:10 pm
  • Location: Sweden/Portugal

Re: High pass or Sharp effect?

PostSun Oct 25, 2015 9:13 am

Thanks Chad,

I see the sharpening is inside the blur now.
Offline

phantom-studio

  • Posts: 10
  • Joined: Fri Aug 21, 2015 11:45 am
  • Location: France

Re: High pass or Sharp effect?

PostMon Oct 26, 2015 1:22 pm

a few nodes to get a high pass in fusion.
Plug your input in the saturation node, and merge the output of average node to your source in overlay mode.
You can use the blur node to modify the effect.

Code: Select all
{
   Tools = ordered() {
      saturation = Fuse.SimpleSaturation {
         NameSet = true,
         Inputs = {
            Alpha = Input { Disabled = true, },
            Saturation = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1571.33, 2026.33, }, },
      },
      Blur5_1_1 = Blur {
         CtrlWZoom = false,
         Inputs = {
            XBlurSize = Input { Value = 3.2332564, },
            Input = Input {
               SourceOp = "invertColor_CT",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1676.55, 2135.31, }, },
      },
      average = Custom {
         NameSet = true,
         Inputs = {
            LUTIn1 = Input {
               SourceOp = "CustomTool3_1_1LUTIn1",
               Source = "Value",
            },
            LUTIn2 = Input {
               SourceOp = "CustomTool3_1_1LUTIn2",
               Source = "Value",
            },
            LUTIn3 = Input {
               SourceOp = "CustomTool3_1_1LUTIn3",
               Source = "Value",
            },
            LUTIn4 = Input {
               SourceOp = "CustomTool3_1_1LUTIn4",
               Source = "Value",
            },
            RedExpression = Input { Value = "(r1+r2)/2", },
            GreenExpression = Input { Value = "(g1+g2)/2", },
            BlueExpression = Input { Value = "(b1+b2)/2", },
            Image1 = Input {
               SourceOp = "saturation",
               Source = "Output",
            },
            Image2 = Input {
               SourceOp = "Blur5_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1538.13, 2135.93, }, },
      },
      CustomTool3_1_1LUTIn1 = 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, },
         NameSet = true,
      },
      CustomTool3_1_1LUTIn2 = 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, },
         NameSet = true,
      },
      CustomTool3_1_1LUTIn3 = 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, },
         NameSet = true,
      },
      CustomTool3_1_1LUTIn4 = 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, },
         NameSet = true,
      },
      invertColor_CT = Custom {
         NameSet = true,
         Inputs = {
            LUTIn1 = Input {
               SourceOp = "CustomTool1LUTIn11",
               Source = "Value",
            },
            LUTIn2 = Input {
               SourceOp = "CustomTool1LUTIn21",
               Source = "Value",
            },
            LUTIn3 = Input {
               SourceOp = "CustomTool1LUTIn31",
               Source = "Value",
            },
            LUTIn4 = Input {
               SourceOp = "CustomTool1LUTIn41",
               Source = "Value",
            },
            RedExpression = Input { Value = "1-r1", },
            GreenExpression = Input { Value = "1-g1", },
            BlueExpression = Input { Value = "1-b1", },
            Image1 = Input {
               SourceOp = "saturation",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1674.67, 2072.05, }, },
      },
      CustomTool1LUTIn11 = 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, },
         NameSet = true,
      },
      CustomTool1LUTIn21 = 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, },
         NameSet = true,
      },
      CustomTool1LUTIn31 = 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, },
         NameSet = true,
      },
      CustomTool1LUTIn41 = 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, },
         NameSet = true,
      },
   },
}
Offline

Chad Capeland

  • Posts: 1766
  • Joined: Mon Nov 10, 2014 9:40 pm

Re: High pass or Sharp effect?

PostMon Oct 26, 2015 4:27 pm

Couple things about that...

The reduced saturation isn't needed unless you are planning on only doing a high pass on luminance.

The two CT tools are inefficient. The first one can be replaced with a BC to do the invert, and it will render 4x faster. The second one can be replaced with a Merge and a BC, and it will render 3x faster.

Finally, you don't need to do the invert and average at all. Fusion works in float, so there's no need to pivot around 0.5. You can use -1,1 as your interval for the image processing, assuming your input was 0,1.

- Chad
Chad Capeland
Indicated, LLC
www.floweffects.com
Offline

Paulo Madeira

  • Posts: 17
  • Joined: Sat Aug 29, 2015 7:10 pm
  • Location: Sweden/Portugal

Re: High pass or Sharp effect?

PostMon Oct 26, 2015 7:52 pm

Guy's that's too advanced for me yet, I'm completely lost :-)

Do you think you can see my comp and change to what you think is best?
I would be able to go in and try to reverse engineer what you did and learn from it.

I'm rendering a 360 animation, so far I'm working on a single image.
This is my scene: https://dl.dropboxusercontent.com/u/12095042/PORTFOLIO/GRENADE/Fusion/Arquivo.zip
Image

Thanks in advance
Madeira3d
Offline

phantom-studio

  • Posts: 10
  • Joined: Fri Aug 21, 2015 11:45 am
  • Location: France

Re: High pass or Sharp effect?

PostTue Oct 27, 2015 11:54 am

Hello,
here how i do it :

Code: Select all
{
   Tools = ordered() {
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 0, },
            Lift = Input { Value = 1, },
            Input = Input {
               SourceOp = "PipeRouter2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1970.08, 208.93, }, },
      },
      Blur5_1_1 = Blur {
         CtrlWZoom = false,
         Inputs = {
            XBlurSize = Input { Value = 4.7619048, },
            Input = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1969.99, 303.442, }, },
      },
      average = Custom {
         NameSet = true,
         Inputs = {
            LUTIn1 = Input {
               SourceOp = "averageLUTIn1",
               Source = "Value",
            },
            LUTIn2 = Input {
               SourceOp = "averageLUTIn2",
               Source = "Value",
            },
            LUTIn3 = Input {
               SourceOp = "averageLUTIn3",
               Source = "Value",
            },
            LUTIn4 = Input {
               SourceOp = "averageLUTIn4",
               Source = "Value",
            },
            RedExpression = Input { Value = "(r1+r2)/2", },
            GreenExpression = Input { Value = "(g1+g2)/2", },
            BlueExpression = Input { Value = "(b1+b2)/2", },
            Image1 = Input {
               SourceOp = "PipeRouter2",
               Source = "Output",
            },
            Image2 = Input {
               SourceOp = "Blur5_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1841.71, 304.156, }, },
      },
      averageLUTIn1 = 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, },
         NameSet = true,
      },
      averageLUTIn2 = 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, },
         NameSet = true,
      },
      averageLUTIn3 = 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, },
         NameSet = true,
      },
      averageLUTIn4 = 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, },
         NameSet = true,
      },
      PipeRouter2 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "PipeRouter3",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 1850.01, 207.325, }, },
      },
      AlphaMultiply1 = AlphaMultiply {
         Inputs = {
            Input = Input {
               SourceOp = "ColorCorrector2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1648.24, 394.639, }, },
      },
      ColorCorrector2 = ColorCorrector {
         Inputs = {
            WheelTintAngle1 = Input { Value = -0.426208191174783, },
            WheelTintLength1 = Input { Value = 0.0568888888888889, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1, },
                           { 0.4, 0.2, },
                           { 0.6, 0, },
                           { 1, 0, },
                        },
                     },
                     {
                        Points = {
                           { 0, 0, },
                           { 0.4, 0, },
                           { 0.6, 0.2, },
                           { 1, 1, },
                        },
                     },
                  },
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge4",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1648.24, 361.639, }, },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "AlphaMultiply1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1643.94, 431.114, }, },
      },
      Merge4 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "average",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "PipeRouter3",
               Source = "Output",
            },
            ApplyMode = Input { Value = FuID { "Overlay", }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1628.87, 307.393, }, },
      },
      PipeRouter3 = PipeRouter {
         ViewInfo = PipeRouterInfo { Pos = { 1610.34, 204.055, }, },
      },
      Background1 = Background {
         CurrentSettings = 2,
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     Background1 = Background {
                        Inputs = {
                           Type = Input { Value = FuID { "Gradient", }, },
                           GradientType = Input { Value = FuID { "Radial", }, },
                           Width = Input { Value = 720, },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
                           ["Gamut.ColorSpaceNest"] = Input { Value = 1, },
                           End = Input { Value = { 10, 0, }, },
                           Height = Input { Value = 1280, },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0.176470588235294, 0.705882352941177, 0.968627450980392, 1, },
                                    [0.1131386861314] = { 0, 0, 0, 1, },
                                 },
                              },
                           },
                           Start = Input { Value = { 0.5, 0.5, }, },
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 1100, 280.5, }, },
                        CustomData = {
                        },
                     },
                  },
               },
               [2] = {
                  Tools = ordered() {
                     Background1 = Background {
                        Inputs = {
                           Type = Input { Value = FuID { "Gradient", }, },
                           GradientType = Input { Value = FuID { "Radial", }, },
                           Width = Input { Value = 720, },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
                           ["Gamut.ColorSpaceNest"] = Input { Value = 1, },
                           End = Input { Value = { 10, 0, }, },
                           Height = Input { Value = 1280, },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 1, 1, 1, 1, },
                                    [0.1131386861314] = { 0, 0, 0, 1, },
                                 },
                              },
                           },
                           Start = Input { Value = { 0.5, 0.5, }, },
                        },
                        Name = "Background1",
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 1100, 280.5, }, },
                        CustomData = {
                        },
                     },
                  },
               },
            },
         },
         Inputs = {
            Width = Input { Value = 720, },
            Height = Input { Value = 1280, },
            ["Gamut.ColorSpaceNest"] = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Type = Input { Value = FuID { "Gradient", }, },
            GradientType = Input { Value = FuID { "Radial", }, },
            Start = Input { Value = { 0.5, 0.5, }, },
            End = Input { Value = { 10, 0, }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0.0291970802919708] = { 1, 1, 1, 1, },
                     [0.164233576642336] = { 0, 0, 0, 1, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1537.12, 434.202, }, },
      },
   },
}


@chad :
thanks for the tips in order to render more quickly , i replace the fisrt CT with a bc , however for the second CT I don't understand how you do it
Offline

Chad Capeland

  • Posts: 1766
  • Joined: Mon Nov 10, 2014 9:40 pm

Re: High pass or Sharp effect?

PostTue Oct 27, 2015 6:03 pm

If you set the Merge to Additive, and set the Alpha Gain to 0, you will add the images together. A BC afterwards divides by 2.
Chad Capeland
Indicated, LLC
www.floweffects.com

Return to Fusion

Who is online

Users browsing this forum: Google Feedfetcher and 13 guests