Yes, you do. Here's a camera node with the expressions already set up:
Code: Select all
{
Tools = ordered() {
Camera3D1 = Camera3D {
CtrlWZoom = false,
NameSet = true,
CurrentSettings = 6,
CustomData = {
Settings = {
[1] = {
Tools = ordered() {
Camera3D1 = Camera3D {
CtrlWZoom = false,
NameSet = true,
CustomData = {
},
Inputs = {
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 = 1, },
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
},
ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
}
}
},
[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 = {
},
Name = "Camera3D1_8"
}
}
}
}
},
Inputs = {
["Transform3DOp.Translate.X"] = Input { Expression = "self.ImageInput.Metadata.Translate.X", },
["Transform3DOp.Translate.Y"] = Input { Expression = "self.ImageInput.Metadata.Translate.Y", },
["Transform3DOp.Translate.Z"] = Input { Expression = "self.ImageInput.Metadata.Translate.Z", },
["Transform3DOp.Rotate.RotOrder"] = Input { Value = FuID { "ZXY" }, },
["Transform3DOp.Rotate.X"] = Input { Expression = "self.ImageInput.Metadata.Rotate.X", },
["Transform3DOp.Rotate.Y"] = Input { Expression = "self.ImageInput.Metadata.Rotate.Y", },
["Transform3DOp.Rotate.Z"] = Input { Expression = "self.ImageInput.Metadata.Rotate.Z", },
AovType = Input { Value = 1, },
AoV = Input {
Value = 19.2642683071402,
Expression = "self.ImageInput.Metadata.RSCameraFOV or self.ImageInput.Metadata['rs/camera/fov']",
},
FLength = Input { Value = 49.0568334445481, },
PlaneOfFocus = Input { Expression = "self.ImageInput.Metadata.RSCameraDOFFocusDistance or self.ImageInput.Metadata['rs/camera/DOFFocusDistance']", },
["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
FilmBack = Input { Value = 1, },
FilmGate = Input { Value = FuID { "HD" }, },
ApertureW = Input { Value = 1.6, },
ApertureH = Input { Value = 0.9, },
ImagePlaneEnabled = Input { Value = 0, },
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
},
ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
}
},
ActiveTool = "Camera3D1"
}
Just connect your rendered image to the ImageInput of the camera, and it should just work.
Disclaimers: Redshift recently updated their 3DS Max plug-in so it would output metadata, but the Max coordinate system is different. I haven't yet gone back in to adjust the fuse for Max renders. It has not been tested with Cinema4D.