Jump to: Board index » General » Fusion

3D > 2D: processing elements in 2D-land?

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

Dazzer

  • Posts: 228
  • Joined: Sat Aug 24, 2019 8:31 am
  • Real Name: Daz Harris

3D > 2D: processing elements in 2D-land?

PostWed Nov 13, 2019 11:22 pm

Hi folks,

Imagine, for the sake of argument:

I have a 3D world, consisting of only an image plane for the ground and a cube, moving (animated) across this "landscape".

I also have a camera that's performing a fairly complicated movement.

I bring this back into 2D via a renderer.

Now, i want to add trails and glow nodes to my cube.

Problem: trails & glow are also working on my 3D ground, which is not what i want.

This brings me to my question:

Obviously i can mitigate this by making an instance copies of my camera and attaching this to a 2nd merge and render that are dedicated to my 3D image plane.

But is there another, cheaper way to do this? Which doesn't involve creating another instance copy camera for each element that i want to process separately in 2D space?

Thanks!
Offline
User avatar

Bryan Ray

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

Re: 3D > 2D: processing elements in 2D-land?

PostWed Nov 13, 2019 11:44 pm

You could set an Object or Material ID to each object and send out an ObjectID channel from the renderer. Then you can mask using the OID channel.

Here's an example:

Code: Select all
{
   Tools = ordered() {
      Bitmap8 = BitmapMask {
         Inputs = {
            MaskWidth = Input { Value = 3840, },
            MaskHeight = Input { Value = 2160, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Image = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            UseObject = Input { Value = 1, },
            Object = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 2310, -214.5 } },
      },
      ColorCorrector4 = ColorCorrector {
         Inputs = {
            UseObject = Input { Value = 1, },
            ObjectID = Input { Value = 2, },
            WheelTintAngle1 = Input { Value = -0.589999556038665, },
            WheelTintLength1 = Input { Value = 0.6743, },
            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 = "ColorCorrector3",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2420, -148.5 } },
      },
      Bitmap7 = BitmapMask {
         Inputs = {
            MaskWidth = Input { Value = 3840, },
            MaskHeight = Input { Value = 2160, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Image = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Channel = Input { Value = FuID { "Luminance" }, },
            UseObject = Input { Value = 1, },
            Object = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 2310, -247.5 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1098, },
            Width = Input { Value = 3840, },
            Height = Input { Value = 2160, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Coverage"] = Input { Value = 1, },
            ["RendererSoftware.Channels.ObjectID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 2200, -148.5 } },
      },
      ColorCorrector3 = ColorCorrector {
         Inputs = {
            UseObject = Input { Value = 1, },
            ObjectID = Input { Value = 1, },
            WheelTintAngle1 = Input { Value = -0.207360731965488, },
            WheelTintLength1 = Input { Value = 0.4972, },
            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 = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2310, -148.5 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.329, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.329, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.329, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 1980, -181.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Shape3D1_1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2090, -148.5 } },
      },
      Shape3D1_1 = Shape3D {
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["Transform3DOp.Translate.X"] = Input { Value = -0.315247665712153, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -1.80318650815911, },
            Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.5, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.5, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.5, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 1980, -148.5 } },
      },
      Camera3D1 = Camera3D {
         NameSet = true,
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     Camera3D1_8 = Camera3D {
                        Inputs = {
                           ApertureW = Input { Value = 0.831496062992126 },
                           AoV = Input { Value = 19.2642683071402 },
                           ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" } },
                           ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1 },
                           ApertureH = Input { Value = 0.467716535433071 },
                           FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" } },
                           ["MtlStdInputs.MaterialID"] = Input { Value = 1 }
                        },
                        Name = "Camera3D1_8",
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { -2750, -1897.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [6] = {
                  Tools = ordered() {
                     Camera3D1_8 = Camera3D {
                        Inputs = {
                           FLength = Input { Value = 49.0568334445481 },
                           ["Transform3DOp.Translate.Z"] = Input { Expression = "self.ImageInput.Metadata.Translate.Z" },
                           ImagePlaneEnabled = Input { Value = 0 },
                           AoV = Input {
                              Value = 19.2642683071402,
                              Expression = "self.ImageInput.Metadata.RSCameraFOV or self.ImageInput.Metadata['rs/camera/fov']"
                           },
                           AovType = Input { Value = 1 },
                           ["Transform3DOp.Rotate.Y"] = Input { Expression = "self.ImageInput.Metadata.Rotate.Y" },
                           ApertureH = Input { Value = 0.9 },
                           FilmGate = Input { Value = FuID { "HD" } },
                           ["Transform3DOp.Rotate.X"] = Input { Expression = "self.ImageInput.Metadata.Rotate.X" },
                           ["Transform3DOp.Translate.X"] = Input { Expression = "self.ImageInput.Metadata.Translate.X" },
                           PlaneOfFocus = Input { Expression = "self.ImageInput.Metadata.RSCameraDOFFocusDistance or self.ImageInput.Metadata['rs/camera/DOFFocusDistance']" },
                           FilmBack = Input { Value = 1 },
                           ["Transform3DOp.Rotate.RotOrder"] = Input { Value = FuID { "ZXY" } },
                           ["MtlStdInputs.MaterialID"] = Input { Value = 1 },
                           ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" } },
                           ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1 },
                           ["Transform3DOp.Translate.Y"] = Input { Expression = "self.ImageInput.Metadata.Translate.Y" },
                           ApertureW = Input { Value = 1.6 },
                           ["Transform3DOp.Rotate.Z"] = Input { Expression = "self.ImageInput.Metadata.Rotate.Z" }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 550, -676.5 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -1.84789157272452, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.950770136163022, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 2.46348646635843, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -17.5999984741211, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -35.7999992370605, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1980, -115.5 } },
      },
      SoftGlow1 = SoftGlow {
         CtrlWZoom = false,
         Inputs = {
            Filter = Input { Value = FuID { "Multi-box" }, },
            Passes = Input { Value = 16, },
            Input = Input {
               SourceOp = "ColorCorrector4",
               Source = "Output",
            },
            GlowMask = Input {
               SourceOp = "Bitmap8",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 2530, -148.5 } },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Dazzer

  • Posts: 228
  • Joined: Sat Aug 24, 2019 8:31 am
  • Real Name: Daz Harris

Re: 3D > 2D: processing elements in 2D-land?

PostThu Nov 14, 2019 12:10 am

Wow, that's genius, a million thanks!
Offline

Dazzer

  • Posts: 228
  • Joined: Sat Aug 24, 2019 8:31 am
  • Real Name: Daz Harris

Re: 3D > 2D: processing elements in 2D-land?

PostThu Nov 14, 2019 12:36 am

Sorry Bryan, just one more question on this:

In the comp below i'm using a Bright/Contrast node to remove objects.

But it's not giving me the behavior i want.

As it is now, I can use it to remove any one of the three objects......but what i actually want is to "solo" the objects. So that only one of the 3 objects passes through the node.

How do i achieve that?

(i know i can do it by giving two of the objects the same OID, but i want each one to have it's own OID)



Code: Select all
{
   Tools = ordered() {
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -1.69463752771709, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.767723244443471, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -5.34217238255258, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -7.80000019073486, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = 184.6, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 4, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 158.667, 176.394 } },
      },
      white = Shape3D {
         NameSet = true,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -1.217, },
            Shape = Input { Value = FuID { "SurfaceCylinderInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["SurfaceCylinderInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { 133.333, 118.273 } },
      },
      green = Shape3D {
         NameSet = true,
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["Transform3DOp.Translate.X"] = Input { Value = -3.32324321852873, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.152191945164344, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.0878676937865432, },
            Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.2535312, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.52, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.23036, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["SurfaceCubeInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 136, 71.2727 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         CtrlWZoom = false,
         Inputs = {
            UseObject = Input { Value = 1, },
            ObjectID = Input { Value = 1, },
            Alpha = Input { Value = 1, },
            Gain = Input { Value = 0, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 562, 63.3939 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "red",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "green",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "white",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 310.667, 62.1818 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            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.ObjectID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 433.333, 64.606 } },
      },
      red = Shape3D {
         NameSet = true,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 1.118, },
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.394, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.086286, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.086286, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 140.667, 28.5758 } },
      }
   }
}
Offline

