Jump to: Board index » General » Fusion

Using Shift-W command in B-Spline node creates artefact

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

rsf123

  • Posts: 434
  • Joined: Tue May 21, 2019 3:05 pm
  • Real Name: Roger Smith

Using Shift-W command in B-Spline node creates artefact

PostSat Feb 15, 2020 7:36 am

This first diagram is a closed loop drawn by the B-Spline node. Simply created by clicking 4 points, and closing the loop. So far so good.

Fig1.jpg
Fig1.jpg (49.05 KiB) Viewed 1826 times


The problem occurs when I use the mouse to select one of the points (e.g. the lower left), and then use the Shift-W command while moving the cursor left-to-right. This is meant to bring out the line towards or away from the point. It works.

But the problem is, when the line is brought towards the point, it creates an un-wanted artefact which I have highlighted in the diagram below.

Figu2.jpg
Figu2.jpg (27.68 KiB) Viewed 1826 times


This is merely a rough example, but when I draw precise shapes using the B-Spline, that artefact means the shape I've drawn contains an unsightly tiny squiggle that Fusion's B-Spline adds.

My guess is it is a bug in the B-Spline node. Or am I doing something to make the artefact occur?
Offline

xunile

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

Re: Using Shift-W command in B-Spline node creates artefact

PostSat Feb 15, 2020 5:44 pm

I've noticed the same thing, even though I don't use b-splines that often. You can maybe try changing the Border Width to something like .001 and see if that helps.
Attachments
2020-02-15 (2).png
2020-02-15 (2).png (323.92 KiB) Viewed 1754 times
2020-02-15 (3).png
2020-02-15 (3).png (318.14 KiB) Viewed 1754 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

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

Saad Shah

  • Posts: 152
  • Joined: Sun Dec 30, 2018 5:36 pm
  • Real Name: Saad Shah

Re: Using Shift-W command in B-Spline node creates artefact

PostSat Feb 15, 2020 6:02 pm

Hey Roger
B Splines are great for smooth shapes.
Bezier Splines are great for sharp corners.
My suggestion would be to pick the best tool for the job. If your shape has sharp corners, try using the Bezier and see if that helps.
B Splines can be glitchy if you try to push them past their limits in terms of sharpness.

Sadi
Youtube Channel: Gargoyles At Work
Offline

rsf123

  • Posts: 434
  • Joined: Tue May 21, 2019 3:05 pm
  • Real Name: Roger Smith

Re: Using Shift-W command in B-Spline node creates artefact

PostFri Feb 21, 2020 1:06 am

Saad Shah wrote:Hey Roger
B Splines are great for smooth shapes.
Bezier Splines are great for sharp corners.
My suggestion would be to pick the best tool for the job. If your shape has sharp corners, try using the Bezier and see if that helps.
B Splines can be glitchy if you try to push them past their limits in terms of sharpness.

Sadi



The BSpline is the tool that enables me to draw a heart shape. I'm not aware of how to draw a heart shape using the Polygon node.

My question is: Is this a bug in the BSpline node?

How does one draw a heart shape in Fusion without introducing little artefacts?
Offline
User avatar

Bryan Ray

  • Posts: 2491
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Using Shift-W command in B-Spline node creates artefact

PostFri Feb 21, 2020 1:21 am

Code: Select all
{
   Tools = ordered() {
      Polygon1 = PolylineMask {
         DrawMode = "ModifyOnly",
         DrawMode2 = "InsertAndModify",
         CtrlWZoom = false,
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2970, -148.5 } },
      },
      Polygon1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1009] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { X = -0.00499999988824129, Y = 0.16666667163372, LX = -0.013582756950044, LY = 0.0537822320367503, RX = 0.00894788986481546, RY = 0.0544442713640035 },
                     { X = 0.0925000014901161, Y = 0.231111110316382, LX = -0.045665939397241, LY = 0.0704657519951371, RX = 0.0845263570163622, RY = -0.130430105877271 },
                     { X = -0.00249999977648258, Y = -0.284444432258606, LX = 0.0299888766079861, LY = 0.227853360336542, RX = -0.0360652788177122, RY = 0.229839801932482 },
                     { X = -0.104999997317791, Y = 0.228888893789715, LX = -0.0764104087913766, LY = -0.138529007280251, RX = 0.0421271332515569, RY = 0.0763748033966779 }
                  }
               } }
         }
      }
   },
   ActiveTool = "Polygon1"
}


Edit: More to the point, yes, I get the same artifact. It looks like it only appears on one node. I thought it was always the first one created, but that may not be true. Testing a bit more...
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

Bryan Ray

  • Posts: 2491
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Using Shift-W command in B-Spline node creates artefact

PostFri Feb 21, 2020 1:27 am

Looks like it only happens on the second point in the spline, and it might be pulled out by either of the nodes adjacent to that point, or by tightening the second point itself. Very odd, and certainly a bug.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

rsf123

  • Posts: 434
  • Joined: Tue May 21, 2019 3:05 pm
  • Real Name: Roger Smith

Re: Using Shift-W command in B-Spline node creates artefact

PostFri Feb 21, 2020 5:47 am

