Jump to: Board index » General » Fusion

Bluring 3D particles

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

RCModelReviews

  • Posts: 1233
  • Joined: Wed Jun 06, 2018 1:39 am
  • Real Name: Bruce Simpson

Bluring 3D particles

PostMon Jul 23, 2018 7:52 am

I'm a Fusion newbie but have been enjoying getting to grips with the Studio version and have had a lot of success.

However, I'm trying to create a scene where I have a smoke trail (like a rocket exhaust) passing through some 3D text. How do I blur the 3D particles so as to make this look like a cloud of smoke rather than a spray of individual dots?

The blur options only work on 2D and if I apply the blur after the 3D merge then the entire scene will be blurred. If I use 2D to create the smoke trail then I can't get it to pass through the 3D text (in front of some but behind other parts of a character).

Anyone care to help?

Thanks in advance.
Resolve 18.1 Studio, Fusion 9 Studio
CPU: i7 8700, OS: Windows 10 32GB RAM, GPU: RTX3060
I'm refugee from Sony Vegas slicing video for my YouTube channels.
Offline

Frank Feijen

  • Posts: 167
  • Joined: Tue Dec 13, 2016 10:04 am
  • Location: Vilvoorde, Belgium

Re: Bluring 3D particles

PostMon Jul 23, 2018 9:04 am

What about using a different pEmitter-style? Such as blob or a soft circular NGON?
Code: Select all
{
   Tools = ordered() {
      Renderer3D1 = Renderer3D {
         CtrlWZoom = false,
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            CameraSelector = Input { Value = FuID { "Camera3D1" }, },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 16.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "pRender1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Text3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 16.5 } },
      },
      Text3D1 = Text3D {
         Inputs = {
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "O", },
            Style = Input { Value = "Bold", },
            Extrusion = Input { Value = 1, },
            ExtrusionProfile = Input {
               SourceOp = "Text3D1ExtrusionProfile",
               Source = "Value",
            },
            ExtrusionDepth = Input { Value = 0.04, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 49.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,
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.328961173182085, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.172335844761611, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.766669929931136, },
            ["Transform3DOp.Rotate.X"] = Input { Value = 3.59999942779541, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -23.7999935150146, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 82.5 } },
      },
      pRender1 = pRender {
         Inputs = {
            _MotionBlurWarning = Input { Disabled = true, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            OutputMode = Input { Disabled = true, },
            IntegrationMethod = Input { Value = FuID { "RK4" }, },
            ["MaterialID.MaterialID"] = Input { Value = 1, },
            ["ObjectID.ObjectID"] = Input { Value = 1, },
            Input = Input {
               SourceOp = "pEmitter1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 16.5 } },
      },
      SpotLight1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.669618817173623, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.619913127667618, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.298421159605476, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -28, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -66.1999893188477, },
            PenumbraAngle = Input { Value = 20, },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 115.5 } },
      },
      pEmitter1 = pEmitter {
         ID = 1,
         Inputs = {
            Style = Input { Value = FuID { "ParticleStyleNGon" }, },
            ["ParticleStyle.SizeOverLife"] = Input {
               SourceOp = "pEmitter1SizeoverLife",
               Source = "Value",
            },
            ["ParticleStyle.BlurOverLife"] = Input {
               SourceOp = "pEmitter1BluroverLife2D",
               Source = "Value",
            },
            ["SphereRgn.Translate.X"] = Input {
               SourceOp = "pEmitter1XOffset",
               Source = "Value",
            },
            ["SphereRgn.Translate.Y"] = Input { Value = 0.192, },
            ["SphereRgn.Translate.Z"] = Input {
               SourceOp = "pEmitter1ZOffset",
               Source = "Value",
            },
            ["ParticleStyleNGon.NGonType"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 16.5 } },
      },
      pEmitter1SizeoverLife = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
               [1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      },
      pEmitter1BluroverLife2D = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
               [1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      },
      pEmitter1XOffset = BezierSpline {
         SplineColor = { Red = 250, Green = 132, Blue = 49 },
         NameSet = true,
         KeyFrames = {
            [0] = { -0.350294534432428, RH = { 0.8, -0.112 }, Flags = { Linear = true } },
            [100] = { 0.0179179091127791, LH = { 40.4040404040404, 0.0179179091127791 }, RH = { 146.464646464646, 0.0179179091127791 } },
            [200] = { -0.350294534432428, LH = { 200, -0.172000000000024 } }
         }
      },
      pEmitter1ZOffset = BezierSpline {
         SplineColor = { Red = 254, Green = 56, Blue = 46 },
         NameSet = true,
         KeyFrames = {
            [0] = { -0.528901464962159, RH = { 33.3333333333333, -0.352600976641439 }, Flags = { Linear = true } },
            [100] = { 0, LH = { 66.6666666666667, -0.17630048832072 }, RH = { 133.333333333333, 0.148712338650684 }, Flags = { Linear = true } },
            [200] = { 0.446137015952051, LH = { 166.666666666667, 0.297424677301368 }, Flags = { Linear = true } }
         }
      }
   }
}
Offline
User avatar

Bryan Ray

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

Re: Bluring 3D particles

PostMon Jul 23, 2018 5:29 pm

Motion blur on 3d particles is tricky. You have to turn it on in both the pRender and the Renderer3D nodes. It's generally really slow.

When I want motion blurred particles, I usually use ReelSmart Motion Blur instead. The blur is sometimes less accurate, but it's much quicker. For very small particles, add an Erode/Dilate to boost the rendered particles' size, and feed the result into the Motion Source input on RSMB.

You might be able to get a similar result by adding the motion vectors out of your Renderer3D and using Vector Motion Blur, but it's a bit of a crap shoot whether or not it will work.

Another option might be to render the particles and text separately, then use the Depth Merge option in a normal 2d Merge node to combine them. There are problems with antialiasing with that method, but if you render everything at double or quadruple size, blur slightly, then scale down after merging, it can work. That way you could do your blurring of the particles separately from the text.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

JP Docherty

  • Posts: 188
  • Joined: Wed Dec 31, 2014 2:37 pm

Re: Bluring 3D particles

PostMon Jul 23, 2018 6:33 pm

"Motion blur on 3d particles is tricky. You have to turn it on in both the pRender and the Renderer3D nodes. It's generally really slow."

. . . and, you have to manually make sure that your settings in the motion blur tab - i.e. sampling etc - are exactly the same in both the pRender and the Renderer3D. Just thought I'd mention.

Return to Fusion

Who is online

Users browsing this forum: No registered users and 20 guests