Probe not retaining properties when node copied

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message
Offline
User avatar

AndrewTheGreat

  • Posts: 161
  • Joined: Tue Nov 19, 2024 12:00 pm
  • Location: UAE, Dubai
  • Real Name: Andy Fed

Probe not retaining properties when node copied

PostFri May 30, 2025 7:28 am

Hi. I was working on an animation in DVR 20 in which a group of shapes change size when colliding with a "master-shape", like this:


The way I made it is with a probe modifier in every mask node in each group of nodes headed by the background node, and the probe gets data from a separate mask+background to the left of this node tree.

Here's the code (cannot paste it for the amount of symbols): https://drive.google.com/file/d/1s2MyT2 ... sp=sharing

The problem I ran into is that to make it work as it should I had to copy every mask node, move to a new position and connect the probe modifier in each mask node to the said separate mask node every time - for some reason every copied and pasted mask node had the probe empty Image to probe parameter though the other values were transferred fine:
Screenshot 2025-05-30 101507.png
Screenshot 2025-05-30 101507.png (22.66 KiB) Viewed 451 times


So my question is whether it's expected or the copy-pasted node should retain all parameters. And also how can I make this whole thing in an easier way without copying all those masks and manually connecting the Probes. Instances are of no help here.
15y Premiere Pro user. Started to learn DVR as of Apr 2025
Offline
User avatar

KrunoSmithy

  • Posts: 4561
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Probe not retaining properties when node copied

PostFri May 30, 2025 9:17 am

Your set up seems quite complicated. I'm sure there are better ways to go about it. Not quite sure about the probe issue you are having, but if you want to have a grid of shapes and you want to affect for example size of them perhaps try something like a Cloner Fuse, or Replicate 3D setup or Particles.

..............................

sshot-1358.jpg
sshot-1358.jpg (193.38 KiB) Viewed 131 times


[BETA] Cloner Fuse by Steve Watson
https://www.steakunderwater.com/wesuckl ... 9&start=45

You can see various funcsions in the tutorials Steve made. But its super straighforwad. You use the cloner to clone your shapes and than you use if you so choose, various "effector" inputs as he calls them, to controls clones. There is a scale effector. Where you input your elipse mask and use it to to scale clones. Similar to something you wanted to do with probe. Only a lot less complicated to set up.

Blackmagic Fusion Cloner Tutorial - Part 1 Intro


Blackmagic Fusion Cloner Tutorial - Part 5 Position, Scale and Rotation Effectors


.................................................

You could also do it with Replicate 3D and use displace to move elements about.

Its better to use it in 3D because of perspective, than 2D, but it can give interesting effects so it depends on what you want to do.

sshot-1359.jpg
sshot-1359.jpg (208.15 KiB) Viewed 131 times