xunile

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

Re: 3D > 2D: processing elements in 2D-land?

PostThu Nov 14, 2019 3:07 am

I would use a Bitmap node like Bryan used to mask out the 2 you don't want.

Code: Select all
{
   Tools = ordered() {
      red = Shape3D {
         NameSet = true,
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["Transform3DOp.Translate.X"] = Input { Value = 1.118, },
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.394, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.086286, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.086286, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { -758, -105.303 } },
      },
      green = Shape3D {
         NameSet = true,
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["Transform3DOp.Translate.X"] = Input { Value = -3.32324321852873, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.152191945164344, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.0878676937865432, },
            Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.2535312, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.52, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.23036, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { -762.667, -62.6062 } },
      },
      Merge3D1_1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "red",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "green",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1_1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "white",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -588, -70.4849 } },
      },
      white = Shape3D {
         NameSet = true,
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["Transform3DOp.Translate.X"] = Input { Value = -1.217, },
            Shape = Input { Value = FuID { "SurfaceCylinderInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
            ["SurfaceCylinderInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { -765.334, -14.3937 } },
      },
      Renderer3D1_1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalIn = Input { Value = 108000, },
            GlobalOut = Input { Value = 108179, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1_1",
               Source = "Output",
            },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.ObjectID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -465.334, -70.485 } },
      },
      Bitmap1 = BitmapMask {
         CtrlWZoom = false,
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            Invert = Input { Value = 1, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Image = Input {
               SourceOp = "Renderer3D1_1",
               Source = "Output",
            },
            UseObject = Input { Value = 1, },
            Object = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -352, -122.333 } },
      },
      Camera3D1_1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -1.69463752771709, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.767723244443471, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -5.34217238255258, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -7.80000019073486, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = 184.6, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "Mono" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 4, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { -738, 41.9091 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            ObjectID = Input { Value = 1, },
            Alpha = Input { Value = 1, },
            Gain = Input { Value = 0, },
            Input = Input {
               SourceOp = "Renderer3D1_1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Bitmap1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { -143.334, -69.2728 } },
      }
   }
}
Attachments
2019-11-13 (2).png
2019-11-13 (2).png (238.86 KiB) Viewed 2672 times
2019-11-13.png
2019-11-13.png (256.71 KiB) Viewed 2672 times
2019-11-13 (1).png
2019-11-13 (1).png (239.11 KiB) Viewed 2672 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

