Skip to content

Instantly share code, notes, and snippets.

@AndrewHazelden
Last active March 23, 2025 17:04
Show Gist options
  • Save AndrewHazelden/bafa68cb3b880a92732443710eed3cbd to your computer and use it in GitHub Desktop.
Save AndrewHazelden/bafa68cb3b880a92732443710eed3cbd to your computer and use it in GitHub Desktop.
The Kartaverse "kvrRotate180VR.setting" effects template/macro allows you to apply VR180 SBS image rotation effects in Resolve/Fusion.
{
Tools = ordered() {
kvrRotate180VR = GroupOperator {
CtrlWZoom = false,
CustomData = {
Path = {
Map = {
["Setting:"] = "/Users/vfx/Andrew/Email/KartaVR/kvrRotate180VR/Release/2025-03-23 06.07 AM R1/"
}
},
},
Inputs = ordered() {
RotOrder = InstanceInput {
SourceOp = "L_PanoMap",
Source = "Rotate.RotOrder",
Name = "Order",
},
RotateX = InstanceInput {
SourceOp = "L_PanoMap",
Source = "Rotate.X",
Name = "X",
},
RotateY = InstanceInput {
SourceOp = "L_PanoMap",
Source = "Rotate.Y",
Name = "Y",
},
RotateZ = InstanceInput {
SourceOp = "L_PanoMap",
Source = "Rotate.Z",
Name = "Z",
},
MainInput1 = InstanceInput {
SourceOp = "i_Merge",
Source = "Foreground",
}
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "SBS_SetDomain",
Source = "Output",
}
},
ViewInfo = GroupInfo {
Pos = { 495, 115.5 },
Flags = {
AllowPan = false,
AutoSnap = true
},
Size = { 1446, 132.364, 723, 24.2424 },
Direction = "Horizontal",
PipeStyle = "Direct",
Scale = 1,
Offset = { 0, 0 }
},
Tools = ordered() {
SBS_SetDomain = SetDomain {
CtrlWZoom = false,
CtrlWShown = false,
NameSet = true,
Inputs = {
Mode = Input { Value = FuID { "Set" }, },
Input = Input {
SourceOp = "Combiner1",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { 660, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
R_unCrop = Crop {
CtrlWShown = false,
NameSet = true,
SourceOp = "L_unCrop",
Inputs = {
SettingsNest = Input {
},
XOffset = Input {
Value = 540,
Expression = "L_unCrop.Input.OriginalWidth * 0.25"
},
XSize = Input {
Value = 1080,
Expression = "L_unCrop.Input.OriginalWidth * 0.5"
},
YSize = Input {
Value = 1080,
Expression = "L_unCrop.Input.OriginalHeight"
},
ResetSize = Input {
},
ResetOffset = Input {
},
Input = Input {
SourceOp = "R_PanoMap",
Source = "Output",
},
AutoCrop = Input {
},
CommentsNest = Input {
},
FrameRenderScriptNest = Input {
},
StartRenderScripts = Input {
},
EndRenderScripts = Input {
}
},
ViewInfo = OperatorInfo { Pos = { 330, 41.7576 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
R_PanoMap = PanoMap {
CtrlWShown = false,
NameSet = true,
SourceOp = "L_PanoMap",
Inputs = {
EffectMask = Input {
},
SettingsNest = Input {
},
Rotation = Input {
},
Input = Input {
SourceOp = "R_SetDomain",
Source = "Output",
},
CommentsNest = Input {
},
FrameRenderScriptNest = Input {
},
StartRenderScripts = Input {
},
EndRenderScripts = Input {
}
},
ViewInfo = OperatorInfo { Pos = { 165, 41.7576 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
L_PanoMap = PanoMap {
CtrlWShown = false,
NameSet = true,
Inputs = {
From = Input { Value = FuID { "LatLong" }, },
Rotation = Input { Value = 1, },
["Rotate.RotOrder"] = Input { Value = FuID { "XYZ" }, },
Input = Input {
SourceOp = "L_SetDomain",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { 165, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
L_unCrop = Crop {
CtrlWShown = false,
NameSet = true,
Inputs = {
XOffset = Input {
Value = 540,
Expression = "L_unCrop.Input.OriginalWidth * 0.25",
},
XSize = Input {
Value = 1080,
Expression = "L_unCrop.Input.OriginalWidth * 0.5",
},
YSize = Input {
Value = 1080,
Expression = "L_unCrop.Input.OriginalHeight",
},
Input = Input {
SourceOp = "L_PanoMap",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { 330, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
Combiner1 = Combiner {
NameSet = true,
CustomData = {
ToolVersion = 2
},
Inputs = {
AddMetadata = Input { Value = 1, },
Image1 = Input {
SourceOp = "L_unCrop",
Source = "Output",
},
Image2 = Input {
SourceOp = "R_unCrop",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { 495.667, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
R_SetDomain = SetDomain {
CtrlWShown = false,
NameSet = true,
Inputs = {
Mode = Input { Value = FuID { "Set" }, },
Input = Input {
SourceOp = "R_Crop",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { 0, 41.7576 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
L_SetDomain = SetDomain {
CtrlWShown = false,
NameSet = true,
Inputs = {
Mode = Input { Value = FuID { "Set" }, },
Input = Input {
SourceOp = "L_Crop",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { 0, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
L_Crop = Crop {
CtrlWShown = false,
NameSet = true,
Inputs = {
XOffset = Input {
Value = -540,
Expression = "-L_Crop.Input.OriginalWidth * 0.5",
},
XSize = Input {
Value = 2160,
Expression = "L_Crop.Input.OriginalWidth * 2",
},
YSize = Input {
Value = 1080,
Expression = "L_Crop.Input.OriginalHeight",
},
Input = Input {
SourceOp = "Splitter1",
Source = "Image1",
}
},
ViewInfo = OperatorInfo { Pos = { -165, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
R_Crop = Crop {
CtrlWShown = false,
NameSet = true,
SourceOp = "L_Crop",
Inputs = {
SettingsNest = Input {
},
XOffset = Input {
Value = -540,
Expression = "-L_Crop.Input.OriginalWidth * 0.5"
},
XSize = Input {
Value = 2160,
Expression = "L_Crop.Input.OriginalWidth * 2"
},
YSize = Input {
Value = 1080,
Expression = "L_Crop.Input.OriginalHeight"
},
ResetSize = Input {
Value = 1,
},
ResetOffset = Input {
},
Input = Input {
SourceOp = "Splitter1",
Source = "Image2",
},
AutoCrop = Input {
},
CommentsNest = Input {
},
FrameRenderScriptNest = Input {
},
StartRenderScripts = Input {
},
EndRenderScripts = Input {
}
},
ViewInfo = OperatorInfo { Pos = { -165, 41.7576 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
Splitter1 = Splitter {
CustomData = {
ToolVersion = 2
},
Inputs = {
Input = Input {
SourceOp = "i_SetCanvasColor1",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { -330, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
i_SetCanvasColor1 = SetCanvasColor {
CtrlWShown = false,
NameSet = true,
Inputs = {
Alpha = Input { Value = 1, },
Input = Input {
SourceOp = "i_Merge",
Source = "Output",
}
},
ViewInfo = OperatorInfo { Pos = { -495, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
i_Merge = Merge {
CtrlWZoom = false,
CtrlWShown = false,
NameSet = true,
Inputs = {
Background = Input {
SourceOp = "Black_Background",
Source = "Output",
},
FlattenTransform = Input { Value = 1, },
PerformDepthMerge = Input { Value = 0, }
},
ViewInfo = OperatorInfo { Pos = { -660, 8.75757 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
},
Black_Background = Background {
CtrlWZoom = false,
CtrlWShown = false,
NameSet = true,
Inputs = {
Width = Input {
Value = 2160,
Expression = "i_Merge.Foreground.OriginalWidth",
},
Height = Input {
Value = 1080,
Expression = "i_Merge.Foreground.OriginalHeight",
},
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, }
},
ViewInfo = OperatorInfo { Pos = { -660, 74.7576 } },
Colors = { TileColor = { R = 0.886274509803922, G = 0.662745098039216, B = 0.109803921568627 }, }
}
},
}
},
ActiveTool = "kvrRotate180VR"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment