Page 1 of 1

Motion blur for Shape3DPlanet node

PostPosted: Wed May 17, 2023 9:33 pm
by sheva7
Hello,

how can I add motion blur to rotation of Shape3DPlanet?
thanks for all tips!

Code: Select all
{
   Tools = ordered() {
      Shape3D1Planet = Shape3D {
         NameSet = true,
         Inputs = {
            ["SurfacePlaneInputs.Width"] = Input { Value = 10, },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { Value = 1, },
            ["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 6, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["Transform3DOp.Rotate.Y"] = Input {
               Value = 512.333333333333,
               Expression = "time /3",
            },
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.UseTwoSidedLighting"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialIDNest"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            StartRenderScripts = Input { Value = 1, },
            EndRenderScripts = Input { Value = 1, },
            ["SurfaceSphereInputs.Radius"] = Input { Value = 3.6, },
            ["SurfaceSphereInputs.SubdivisionLevelBase"] = Input { Value = 100, },
            ["SurfaceSphereInputs.SubdivisionLevelHeight"] = Input { Value = 100, },
            ["SurfaceSphereInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.Visibility.IgnoreTransparentPixelsInAuxChannels"] = Input { Value = 0, },
            ["SurfaceSphereInputs.Lighting.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.Matte.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.BlendMode.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.Controls.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 605, 115.5 } },
      }
   }
}

Re: Motion blur for Shape3DPlanet node

PostPosted: Wed May 17, 2023 10:03 pm
by Bryan Ray
Motion blur will be handled by the Renderer3D in the Settings tab.

Re: Motion blur for Shape3DPlanet node

PostPosted: Wed May 17, 2023 10:28 pm
by sheva7
Bryan Ray wrote:Motion blur will be handled by the Renderer3D in the Settings tab.


Thanks a million!

Re: Motion blur for Shape3DPlanet node

PostPosted: Sun May 21, 2023 5:19 pm
by sheva7
Bryan Ray wrote:Motion blur will be handled by the Renderer3D in the Settings tab.


What would be the best algorithm to get "clean motion" blur? I tried to use optical flow and vector motion blur but my 8Gb GPU can not handle this. Is there any alternative or workaround for this?

Re: Motion blur for Shape3DPlanet node

PostPosted: Sun May 21, 2023 9:51 pm
by Bryan Ray
If you've got a 3d system, the motion blur in the Renderer3D will give you the best results, but you will likely need to turn up the Quality slider so it gives you sufficient samples. How high it needs to go depends on how fast things are moving. Remember that you can overdrive it by typing in a number bigger than the slider will reach. I usually set it at 20 or so for motion graphics work. Just keep in mind that each sample is another full render, so try to set it as low as you can without seeing banding.

If you need to apply motion blur to 2d image, I prefer ReelSmart Motion Blur, but it's an OFX plug-in that has a cost of its own. So you need Fusion or Resolve Studio (~US$300) and the RSMB license, which is US$70 for a node-locked license or something like US$250 for a floating one.

I've never cared much for the artifacts created by optical flow-based motion blur, but maybe blurring the vectors could help. And if you're running out of VRAM (which surprises me unless you're dealing with super huge images), you could always disable GPU processing for whichever node is causing problems. Likely the Optical Flow vector generation. Of course, that slows things down considerably, but you should pre-render the vectors to EXR, anyway.

Re: Motion blur for Shape3DPlanet node

PostPosted: Mon May 22, 2023 6:26 am
by UserNoah
You could also use the vectors provided by the Renderer3D with the vector motion blur. No need to compute them with optical flow.
Sometimes it’s acceptable and faster that way.
I myself often do that as long as I don’t need curved motion blur.

Re: Motion blur for Shape3DPlanet node

PostPosted: Mon May 22, 2023 2:54 pm
by sheva7
UserNoah wrote:You could also use the vectors provided by the Renderer3D with the vector motion blur. No need to compute them with optical flow.
Sometimes it’s acceptable and faster that way.
I myself often do that as long as I don’t need curved motion blur.


Thank you Noah for the advice! I wanted to try this, but I couldn't do that because I don't quite understand the process .... I checked Fusion manual...
2023-05-22 (2).png
2023-05-22 (2).png (215.11 KiB) Viewed 4211 times


What is the VECTOR_PASS here?
There is no node "VECTOR_PASS"...

Re: Motion blur for Shape3DPlanet node

PostPosted: Mon May 22, 2023 3:03 pm
by sheva7
Bryan Ray wrote:If you've got a 3d system, the motion blur in the Renderer3D will give you the best results, but you will likely need to turn up the Quality slider so it gives you sufficient samples. How high it needs to go depends on how fast things are moving. Remember that you can overdrive it by typing in a number bigger than the slider will reach. I usually set it at 20 or so for motion graphics work. Just keep in mind that each sample is another full render, so try to set it as low as you can without seeing banding.

If you need to apply motion blur to 2d image, I prefer ReelSmart Motion Blur, but it's an OFX plug-in that has a cost of its own. So you need Fusion or Resolve Studio (~US$300) and the RSMB license, which is US$70 for a node-locked license or something like US$250 for a floating one.

I've never cared much for the artifacts created by optical flow-based motion blur, but maybe blurring the vectors could help. And if you're running out of VRAM (which surprises me unless you're dealing with super huge images), you could always disable GPU processing for whichever node is causing problems. Likely the Optical Flow vector generation. Of course, that slows things down considerably, but you should pre-render the vectors to EXR, anyway.


Thank you Bryan for detailed answer!
Ad VRAM issue - I use as a texture a 44MB picture. As far as I use optical flow node my Davinci Resolve Studio 18.1.4 hangs and crashes few seconds later...

what about the workaround - i render a sequence at 2x speed, then i retime the clip and calculate intermediate frames with optical flow and speed warp? is this an option for motion blur effect?

Re: Motion blur for Shape3DPlanet node

PostPosted: Mon May 22, 2023 3:05 pm
by UserNoah
You need to enable the vector pass in the auxiliary channels on the Renderer3D

Code: Select all
{
   Tools = ordered() {
      FastNoise1 = FastNoise {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 4.72, },
            XScale = Input { Value = 5.98, },
            Color1Alpha = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 443.333, 38.2727 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 4.37486690000556, },
            AoV = Input { Value = 31.3, },
            FLength = Input { Value = 21.2032342970737, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 553.333, 110.394 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            MaterialInput = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 443.333, 112.818 } },
      },
      Transform3D1 = Transform3D {
         CtrlWZoom = false,
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            ["Transform3DOp.Rotate.Y"] = Input {
               Value = 5010,
               Expression = "time*5",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 443.333, 168.848 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 553.333, 168.848 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Vector"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Vector"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = 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.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.Lighting"] = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 780, 168.848 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      VectorMotionBlur1 = VectorMotionBlur {
         Inputs = {
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 914.667, 168.848 } },
      }
   }
}

Re: Motion blur for Shape3DPlanet node

PostPosted: Mon May 22, 2023 5:18 pm
by sheva7
UserNoah wrote:You need to enable the vector pass in the auxiliary channels on the Renderer3D

Code: Select all
{
   Tools = ordered() {
      FastNoise1 = FastNoise {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 4.72, },
            XScale = Input { Value = 5.98, },
            Color1Alpha = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 443.333, 38.2727 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 4.37486690000556, },
            AoV = Input { Value = 31.3, },
            FLength = Input { Value = 21.2032342970737, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 553.333, 110.394 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            MaterialInput = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 443.333, 112.818 } },
      },
      Transform3D1 = Transform3D {
         CtrlWZoom = false,
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            ["Transform3DOp.Rotate.Y"] = Input {
               Value = 5010,
               Expression = "time*5",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 443.333, 168.848 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 553.333, 168.848 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Vector"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Vector"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = 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.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.Lighting"] = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 780, 168.848 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      },
      VectorMotionBlur1 = VectorMotionBlur {
         Inputs = {
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 914.667, 168.848 } },
      }
   }
}



I enabled the vectors in Renderer3D, but the output of Vector Motion Blur node is still empty

Code: Select all
{
   Tools = ordered() {
      Renderer3D1 = Renderer3D {
         CustomData = { ToolVersion = 2, },
         Inputs = {
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGLUV.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            Quality = Input { Value = 10, },
            SampleSpread = Input { Value = 0.73, },
            GlobalOut = Input { Value = 1349, },
            Width = Input { Value = 4096, },
            Height = Input { Value = 2304, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Reporting = Input { Value = 1, },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Vector"] = Input { Value = 1, },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererSoftware.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 49.5 } },
      },
      VectorMotionBlur1 = VectorMotionBlur {
         CtrlWZoom = false,
         Inputs = {
            Vectors = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 49.5 } },
      },
      MediaOut1 = MediaOut {
         Inputs = {
            Index = Input { Value = "0", },
            Input = Input {
               SourceOp = "VectorMotionBlur1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 49.5 } },
      }
   }
}

Re: Motion blur for Shape3DPlanet node

PostPosted: Mon May 22, 2023 9:59 pm
by sheva7
Bryan Ray wrote:I've never cared much for the artifacts created by optical flow-based motion blur, but maybe blurring the vectors could help. And if you're running out of VRAM (which surprises me unless you're dealing with super huge images), you could always disable GPU processing for whichever node is causing problems. Likely the Optical Flow vector generation. Of course, that slows things down considerably, but you should pre-render the vectors to EXR, anyway.


How can I disable GPU acceleration on node level?

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 12:11 am
by Bryan Ray
Switch to the Settings tab

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 4:09 am
by sheva7
Bryan Ray wrote:Switch to the Settings tab

Thank you Bryan for quick responses! I

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 4:12 am
by sheva7
UserNoah wrote:You could also use the vectors provided by the Renderer3D with the vector motion blur. No need to compute them with optical flow.
Sometimes it’s acceptable and faster that way.
I myself often do that as long as I don’t need curved motion blur.


Could you please post here a small example showing this option. Thank you so much Noah!

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 4:19 am
by UserNoah
The nodes that I posted are already the full example. The Renderer3D creates the necessary vectors and Vector Motion Blur uses those to blur the image accordingly.
But I might be misunderstanding what you actually want.

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 8:38 am
by sheva7
UserNoah wrote:The nodes that I posted are already the full example. The Renderer3D creates the necessary vectors and Vector Motion Blur uses those to blur the image accordingly.
But I might be misunderstanding what you actually want.

Noah, thanks for quick response. I found the failure, I sent only vectors to Vector Motion Blur node, thats why my output was empty...

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 8:49 am
by sheva7
UserNoah wrote:You could also use the vectors provided by the Renderer3D with the vector motion blur. No need to compute them with optical flow.
Sometimes it’s acceptable and faster that way.
I myself often do that as long as I don’t need curved motion blur.


what do you mean by curved motion blur? as soon as you work with 3D objects, you wouldn't have purely linear movements, do you?

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 10:05 am
by UserNoah
sheva7 wrote:what do you mean by curved motion blur? as soon as you work with 3D objects, you wouldn't have purely linear movements, do you?


Take a look at this setup:

Code: Select all
{
   Tools = ordered() {
      VectorMotionBlur1 = VectorMotionBlur {
         Inputs = {
            Input = Input {
               SourceOp = "Renderer3D1_1",
               Source = "Output",
            },
            XScale = Input { Value = 0.55, },
         },
         ViewInfo = OperatorInfo { Pos = { 961.607, 501.307 } },
      },
      Renderer3D1_1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            Quality = Input { Value = 10, },
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Vector"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 961.607, 445.316 } },
      },
      Renderer3D1 = Renderer3D {
         CtrlWZoom = false,
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            MotionBlur = Input { Value = 1, },
            Quality = Input { Value = 20, },
            ShutterAngle = Input { Value = 360, },
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1500, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 788.795, 443.554 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 875.01, 354.123 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = 27.68, },
            AoV = Input { Value = 19.2642683071402, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 742.046, 354.123 } },
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            ["Transform3DOp.Rotate.Z"] = Input {
               Value = 93285,
               Expression = "time*90",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 875.01, 321.123 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 2.65374099267217, },
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 875.01, 266.177 } },
      }
   }
}