[quote="Bryan Ray"]
Code: Select all
{
   Tools = ordered() {
      Polygon1 = PolylineMask {
         DrawMode = "ModifyOnly",
         DrawMode2 = "InsertAndModify",
         CtrlWZoom = false,
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2970, -148.5 } },
      },
      Polygon1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1009] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { X = -0.00499999988824129, Y = 0.16666667163372, LX = -0.013582756950044, LY = 0.0537822320367503, RX = 0.00894788986481546, RY = 0.0544442713640035 },
                     { X = 0.0925000014901161, Y = 0.231111110316382, LX = -0.045665939397241, LY = 0.0704657519951371, RX = 0.0845263570163622, RY = -0.130430105877271 },
                     { X = -0.00249999977648258, Y = -0.284444432258606, LX = 0.0299888766079861, LY = 0.227853360336542, RX = -0.0360652788177122, RY = 0.229839801932482 },
                     { X = -0.104999997317791, Y = 0.228888893789715, LX = -0.0764104087913766, LY = -0.138529007280251, RX = 0.0421271332515569, RY = 0.0763748033966779 }
                  }
               } }
         }
      }
   },
   ActiveTool = "Polygon1"
}


Thanks for that code for Polygon node. Question: Is there a way of making the control lines, for each of the top points, perfectly symmetrical to each other? Or is the only way to eyeball it?
Offline
User avatar

Bryan Ray

  • Posts: 2491
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Using Shift-W command in B-Spline node creates artefact

PostSat Feb 22, 2020 6:31 pm

If it's not important that it remain a single spline, you could use a Transform node to reflect it, like so:

Code: Select all
{
   Tools = ordered() {
      Polygon1 = PolylineMask {
         DrawMode = "ModifyOnly",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            BorderWidth = Input { Value = 0.0032, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
            Point0 = Input { Value = { 0.5, 0.6666666716337 }, },
            Point1 = Input { Value = { 0.5, 0.2155555677414 }, },
         },
         ViewInfo = OperatorInfo { Pos = { 260, 77.0606 } },
      },
      Polygon1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 336.333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Points = {
                     { X = 0, Y = 0.1666666716337, RX = 0.00483596727995762, RY = 0.0560634441634746, PublishID = "Point0" },
                     { X = 0.0925000014901161, Y = 0.231111110316382, LX = -0.045665939397241, LY = 0.0704657519951371, RX = 0.0845263570163622, RY = -0.130430105877271 },
                     { X = 0, Y = -0.2844444322586, LX = 0.0299888766079861, LY = 0.227853360336542, PublishID = "Point1" }
                  }
               } },
            [1009] = { 1, LH = { 672.666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Points = {
                     { X = -0.00499999988824129, Y = 0.16666667163372, RX = 0.00894788986481546, RY = 0.0544442713640035, PublishID = "Point0" },
                     { X = 0.0925000014901161, Y = 0.231111110316382, LX = -0.045665939397241, LY = 0.0704657519951371, RX = 0.0845263570163622, RY = -0.130430105877271 },
                     { X = -0.00249999977648258, Y = -0.284444432258606, LX = 0.0299888766079861, LY = 0.227853360336542, PublishID = "Point1" }
                  }
               } }
         }
      },
      Transform1_1 = Transform {
         Inputs = {
            FlipHoriz = Input { Value = 1, },
            Input = Input {
               SourceOp = "Polygon1_1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 359.333, 128.576 } },
      },
      Transform1 = Transform {
         Inputs = {
            FlipHoriz = Input { Value = 1, },
            Input = Input {
               SourceOp = "Polygon1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 363.937, 29.7879 } },
      },
      Merge1 = Merge {
         CtrlWZoom = false,
         Inputs = {
            Background = Input {
               SourceOp = "Polygon1",
               Source = "Mask",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 392.667, 81.9091 } },
      },
      Polygon1_1 = PolylineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon1_1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
            Point0 = Input { Value = { 0.5, 0.6666666716337 }, },
            Point1 = Input { Value = { 0.5, 0.2155555677414 }, },
         },
         ViewInfo = OperatorInfo { Pos = { 255.396, 175.848 } },
      },
      Polygon1_1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 336.333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { X = 0, Y = 0.1666666716337, LX = -8.64499592114262e-005, LY = -0.145961965060756, RX = 0.00483596727995762, RY = 0.0560634441634746, PublishID = "Point0" },
                     { X = 0.0925000014901161, Y = 0.231111110316382, LX = -0.045665939397241, LY = 0.0704657519951371, RX = 0.0845263570163622, RY = -0.130430105877271 },
                     { X = 0, Y = -0.2844444322586, LX = 0.0299888766079861, LY = 0.227853360336542, RX = -0.00054264758850853, RY = 0.130927017613396, PublishID = "Point1" }
                  }
               } },
            [1009] = { 1, LH = { 672.666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { X = -0.00499999988824129, Y = 0.16666667163372, LX = -0.0237203303778779, LY = -0.144328564996663, RX = 0.00894788986481546, RY = 0.0544442713640035, PublishID = "Point0" },
                     { X = 0.0925000014901161, Y = 0.231111110316382, LX = -0.045665939397241, LY = 0.0704657519951371, RX = 0.0845263570163622, RY = -0.130430105877271 },
                     { X = -0.00249999977648258, Y = -0.284444432258606, LX = 0.0299888766079861, LY = 0.227853360336542, RX = -0.0192701768612451, RY = -0.146413438873029, PublishID = "Point1" }
                  }
               } }
         }
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Polygon1_1",
               Source = "Mask",
            },
            Foreground = Input {
               SourceOp = "Transform1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 388.062, 180.697 } },
      }
   }
}


I published the centerline points so I could enter an exact x-coordinate there. The outline version is not closed, to prevent having a line down the middle. The solid version must have a closed spline for the fill to work.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

rsf123

  • Posts: 434
  • Joined: Tue May 21, 2019 3:05 pm
  • Real Name: Roger Smith

Re: Using Shift-W command in B-Spline node creates artefact

PostMon Feb 24, 2020 12:01 pm

Bryan Ray wrote:Very odd, and certainly a bug.


I received a message from Blackmagic saying this bug would be corrected in the next version.

Return to Fusion

Who is online

Users browsing this forum: No registered users and 62 guests