Code: Select all
{
   Tools = ordered() {
      Background = Background {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            TopLeftAlpha = Input { Value = 0, },
            GradientType = Input { Value = FuID { "Radial" }, },
            Start = Input { Value = { 0.5, 0.5 }, },
            End = Input { Value = { 1.4, 0.5 }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0.333333333333333, 0, 0, 1 },
                     [1] = { 0, 0, 0, 1 }
                  }
               },
            }
         },
         ViewInfo = OperatorInfo { Pos = { 2130.02, 188.552 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 2.07, },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            AoV = Input { Value = 19.2642683071402, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmBack = Input { Value = 1, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ControlVis = Input { Value = 1, },
            PlaneOfFocusVis = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 2096.84, 61.6758 } },
      },
      ImagePlane3D3 = ImagePlane3D {
         Inputs = {
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 5, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.CullBackFace"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 5, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, }
         },
         ViewInfo = OperatorInfo { Pos = { 1951.65, 232.594 } },
      },
      Ellipse1_1 = EllipseMask {
         CtrlWZoom = false,
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            UseFrameFormatSettings = Input { Value = 1, },
            Center = Input { Value = { 0.234904270986745, 0.413612565445026 }, },
            Width = Input { Value = 0.164058455257055, },
            Height = Input { Value = 0.164058455257055, }
         },
         ViewInfo = OperatorInfo { Pos = { 1493.44, 175.67 } },
      },
      Displace3D1 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
            Channel = Input { Value = 4, },
            Scale = Input { Value = 0.457, },
            Input = Input {
               SourceOp = "Ellipse1_1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1951.65, 175.67 } },
      },
      sEllipse1 = sEllipse {
         Inputs = {
            Width = Input { Value = 0.256715363345823, },
            Height = Input { Value = 0.256715363345823, },
            Green = Input { Value = 0, },
            Blue = Input { Value = 0, }
         },
         ViewInfo = OperatorInfo { Pos = { 1490.52, 116.53 } },
      },
      sRender1 = sRender {
         Inputs = {
            GlobalOut = Input { Value = 500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Input = Input {
               SourceOp = "sEllipse1",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1651.53, 116.53 } },
      },
      ImagePlane3D3_1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Scale.X"] = Input { Value = 0.834, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.CullBackFace"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 5, },
            MaterialInput = Input {
               SourceOp = "sRender1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, }
         },
         ViewInfo = OperatorInfo { Pos = { 1795.16, 116.53 } },
      },
      Replicate3D1 = Replicate3D {
         Inputs = {
            PerParticleColors = Input { Value = 0, },
            ScaleNest = Input { Value = 1, },
            ["Scale.X"] = Input { Value = 0.392, },
            Destination = Input {
               SourceOp = "Displace3D1",
               Source = "Output",
            },
            Input1 = Input {
               SourceOp = "ImagePlane3D3_1",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1951.65, 116.53 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Replicate3D1",
               Source = "Data3D",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 2096.84, 116.53 } },
      },
      Renderer3D1_1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            ["RendererSoftware.ShadowsEnabled"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            ["RendererSoftware.Channels.Nest"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            ["RendererSoftware.LightingEnabled"] = Input {
               Value = Number {
                  Value = 1
               },
            },
            GlobalOut = Input { Value = 500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            Depth = Input { Value = 1, },
            AutoCropDataWindow = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            CameraSelector = Input { Value = FuID { "Camera3D1" }, },
            OutputType = Input { Disabled = true, },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.Rate"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.Rate"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.DoFBlur"] = Input { Value = 0.1, },
            ["RendererOpenGL.MaximumTextureDepth"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { 2260.89, 116.53 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Renderer3D1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, }
         },
         ViewInfo = OperatorInfo { Pos = { 2260.89, 188.552 } },
      }
   }
}
Offline
User avatar

KrunoSmithy

  • Posts: 4561
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Probe not retaining properties when node copied

PostFri May 30, 2025 9:23 am

Replicate 3D is quiet powerful. It works by using one shape 3D or particles to drive distribution of elements and you use another input or multiple inputs to represent the shapes, images, video, 2D or 3D etc.

Here for example I used it for a nice little corasel slide show set up by using torus with low subdivision cut as basis for shape which distributes the elements and shape system + extrude or image plane3D for images or video elements. You can do a lot with replicate 3D and some creativity.

sshot-1317.jpg
sshot-1317.jpg (212.76 KiB) Viewed 124 times


sshot-1318.jpg
sshot-1318.jpg (238.95 KiB) Viewed 124 times


Here I used ribbon 3d for a shape that will set rules for distribution and some basic primitives like cube with uneven sides as shape to distribute and you can make staircase.

sshot-1273.jpg
sshot-1273.jpg (141.15 KiB) Viewed 124 times
Offline
User avatar

KrunoSmithy

  • Posts: 4561
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Probe not retaining properties when node copied

PostFri May 30, 2025 9:28 am

Here I used it for image collage type effect by using simple image plane with low subdivision number.

sshot-1255.jpg
sshot-1255.jpg (293.24 KiB) Viewed 115 times


You can also have very complex 3D shapes with textures, reflections etc and easily replicate them in all sorts of ways and not lose all that much on performance.

Like this wheel 3D model with reflections and all that...

sshot-11971.jpg
sshot-11971.jpg (189.36 KiB) Viewed 115 times


sshot-11951.jpg
sshot-11951.jpg (217.06 KiB) Viewed 115 times


And it works with particles as well, so you can use particles to drive the animation of 3d objects. You have a 3D model of a bird and you animate it flapping wings and than you use particles + replicate 3D to make a flock of birds of that model.

Point is that you can use it in all sorts of ways, so its great for VFX and for motiongraphics if you play with it.
Offline
User avatar

AndrewTheGreat

  • Posts: 161
  • Joined: Tue Nov 19, 2024 12:00 pm
  • Location: UAE, Dubai
  • Real Name: Andy Fed

Re: Probe not retaining properties when node copied

PostFri May 30, 2025 12:14 pm

Wow, thank you, KrunoSmithy, as usual, you are a god )) I'll have to take a moment to study this
15y Premiere Pro user. Started to learn DVR as of Apr 2025

Return to DaVinci Resolve

Who is online

Users browsing this forum: Alan Dater, jordancamera, Supercar Streetracing and 264 guests