Left is using iterative/subframe motionblur the right is using the vectors. The vectors can only interpolate between the current and the next frame, creating a linear motion blur streak. The subframe motionblur can correctly show the curved path the sphere is taking. But it needs many samples and may be slower to render for complex scenes.

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 8:03 pm
by sheva7
UserNoah wrote:
sheva7 wrote:what do you mean by curved motion blur? as soon as you work with 3D objects, you wouldn't have purely linear movements, do you?


Left is using iterative/subframe motionblur the right is using the vectors. The vectors can only interpolate between the current and the next frame, creating a linear motion blur streak. The subframe motionblur can correctly show the curved path the sphere is taking. But it needs many samples and may be slower to render for complex scenes.


Thank you Noah for the example and detailed answer. So, you describe here 2 options - motion blur setup directly in Renderer3D, vector motion blur without optical flow, but there is the 3rd method - using optical flow before vector motion blur, which seems to be most intensiv

do you have an idea, what VECTOR_PASS in Davinci Fusion tutorial is?

2023-05-22 (2).png
2023-05-22 (2).png (215.11 KiB) Viewed 3764 times

Re: Motion blur for Shape3DPlanet node

PostPosted: Tue May 23, 2023 8:22 pm
by sheva7
Here are two screenshots showing flow control and vector motion blur...
I don't how "perfect" motion blur should look, but what i have seems just blurring the image without any *motion* blur

