Here is a Fusion .comp snippet you can copy/paste into your active Fusion composite. It shows visually a Transform Node > Crop node which is what Sander de Reget explained as option #1:
- Code: Select all
{
Tools = ordered() {
Crop = Crop {
CtrlWZoom = false,
NameSet = true,
Inputs = {
XSize = Input { Value = 3840, },
YSize = Input { Value = 2160, },
Input = Input {
SourceOp = "Transform",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1207, 181 } },
},
Transform = Transform {
NameSet = true,
Inputs = {
Center = Input { Value = { 0.877700356289181, 0.874365211453932 }, },
Size = Input { Value = 1.8, },
Input = Input {
SourceOp = "DaySky_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1097, 181 } },
},
DaySky_1 = DaySky {
CtrlWZoom = false,
NameSet = true,
Inputs = {
Width = Input { Value = 4608, },
Height = Input { Value = 2592, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 987, 181 } },
}
}
}
And this is a comp snippet example of what Sander de Reget explained as option #2:
- Code: Select all
{
Tools = ordered() {
Merge = Merge {
NameSet = true,
Inputs = {
Background = Input {
SourceOp = "Background",
Source = "Output",
},
Foreground = Input {
SourceOp = "DaySky_2",
Source = "Output",
},
Center = Input { Value = { 0.58, 0.57 }, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 1102, 350 } },
},
Background = Background {
CtrlWZoom = false,
NameSet = true,
Inputs = {
Width = Input { Value = 3840, },
Height = Input { Value = 2160, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
Gradient = Input {
Value = Gradient {
Colors = {
[0] = { 0, 0, 0, 1 },
[1] = { 1, 1, 1, 1 }
}
},
},
},
ViewInfo = OperatorInfo { Pos = { 992, 350 } },
},
DaySky_2 = DaySky {
NameSet = true,
Inputs = {
Width = Input { Value = 4608, },
Height = Input { Value = 2592, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 989, 314 } },
}
}
}
Fusion 3D System Sky PlacementAn additional option if your sky is panoramic and wraps around the left/right frame border is to map it onto a sphere mesh and then use a Camera3D+Renderer3D node to look at a specific region of the scene.
The basic workflow for this is to add a Shape3D node set to output a "sphere" shape. You can adjust the End Latitude if your source image is not a full LatLong texture, and only covers part of the sky zone vertically.
Then add a Camera3D node and connect it to the Shape3D node using a Merge3D node.
Finally connect a Renderer3D node to the Merge3D node. In the Renderer3D node the Camera attribute is set to "Camera3D1". You can choose if you want to use the OpenGL Renderer or the Software Renderer. The output resolution for the final image is defined on the Renderer3D node's Image tab.
- 3D Sky Placement in Fusion
- Fusion-3D-sky-placement.png (355.2 KiB) Viewed 1240 times
You can explore the elements in the comp using Fusion's 3D system by clicking on the Merge3D node and viewing the comp at that point.
This is an example Fusion .comp snippet you can explore:
- Code: Select all
{
Tools = ordered() {
Shape3D1 = Shape3D {
Inputs = {
Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
MaterialInput = Input {
SourceOp = "DaySky_3",
Source = "Output",
},
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
["SurfaceSphereInputs.SubdivisionLevelBase"] = Input { Value = 48, },
["SurfaceSphereInputs.SubdivisionLevelHeight"] = Input { Value = 48, },
["SurfaceSphereInputs.EndLat"] = Input { Value = 0, },
["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
},
ViewInfo = OperatorInfo { Pos = { 1100, 478.5 } },
},
DaySky_3 = DaySky {
NameSet = true,
Inputs = {
Width = Input { Value = 4608, },
Height = Input { Value = 2592, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 990, 478.5 } },
},
Camera3D1 = Camera3D {
CtrlWZoom = false,
Inputs = {
["Transform3DOp.Translate.X"] = Input { Value = 0.0670584585912424, },
["Transform3DOp.Translate.Y"] = Input { Value = -0.0171650974297559, },
["Transform3DOp.Translate.Z"] = Input { Value = 0.209915125204656, },
["Transform3DOp.Rotate.X"] = Input { Value = 10.5701255, },
["Transform3DOp.Rotate.Y"] = Input { Value = -14.6341481, },
["Transform3DOp.Rotate.Z"] = Input { Value = 0.798935009166598, },
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 = { 1210, 445.5 } },
},
Merge3D1 = Merge3D {
Inputs = {
SceneInput1 = Input {
SourceOp = "Shape3D1",
Source = "Output",
},
SceneInput2 = Input {
SourceOp = "Camera3D1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1210, 478.5 } },
},
Renderer3D1 = Renderer3D {
Inputs = {
Width = Input { Value = 3840, },
Height = Input { Value = 2160, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
SceneInput = Input {
SourceOp = "Merge3D1",
Source = "Output",
},
CameraSelector = Input { Value = FuID { "Camera3D1" }, },
RendererType = Input { Value = FuID { "RendererOpenGL" }, },
["RendererOpenGL.Texturing"] = Input { Value = 1, },
["RendererOpenGL.TextureDepth"] = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 1320, 478.5 } },
}
}
}