Jump to: Board index » General » Fusion

Z pass compositing

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

arconz

  • Posts: 40
  • Joined: Sun Aug 15, 2021 2:36 am
  • Location: Auckland, NZ
  • Real Name: Paul Gunson

Z pass compositing

PostThu Nov 04, 2021 9:04 pm

Hi all - a couple of rookie questions on z compositing with Fusion. I render EXRs from Maya (Redshift) with separate z passes. I'm looking for a basic tutorial that covers creating blur / fog etc with passes (the tutorials I've found so far work with 3D space in Fusion).

Also I found the Deep Pixel tools in Fusion, manual says they can work with AOVs from rendered files... does that mean Multilayered EXRs or actual Deep EXRs? I guess I could easily test that as Redshift can do both.
Resolve Studio 18.6.6 Build 7, Windows 10 Pro 22H2 64bit
Ryzen 9 5950X, 64GB DDR4-3600, 2x2TB Gen4 M.2 SSD, RTX 3060 12GB
Offline
User avatar

Bryan Ray

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

Re: Z pass compositing

PostFri Nov 05, 2021 7:10 pm

Fusion's Deep Pixel nomenclature predates Weta's Deep tools. They're not the same thing. In Fusion terms, deep means tools that can access various technical AOVs such as depth and world position, not the sliced volumes that most people think of as deep.

Each of the deep pixel tools works slightly differently, and they all use different AOVs to do their thing. Some also require a camera from 3d-land. Let's take them in order, and along the way, I'll give you a cool Redshift tool and tip that'll help.

Ambient Occlusion
This creates a screen-space post-processed AO image. It requires two utility buffers in addition to RGB: Normals and Z. These AOVs must be shuffled into the stream with the RGB channels, and all of it goes to the main Input. If you've got all of your AOVs packed into one EXR, you can just assign the needed channels in the Loader, but if you split the AOVs into discrete files, you'll need to use a ChannelBooleans to insert them into the image.

The node also requires a 3d camera in order to make its calculations. Traditionally, you'd need to export a camera to fbx or alembic and import it into Fusion, but since Redshift embeds information about its camera into the images it renders, you can instead extract that information directly from your EXRs and apply it to a Fusion camera.

If you have Reactor, download the Redshift Utilities atom. Create a Camera3D and switch to Version 6. This is a preset that has expressions that will pull information from the metadata of an input image to configure the camera's transforms and Angle of View. However, the Redshift metadata is not in a format the expressions can parse, so you also need the RSCameraExtractor node, which interprets the camera transform matrix into Euler angles that Fusion understands.

Plug any Redshift render image into the input of the RSCameraExtractor. Plug the output of the Extractor into the ImageInput of the Camera3D. Then plug the output of the Camera3D into the Camera input of the Ambient Occlusion.

You may also need the RsVectorFlipper node to convert the Normals AOV to Fusion standard. Redshift's z axis is inverted.

DepthBlur
DepthBlur is intended to use the Z AOV to control the strength of the blur or defocus effect. Unlike AO, it doesn't require the Z buffer to be packaged in the main input—you can connect Z to the green input. It does work if Z is in the main input, too, but being able to put any image, and use channels other than Z as the blur strength source, makes it more versatile.

It often takes some fiddling with the Z Scale control to get reasonable results.

One cool feature of DepthBlur that we'll see some more in other tools is its ability to sample values from channels other than RGB. If you drag the Sample button over an image that contains a Z channel, it will grab its Focal Point value directly from Z. The image you're sampling from need not even be the one connected to the DepthBlur's input. And in fact, you can sample from a 3D scene, but the value you get will be from whatever camera you're looking through, so make sure you're looking through the shot camera instead the Perspective camera!

Fog
There are two Fog tools in Fusion. This is the simpler of the two. The main (yellow) input gets your RGBA+Z image, and the other gets an image that creates the "texture" of the fog. A FastNoise is quick and easy. I find this tool difficult to use because the sliders are very twitchy.