Dazzer

  • Posts: 228
  • Joined: Sat Aug 24, 2019 8:31 am
  • Real Name: Daz Harris

Re: 3D > 2D: processing elements in 2D-land?

PostThu Nov 14, 2019 7:08 am

Thanks, that works.

I do think it would be cool if they added a "use object inverted" checkbox option, that would keep the node tree a little cleaner as it would remove the need for those extra bitmap masks when one wanted to just tap off one element like in my example.
Offline

Dazzer

  • Posts: 228
  • Joined: Sat Aug 24, 2019 8:31 am
  • Real Name: Daz Harris

Re: 3D > 2D: processing elements in 2D-land?

PostThu Nov 14, 2019 9:49 am

Sorry guys, i'm still trying to get my head around this!

Please check out the "toy" comp below.

In it i have a 3D cube and ground plane.

Using OID i have managed to heavily blur the cube in 2D-land.

But there's a problem: the ground plane still has the cube outline mask.

This ruins the effect.

Is it somehow possible to have the renderer output the elements in isolation, without a mask showing the outline of the invisible objects?

Or to achieve this, does one need to use multiple 3D merge and renderers for this sort of thing (check out the second comp below for that)

EDIT: actually, the second solution is probably more elegent, but my worry is that if you use this method for a complicated composition, it might get CPU expensive with all the multiple merges & renderers!?

---------------------------------------------------------------------------------------------------------