2023-05-23 (3).png
2023-05-23 (3).png (836.18 KiB) Viewed 3758 times


2023-05-23 (4).png
2023-05-23 (4).png (785.82 KiB) Viewed 3758 times

Re: Motion blur for Shape3DPlanet node

PostPosted: Wed May 24, 2023 10:08 am
by Andrew Shtern
sheva7 wrote:do you have an idea, what VECTOR_PASS in Davinci Fusion tutorial is?


It's a Loader. The tutorial assumes that you have a multi-pass 3d render, with one of the passes (AOVs) being Motion Vectors.

Re: Motion blur for Shape3DPlanet node

PostPosted: Wed May 24, 2023 10:19 am
by Andrew Shtern
sheva7 wrote:Here are two screenshots showing flow control and vector motion blur...
I don't how "perfect" motion blur should look, but what i have seems just blurring the image without any *motion* blur


What exactly you're expecting to see? Motion blur for the rotating sphere basically will look like a directional blur perpendicular to the axis of rotation. It looks to me that this is what you have on the screenshots. Check your vectors, what is generated by the Optical Flow node?

Re: Motion blur for Shape3DPlanet node

PostPosted: Wed May 24, 2023 1:53 pm
by sheva7
Andrew Shtern wrote:
sheva7 wrote:Here are two screenshots showing flow control and vector motion blur...
I don't how "perfect" motion blur should look, but what i have seems just blurring the image without any *motion* blur


What exactly you're expecting to see? Motion blur for the rotating sphere basically will look like a directional blur perpendicular to the axis of rotation. It looks to me that this is what you have on the screenshots. Check your vectors, what is generated by the Optical Flow node?


How can I check my vectors? Could you please give an example that I can better understand your thoughts...

Re: Motion blur for Shape3DPlanet node

PostPosted: Sat Jun 17, 2023 11:21 am
by Andrew Shtern
sheva7 wrote:How can I check my vectors? Could you please give an example that I can better understand your thoughts...


Just look at the output of the Optical Flow node.