The Z channel needs to be bundled with RGB for this one to work.

Shader
Shader uses the Normals to do limited relighting. Again, the Normals need to be bundled with the RGBA image—there's no input to add them separately. The second input can take a reflection map, which I believe should be an equirectangular (otherwise described as latlong) image. It might be necessary to run it through the SphereMap node first, but I don't think so.

Texture
Texture is designed to replace a texture map on a rendered object if you have a UV AOV. More commonly, it's used to process STMaps for lens distortion. I've written quite a lot on the Texture tool elsewhere, so I'll just drop a link to my blog:
http://www.bryanray.name/wordpress/blac ... ture-node/

VolumeFog
There are three more tools found in the Position category that should also be mentioned. All three make use of the World Position buffer.

VolumeFog is a more advanced version of the Fog tool, but it uses the World Position buffer instead of Z. This guy has some seriously powerful applications, but I'll be honest: I don't fully understand it. Instead, I'll give you a link to another forum, with a very good tutorial that should help:
https://www.steakunderwater.com/wesuckl ... =16&t=3200

VolumeMask
VolumeMask can be used to create masks that will "stick" to their location in 3d space, no matter what the camera's doing. Use it to do things like adding a pool of light under a streetlight that you forgot to turn on in the render. We used to use it to isolate bits of the head of the talking dog in Dog With a Blog, as described in this article:
http://www.bryanray.name/wordpress/face ... nd-fusion/

ZtoWorldPosition
This one is used to convert a Z depth AOV into a World Position. Like Ambient Occlusion, it requires a camera. I can't think of many occasions these days when you'd need this thing, unless the lighter just forgot to turn on the position buffer and you don't have time for a rerender.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

Bryan Ray

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

Re: Z pass compositing

PostFri Nov 05, 2021 7:13 pm

I suppose I should also provide a sample set-up, so you can see how the tools are used:

Code: Select all
{
   Tools = ordered() {
      DirectionalLight1 = LightDirectional {
         Inputs = {
            ["ShadowLightInputs3D.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -275, -49.5 } },
      },
      Camera3D1 = Camera3D {
         NameSet = true,
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     Camera3D1 = 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",
                        CtrlWZoom = false,
                        NameSet = true,
                        ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [6] = {
                  Tools = ordered() {
                     Camera3D1 = 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,
                        NameSet = true,
                        ViewInfo = OperatorInfo { Pos = { 387, 145 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -2.18201539031694, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 2.45153876404221, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.60293554223647, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -30.2000007629395, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -31.2000007629395, },
            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 = { -165, -82.5 } },
      },
      ReplaceNormals3D1 = ReplaceNormals3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D2",
               Source = "Output",
            },
            ["Normals.Flip"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -275, -16.5 } },
      },
      Shape3D2 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["SurfaceSphereInputs.Radius"] = Input { Value = 50, },
            ["SurfaceSphereInputs.Controls.Nest"] = Input { Value = 1, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 4, }
         },
         ViewInfo = OperatorInfo { Pos = { -385, -16.5 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceTorusInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceTorusInputs.Radius"] = Input { Value = 1.1047, },
            ["SurfaceTorusInputs.Section"] = Input { Value = 0.157, },
            ["SurfaceTorusInputs.SubdivisionLevelBase"] = Input { Value = 100, },
            ["SurfaceTorusInputs.SubdivisionLevelHeight"] = Input { Value = 100, },
            ["SurfaceTorusInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { -275, 16.5 } },
      },
      ReplaceMaterial3D1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.22949, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.60630392, },
            ["MtlStdInputs.Diffuse.Color.Blue"] = Input { Value = 0.866, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { -55, 49.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            ["Transform3DOp.Scale.X"] = Input { Value = 100, },
            SceneInput1 = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Shape3D1_1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "DirectionalLight1",
               Source = "Output",
            },
            SceneInput5 = Input {
               SourceOp = "ReplaceNormals3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -165, 49.5 } },
      },
      Shape3D1_1 = Shape3D {
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["Transform3DOp.Rotate.X"] = Input { Value = 90, },
            Shape = Input { Value = FuID { "SurfaceTorusInputs" }, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfaceTorusInputs.SubdivisionLevelBase"] = Input { Value = 100, },
            ["SurfaceTorusInputs.SubdivisionLevelHeight"] = Input { Value = 100, },
            ["SurfaceTorusInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { -275, 49.5 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "ReplaceMaterial3D1",
               Source = "Output",
            },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Z"] = Input { Value = 1, },
            ["RendererSoftware.Channels.Normal"] = Input { Value = 1, },
            ["RendererSoftware.Channels.TexCoord0"] = Input { Value = 1, },
            ["RendererSoftware.Channels.WorldCoord"] = Input { Value = 1, },
            ["RendererSoftware.LightingEnabled"] = Input { Value = 1, },
            ["RendererSoftware.ShadowsEnabled"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
      },
      Checkerboard = MacroOperator {
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\Creator\\"
               }
            },
         },
         Inputs = ordered() {
            Comments = Input { Value = "Muse Tools Library\r\nby Joe Laude\r\nwww.musevfx.com", },
            Center = InstanceInput {
               SourceOp = "CustomTool1",
               Source = "PointIn1",
            },
            CheckerSize = InstanceInput {
               SourceOp = "CustomTool1",
               Source = "CheckerSize",
               Default = 64,
            },
            Width = InstanceInput {
               SourceOp = "Background1",
               Source = "Width",
               Default = 1920,
            },
            Height = InstanceInput {
               SourceOp = "Background1",
               Source = "Height",
               Default = 1080,
            }
         },
         Outputs = {
            Output = InstanceOutput {
               SourceOp = "CustomTool1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 0, 115.5 } },
         Tools = ordered() {
            Background1 = Background {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.25757 } },
            },
            CustomTool1 = Custom {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  NumberIn1 = Input {
                     Value = 64,
                     Expression = "CheckerSize",
                  },
                  LUTIn1 = Input {
                     SourceOp = "CustomTool1LUTIn1",
                     Source = "Value",
                  },
                  LUTIn2 = Input {
                     SourceOp = "CustomTool1LUTIn2",
                     Source = "Value",
                  },
                  LUTIn3 = Input {
                     SourceOp = "CustomTool1LUTIn3",
                     Source = "Value",
                  },
                  LUTIn4 = Input {
                     SourceOp = "CustomTool1LUTIn4",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "(abs(floor((x-p1x)*(w/n1)))%2)", },
                  Intermediate2 = Input { Value = "(abs(floor((y-p1y)*(h/n1)))%2)", },
                  RedExpression = Input { Value = "abs(i1-i2)", },
                  GreenExpression = Input { Value = "abs(i1-i2)", },
                  BlueExpression = Input { Value = "abs(i1-i2)", },
                  NumberControls = Input { Value = 1, },
                  NameforNumber1 = Input { Value = "SquareSize", },
                  ShowNumber2 = Input { Value = 0, },
                  ShowNumber3 = Input { Value = 0, },
                  ShowNumber4 = Input { Value = 0, },
                  ShowNumber5 = Input { Value = 0, },
                  ShowNumber6 = Input { Value = 0, },
                  ShowNumber7 = Input { Value = 0, },
                  ShowNumber8 = Input { Value = 0, },
                  PointControls = Input { Value = 1, },
                  NameforPoint1 = Input { Value = "Center", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
                  Image1 = Input {
                     SourceOp = "Background1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 41.2576 } },
               UserControls = ordered() {
                  CheckerSize = {
                     INP_MinScale = 0,
                     INP_Integer = true,
                     INP_MinAllowed = 0,
                     LINKID_DataType = "Number",
                     INPID_InputControl = "SliderControl",
                     IC_ControlPage = 0,
                     INP_MaxScale = 100,
                     INP_Default = 64,
                  }
               }
            },
            CustomTool1LUTIn1 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 204, Green = 0, Blue = 0 },
            },
            CustomTool1LUTIn2 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 0, Green = 204, Blue = 0 },
            },
            CustomTool1LUTIn3 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 0, Green = 0, Blue = 204 },
            },
            CustomTool1LUTIn4 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 204, Green = 204, Blue = 204 },
            }
         },
      },
      Texture1 = Texture {
         Inputs = {
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Texture = Input {
               SourceOp = "CustomTool1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 115.5 } },
      },
      VolumeFog1 = VolumeFog {
         Inputs = {
            ["Rotate.RotOrder"] = Input { Value = FuID { "XYZ" }, },
            ScaleLock = Input { Value = 1, },
            Samples = Input { Value = 16, },
            ["Noise.Rotate.RotOrder"] = Input { Value = FuID { "XYZ" }, },
            ["Noise.Scale.Lock"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 181.5 } },
      },
      Shader1 = Shader {
         Inputs = {
            EquatorAngle = Input { Value = -48, },
            PolarHeight = Input { Value = -23.6, },
            DiffuseCurve = Input {
               SourceOp = "Shader1DiffuseCurve",
               Source = "Value",
            },
            SpecularCurve = Input {
               SourceOp = "Shader1SpecularCurve",
               Source = "Value",
            },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 82.5 } },
      },
      Shader1DiffuseCurve = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
               [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 0, Green = 0, Blue = 0 },
         NameSet = true,
      },
      Shader1SpecularCurve = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
               [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 0, Green = 0, Blue = 0 },
         NameSet = true,
      },
      Fog1 = Fog {
         Inputs = {
            ZNearPlane = Input { Value = -3.374742, },
            ZFarPlane = Input { Value = -4.555524, },
            ZScale = Input { Value = 1.108, },
            FogOpacity = Input { Value = 0.886, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Fog = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 49.5 } },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Color1Alpha = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 16.5 } },
      },
      VolumeMask1 = VolumeMask {
         Inputs = {
            ["Translate.X"] = Input { Value = -112.632431030273, },
            ["Translate.Y"] = Input { Value = 23.2498798370361, },
            ["Translate.Z"] = Input { Value = 47.669734954834, },
            ["Rotate.RotOrder"] = Input { Value = FuID { "XYZ" }, },
            ScaleLock = Input { Value = 1, },
            Size = Input { Value = 50, },
            Image = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 214.5 } },
      },
      ZtoWorldPos1 = ZtoWorldPos {
         CtrlWZoom = false,
         Inputs = {
            Image = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            SceneInput = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 247.5 } },
      },
      DepthBlur1 = DepthBlur {
         Inputs = {
            Filter = Input { Value = 2, },
            XBlurSize = Input { Value = 8.02, },
            FocalPoint = Input { Value = -4.05906295776367, },
            ZScale = Input { Value = 1, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, -16.5 } },
      },
      AmbientOcclusion1 = SSAO {
         Inputs = {
            KernelRadius = Input { Value = 0.24, },
            Gamma = Input { Value = 0.43, },
            Camera = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, -82.5 } },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

arconz

  • Posts: 40
  • Joined: Sun Aug 15, 2021 2:36 am
  • Location: Auckland, NZ
  • Real Name: Paul Gunson

Re: Z pass compositing

PostSun Nov 21, 2021 9:51 pm

Thanks heaps for this detailed reply! I am finally back in studio this week and am going to go over everything in depth.
Resolve Studio 18.6.6 Build 7, Windows 10 Pro 22H2 64bit
Ryzen 9 5950X, 64GB DDR4-3600, 2x2TB Gen4 M.2 SSD, RTX 3060 12GB

Return to Fusion

Who is online

Users browsing this forum: No registered users and 26 guests