Code: Select all
{
Tools = ordered() {
Cube_Obj_1 = Shape3D {
NameSet = true,
Inputs = {
["Transform3DOp.Translate.Y"] = Input { Value = 0.464, },
["Transform3DOp.Translate.Z"] = Input { Value = 0.866130220859411, },
["Transform3DOp.Rotate.X"] = Input { Value = -1.4062072574161, },
["Transform3DOp.Rotate.Y"] = Input { Value = -41.7000000001863, },
["Transform3DOp.Scale.X"] = Input { Value = 0.237, },
Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.368391, },
["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.581015832, },
["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.843, },
["MtlStdInputs.MaterialID"] = Input { Value = 3, },
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
["SurfaceCubeInputs.ObjectID.Nest"] = Input { Value = 1, },
["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 1, }
},
ViewInfo = OperatorInfo { Pos = { 524, 43.7273 } },
},
Ground_Obj_2 = ImagePlane3D {
NameSet = true,
Inputs = {
["Transform3DOp.Translate.Y"] = Input { Value = -0.0994912891216342, },
["Transform3DOp.Translate.Z"] = Input { Value = -1.45, },
["Transform3DOp.Rotate.X"] = Input { Value = -90, },
["Transform3DOp.Scale.X"] = Input { Value = 9.45, },
["SurfacePlaneInputs.ObjectID.Nest"] = Input { Value = 1, },
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
MaterialInput = Input {
SourceOp = "FastNoise1",
Source = "Output",
},
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
},
ViewInfo = OperatorInfo { Pos = { 518, 105.545 } },
},
FastNoise1 = FastNoise {
Inputs = {
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
Detail = Input { Value = 9.76, },
Contrast = Input { Value = 3.03, },
XScale = Input { Value = 16.85, },
Color1Red = Input { Value = 0.488, },
Color1Green = Input { Value = 0.132248, },
Color1Blue = Input { Value = 0.132248, },
Color1Alpha = Input { Value = 1, },
Color2Red = Input { Value = 0.59089592, },
Color2Green = Input { Value = 0.89, },
Color2Blue = Input { Value = 0.33197, },
},
ViewInfo = OperatorInfo { Pos = { 388, 106.758 } },
},
Merge3D1 = Merge3D {
Inputs = {
SceneInput1 = Input {
SourceOp = "Ground_Obj_2",
Source = "Output",
},
SceneInput2 = Input {
SourceOp = "Camera3D1",
Source = "Output",
},
SceneInput3 = Input {
SourceOp = "Cube_Obj_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 644.667, 106.758 } },
},
Renderer3D1 = Renderer3D {
CustomData = {
ToolVersion = 2,
},
Inputs = {
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.ObjectID"] = Input { Value = 1, },
},
ViewInfo = OperatorInfo { Pos = { 767.333, 106.424 } },
},
Camera3D1 = Camera3D {
Inputs = {
["Transform3DOp.Translate.X"] = Input { Value = -0.015625, },
["Transform3DOp.Translate.Y"] = Input { Value = 0.572, },
["Transform3DOp.Translate.Z"] = Input { Value = 1.47684247423554, },
["Transform3DOp.Rotate.X"] = Input { Value = -3.9, },
["Transform3DOp.UseTarget"] = Input { Value = 1, },
["Transform3DOp.Target.X"] = Input { Value = 0.00447117164731026, },
["Transform3DOp.Target.Y"] = Input { Value = 0.494405925273895, },
["Transform3DOp.Target.Z"] = Input { Value = 0.984630286693573, },
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 = { 792, 17.9394 } },
},
Bitmap2 = BitmapMask {
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Image = Input {
SourceOp = "Renderer3D1",
Source = "Output",
},
UseObject = Input { Value = 1, },
Object = Input { Value = 2, },
},
ViewInfo = OperatorInfo { Pos = { 888, 147.364 } },
},
Bitmap1 = BitmapMask {
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Image = Input {
SourceOp = "Renderer3D1",
Source = "Output",
},
UseObject = Input { Value = 1, },
Object = Input { Value = 1, },
},
ViewInfo = OperatorInfo { Pos = { 882.667, 60.0909 } },
},
BrightnessContrast1 = BrightnessContrast {
Inputs = {
MultiplyByMask = Input { Value = 1, },
Input = Input {
SourceOp = "Renderer3D1",
Source = "Output",
},
EffectMask = Input {
SourceOp = "Bitmap1",
Source = "Mask",
}
},
ViewInfo = OperatorInfo { Pos = { 961.333, 107.03 } },
},
BrightnessContrast2 = BrightnessContrast {
CtrlWZoom = false,
Inputs = {
MultiplyByMask = Input { Value = 1, },
Alpha = Input { Value = 1, },
Input = Input {
SourceOp = "Renderer3D1",
Source = "Output",
},
EffectMask = Input {
SourceOp = "Bitmap2",
Source = "Mask",
}
},
ViewInfo = OperatorInfo { Pos = { 888, 201.909 } },
},
Merge1 = Merge {
Inputs = {
Background = Input {
SourceOp = "BrightnessContrast2",
Source = "Output",
},
Foreground = Input {
SourceOp = "Blur1",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 1086.67, 172.818 } },
},
Blur1 = Blur {
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
XBlurSize = Input { Value = 56.7, },
Input = Input {
SourceOp = "BrightnessContrast1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1089.33, 107.03 } },
}
}
}


---------------------------------------------------------------

Code: Select all
{
   Tools = ordered() {
      Ground_Obj_2 = ImagePlane3D {
         NameSet = true,
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.0994912891216342, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -1.45, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -90, },
            ["Transform3DOp.Scale.X"] = Input { Value = 9.45, },
            ["SurfacePlaneInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 522, 106.758 } },
      },
      Cube_Obj_1 = Shape3D {
         NameSet = true,
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.464, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.866130220859411, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -1.4062072574161, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -41.7000000001863, },
            ["Transform3DOp.Scale.X"] = Input { Value = 0.237, },
            Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.368391, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.581015832, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.843, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["SurfaceCubeInputs.ObjectID.Nest"] = Input { Value = 1, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 1, }
         },
         ViewInfo = OperatorInfo { Pos = { 528, 44.9394 } },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Detail = Input { Value = 9.76, },
            Contrast = Input { Value = 3.03, },
            XScale = Input { Value = 16.85, },
            Color1Red = Input { Value = 0.488, },
            Color1Green = Input { Value = 0.132248, },
            Color1Blue = Input { Value = 0.132248, },
            Color1Alpha = Input { Value = 1, },
            Color2Red = Input { Value = 0.59089592, },
            Color2Green = Input { Value = 0.89, },
            Color2Blue = Input { Value = 0.33197, },
         },
         ViewInfo = OperatorInfo { Pos = { 392, 107.97 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.015625, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.572, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.47684247423554, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -3.9, },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            ["Transform3DOp.Target.X"] = Input { Value = 0.00447117164731026, },
            ["Transform3DOp.Target.Y"] = Input { Value = 0.494405925273895, },
            ["Transform3DOp.Target.Z"] = Input { Value = 0.984630286693573, },
            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 = { 680.667, 120.364 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Cube_Obj_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 692.667, 57.0606 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            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.ObjectID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 816, 55.5152 } },
      },
      Merge3D2 = Merge3D {
         CtrlWZoom = false,
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Ground_Obj_2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 660.667, 211.606 } },
      },
      Renderer3D2 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 793.333, 207.97 } },
      },
      BrightnessContrast2 = BrightnessContrast {
         Inputs = {
            MultiplyByMask = Input { Value = 1, },
            Alpha = Input { Value = 1, },
            Input = Input {
               SourceOp = "Renderer3D2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 936.667, 209.182 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            MultiplyByMask = Input { Value = 1, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 966, 108.242 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "BrightnessContrast2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Blur1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1090.67, 174.03 } },
      },
      Blur1 = Blur {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            XBlurSize = Input { Value = 56.7, },
            Input = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1093.33, 108.242 } },
      }
   }
}
Last edited by Dazzer on Thu Nov 14, 2019 8:14 pm, edited 1 time in total.
Offline
User avatar

Bryan Ray

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

Re: 3D > 2D: processing elements in 2D-land?

PostThu Nov 14, 2019 6:59 pm

The limitation of the ObjectID approach is that it doesn't handle overlaps very well. The Coverage pass does a little to ameliorate the problem, but it will never go away entirely, and you'll never be able to fill in a holdout, as you see in your first example.

To get the best quality, separate render layers (your second example) is the way to go. Yes, it's slower, but it maximizes flexibility and quality.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Dazzer

  • Posts: 228
  • Joined: Sat Aug 24, 2019 8:31 am
  • Real Name: Daz Harris

Re: 3D > 2D: processing elements in 2D-land?

PostWed Nov 27, 2019 10:38 am

Thanks Bryan, you're right, more control with separate renderers!

Return to Fusion

Who is online

Users browsing this forum: No registered users and 37 guests