Page Curl effect in Fusion - how to?

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message
Offline
User avatar

SlaV05

  • Posts: 69
  • Joined: Fri Jan 05, 2024 10:47 am
  • Location: Poland
  • Real Name: Slawomir Blaszak

Page Curl effect in Fusion - how to?

PostMon Apr 28, 2025 12:37 pm

Hello everyone,

I'm using the Page Curl effect in Fusion page, and I'm trying to replace the back side of the curled page with a clean background (for example, just plain paper) without the front text appearing reversed on the back.
I want the front side to show my normal content (paper + text) and the back side to show only the background texture (paper without any text).
So far, I've tried using a separate background input in Page Curl, but the text from the front still "bleeds" through or mirrors onto the back side.
How can I properly set up nodes or settings so that:
- The front side shows text on paper,
- The back side shows only clean paper (no mirrored text)?
This is how it looks now, without touching anything (just regular Transition Effect)
[img]
Curl%20Fusion.jpg
[/img]
Any help or example node setup would be greatly appreciated!

Thanks in advance!
Attachments
Curl Fusion.jpg
Curl Fusion.jpg (385.77 KiB) Viewed 703 times
OS: Windows 11 Pro
Display: LED 27" ASUS ProArt PA278CV
CPU: i9-13900K
GPU: NVIDIA RTX 5070ti 16GB
RAM: 64GB DDR4
NVMe/SSD: Kingston 2TB M.2 Gen4 NVMe, 2xSSD
NLE: DaVinci Resolve Studio 19

Macbook Pro M4 Pro, 48GB RAM, 1TB, 16"
Offline
User avatar

KrunoSmithy

  • Posts: 4572
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Page Curl effect in Fusion - how to?

PostMon Apr 28, 2025 1:04 pm

Hmm, the way its built is more for ease of use on the edit page and for projecting an image so it fits every resolution, rather then doing it with image plane. So images have to go directly into camera. What you could do is make an instance of most of the nodes and use one of the renderers to output not the same image, but your white background image.

Something like this perhaps...

sshot-1208.jpg
sshot-1208.jpg (182.88 KiB) Viewed 393 times


If that is what you were after? if so, copy this code here into fusion page, and either replace the original effect or use mine to modify yours to your liking.

Code: Select all
{
   Tools = ordered() {
      MediaIn1 = MediaIn {
         ExtentSet = true,
         CustomData = {
            MediaProps = {
               MEDIA_AUDIO_TRACKS_DESC = {
                  {
                     MEDIA_AUDIO_BIT_DEPTH = 32,
                     MEDIA_AUDIO_FRAME_RATE = 25,
                     MEDIA_AUDIO_NUM_CHANNELS = 2,
                     MEDIA_AUDIO_SAMPLE_RATE = 48000,
                     MEDIA_AUDIO_START_TIME = 0,
                     MEDIA_AUDIO_TRACK_ID = "Timeline Audio",
                     MEDIA_AUDIO_TRACK_NAME = "Timeline Audio [Timeline 2 copy]"
                  }
               },
               MEDIA_AUDIO_TRACKS_NUM = 1,
               MEDIA_HAS_AUDIO = true,
               MEDIA_HEIGHT = 1080,
               MEDIA_IS_SOURCE_RES = false,
               MEDIA_LAYERS_IN_OUT_LIST = {
                  {
                     0,
                     13
                  },
                  {
                     0,
                     13
                  }
               },
               MEDIA_MARK_IN = 0,
               MEDIA_MARK_OUT = 12,
               MEDIA_NAME = "Page Curl",
               MEDIA_NUM_FRAMES = 13,
               MEDIA_NUM_LAYERS = 2,
               MEDIA_PAR = 1,
               MEDIA_SRC_FRAME_RATE = 25,
               MEDIA_START_FRAME = 0,
               MEDIA_WIDTH = 1920,
            },
         },
         Inputs = {
            GlobalOut = Input { Value = 12, },
            AudioTrack = Input { Value = FuID { "Timeline Audio" }, },
            Layer = Input { Value = "0", },
            ClipTimeEnd = Input { Value = 12, },
            DeepOutputMode = Input {
               Value = 0,
               Disabled = true,
            },
            LeftAudio = Input {
               SourceOp = "Left",
               Source = "Data",
            },
            RightAudio = Input {
               SourceOp = "Right",
               Source = "Data",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 90.5637, 148.5 } },
         Version = 1
      },
      Left = AudioDisplay {
         CtrlWZoom = false,
      },
      Right = AudioDisplay {
         CtrlWZoom = false,
      },
      MediaIn2 = MediaIn {
         ExtentSet = true,
         CustomData = {
            MediaProps = {
               MEDIA_AUDIO_TRACKS_DESC = {
                  {
                     MEDIA_AUDIO_BIT_DEPTH = 32,
                     MEDIA_AUDIO_FRAME_RATE = 25,
                     MEDIA_AUDIO_NUM_CHANNELS = 2,
                     MEDIA_AUDIO_SAMPLE_RATE = 48000,
                     MEDIA_AUDIO_START_TIME = 0,
                     MEDIA_AUDIO_TRACK_ID = "Timeline Audio",
                     MEDIA_AUDIO_TRACK_NAME = "Timeline Audio [Timeline 2 copy]"
                  }
               },
               MEDIA_AUDIO_TRACKS_NUM = 1,
               MEDIA_HAS_AUDIO = true,
               MEDIA_HEIGHT = 1080,
               MEDIA_IS_SOURCE_RES = false,
               MEDIA_LAYERS_IN_OUT_LIST = {
                  {
                     0,
                     13
                  },
                  {
                     0,
                     13
                  }
               },
               MEDIA_MARK_IN = 0,
               MEDIA_MARK_OUT = 12,
               MEDIA_NAME = "Page Curl",
               MEDIA_NUM_FRAMES = 13,
               MEDIA_NUM_LAYERS = 2,
               MEDIA_PAR = 1,
               MEDIA_SRC_FRAME_RATE = 25,
               MEDIA_START_FRAME = 0,
               MEDIA_WIDTH = 1920,
            },
         },
         Inputs = {
            GlobalOut = Input { Value = 12, },
            AudioTrack = Input { Value = FuID { "Timeline Audio" }, },
            Layer = Input { Value = "1", },
            ClipTimeEnd = Input { Value = 12, },
            DeepOutputMode = Input {
               Value = 0,
               Disabled = true,
            },
            LeftAudio = Input {
               SourceOp = "Left",
               Source = "Data",
            },
            RightAudio = Input {
               SourceOp = "Right",
               Source = "Data",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 110, 49.5 } },
         Version = 1
      },
      MediaOut1 = MediaOut {
         Inputs = {
            Index = Input { Value = "0", },
            Input = Input {
               SourceOp = "Merge2",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1028.86, 148.5 } },
      },
      PageCurl = GroupOperator {
         CtrlWZoom = false,
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Templates:\\Templates.drfx\\Edit\\Transitions\\"
               }
            },
         },
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "Merge2",
               Source = "Background",
            },
            MainInput2 = InstanceInput {
               SourceOp = "Camera3D1_FG_CLIP",
               Source = "ImageInput",
            },
            Input1 = InstanceInput {
               SourceOp = "Transform3D2",
               Source = "Transform3DOp.Rotate.Z",
               Name = "Curl Angle",
               Default = 23.5,
            },
            Input2 = InstanceInput {
               SourceOp = "Bender3D2",
               Source = "Amount",
               Name = "Roll Amount",
               Default = -1.25,
            },
            Input10 = InstanceInput {
               SourceOp = "Merge1",
               Source = "Blank5",
            },
            Input3 = InstanceInput {
               SourceOp = "Merge1",
               Source = "BlendClone",
               Name = "Shading",
               Default = 0.402,
            },
            Input4 = InstanceInput {
               SourceOp = "Merge1",
               Source = "Blank5",
            },
            Input5 = InstanceInput {
               SourceOp = "Shadow1",
               Source = "Softness",
               Name = "Shadow Softness",
               Default = 0.05,
            },
            Input6 = InstanceInput {
               SourceOp = "Shadow1",
               Source = "Red",
               Name = "Shadow Color",
               ControlGroup = 8,
               Default = 0,
            },
            Input7 = InstanceInput {
               SourceOp = "Shadow1",
               Source = "Green",
               Name = "Shadow Color",
               ControlGroup = 8,
               Default = 0,
            },
            Input8 = InstanceInput {
               SourceOp = "Shadow1",
               Source = "Blue",
               Name = "Shadow Color",
               ControlGroup = 8,
               Default = 0,
            },
            Input9 = InstanceInput {
               SourceOp = "Shadow1",
               Source = "Blend",
               Name = "Shadow Blend",
               Default = 1,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Merge2",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo {
            Pos = { 468.879, 148.5 },
            Flags = {
               AllowPan = false,
               ForceSource = true,
               ForceMask = true,
               GridSnap = true,
               ConnectedSnap = true,
               AutoSnap = true,
               RemoveRouters = true
            },
            Size = { 849.554, 486.559, 424.777, 54.9972 },
            Direction = "Horizontal",
            PipeStyle = "Direct",
            Scale = 1,
            Offset = { 0, 0 }
         },
         Tools = ordered() {
            Merge2 = Merge {
               CtrlWShown = false,
               Inputs = {
                  Background = Input {
                     SourceOp = "MediaIn1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Shadow1",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, }
               },
               ViewInfo = OperatorInfo { Pos = { 361, 251.435 } },
            },
            Camera3D1_FG_CLIP = Camera3D {
               NameSet = true,
               Inputs = {
                  ["Transform3DOp.Translate.Z"] = Input { Value = 5, },
                  AoV = Input { Value = 19.26427, },
                  FLength = Input { Value = 34.9999968656308, },
                  ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
                  FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
                  ApertureW = Input { Value = 0.831496062992126, },
                  ApertureH = Input { Value = 0.467716535433071, },
                  IDepth = Input { Value = 4.6, },
                  ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 100, },
                  ["SurfacePlaneInputs.Lighting.Nest"] = Input { Value = 1, },
                  ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
                  ImageInput = Input {
                     SourceOp = "MediaIn2",
                     Source = "Output",
                  },
                  ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
                  ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
                  ["MtlStdInputs.MaterialID"] = Input { Value = 2, }
               },
               ViewInfo = OperatorInfo { Pos = { -330, 148.5 } },
            },
            Transform3D2 = Transform3D {
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "Camera3D1_FG_CLIP",
                     Source = "Output",
                  },
                  ["Transform3DOp.Rotate.Z"] = Input { Value = 23.5, }
               },
               ViewInfo = OperatorInfo { Pos = { -262.936, 62.6317 } },
            },
            Bender3D2 = Bender3D {
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "Transform3D2",
                     Source = "Output",
                  },
                  Amount = Input { Value = -1.25, },
                  Axis = Input { Value = 0, },
                  Angle = Input { Value = -90, },
                  Center = Input { Value = 1, },
                  RangeMax = Input {
                     SourceOp = "AnimCurves6",
                     Source = "Value",
                  },
                  Group = Input { Value = 1, }
               },
               ViewInfo = OperatorInfo { Pos = { -126.138, 62.6317 } },
               UserControls = ordered() { Min = { INP_Integer = false, LINKID_DataType = "Number", ICS_ControlPage = "Controls", INPID_InputControl = "ScrewControl", ICD_Center = 0, LINKS_Name = "Min", }, Max = { INP_Integer = false, LINKID_DataType = "Number", ICS_ControlPage = "Controls", INPID_InputControl = "ScrewControl", ICD_Center = 0, LINKS_Name = "Max", } }
            },
            AnimCurves6 = LUTLookup {
               CtrlWZoom = false,
               Inputs = {
                  Source = Input { Value = FuID { "Duration" }, },
                  Curve = Input { Value = FuID { "Easing" }, },
                  EaseIn = Input { Value = FuID { "Sine" }, },
                  EaseOut = Input { Value = FuID { "Cubic" }, },
                  Lookup = Input {
                     SourceOp = "AnimCurves6Lookup",
                     Source = "Value",
                  },
                  Invert = Input { Value = 1, }
               },
            },
            AnimCurves6Lookup = 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 },
            },
            Transform3D2_1 = Transform3D {
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "Bender3D2",
                     Source = "Output",
                  },
                  ["Transform3DOp.Rotate.Z"] = Input {
                     Value = -23.5,
                     Expression = "Transform3D2.Transform3DOp.Rotate.Z*-1",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 1.177, 62.6317 } },
            },
            DirectionalLight1 = LightDirectional {
               Inputs = {
                  ["ShadowLightInputs3D.ShadowsEnabled"] = Input { Value = 1, },
                  ["ShadowLightInputs3D.ShadowMapSize"] = Input { Value = 2048, }
               },
               ViewInfo = OperatorInfo { Pos = { -140.798, 133.336 } },
            },
            Merge3D1 = Merge3D {
               Inputs = {
                  SceneInput1 = Input {
                     SourceOp = "Transform3D2_1",
                     Source = "Output",
                  },
                  SceneInput2 = Input {
                     SourceOp = "DirectionalLight1",
                     Source = "Output",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 0, 133.336 } },
            },
            Renderer3D1 = Renderer3D {
               CustomData = { ToolVersion = 2, },
               Inputs = {
                  Quality = Input { Value = 10, },
                  GlobalOut = Input { Value = 12, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  SceneInput = Input {
                     SourceOp = "Merge3D1",
                     Source = "Output",
                  },
                  CameraSelector = Input { Value = FuID { "Camera3D1_FG_CLIP" }, },
                  OutputType = Input { Disabled = true, },
                  RendererType = Input { Value = FuID { "RendererOpenGL" }, },
                  ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
                  ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.Rate"] = Input { Value = 1, },
                  ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
                  ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
                  ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.Rate"] = Input { Value = 1, },
                  ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
                  ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
                  ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
                  ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, }
               },
               ViewInfo = OperatorInfo { Pos = { 229.153, 78.7844 } },
               SubInputsData = {
                  RendererOpenGL = {
                     Version = 1
                  }
               }
            },
            Renderer3D1_1 = Renderer3D {
               CustomData = { ToolVersion = 2, },
               Inputs = {
                  Quality = Input { Value = 10, },
                  GlobalOut = Input { Value = 12, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  SceneInput = Input {
                     SourceOp = "Merge3D2",
                     Source = "Output",
                  },
                  CameraSelector = Input { Value = FuID { "Instance_Camera3D1_FG_CLIP" }, },
                  OutputType = Input { Disabled = true, },
                  RendererType = Input { Value = FuID { "RendererOpenGL" }, },
                  ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
                  ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.Rate"] = Input { Value = 1, },
                  ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
                  ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
                  ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.Rate"] = Input { Value = 1, },
                  ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
                  ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
                  ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
                  ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
                  ["RendererOpenGL.ShadowsEnabled"] = Input { Value = 1, }
               },
               ViewInfo = OperatorInfo { Pos = { 220, 133.336 } },
               SubInputsData = {
                  RendererOpenGL = {
                     Version = 1
                  }
               }
            },
            Merge1 = Merge {
               Inputs = {
                  Blend = Input { Value = 0.402, },
                  Background = Input {
                     SourceOp = "Renderer3D1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Renderer3D1_1",
                     Source = "Output",
                  },
                  ApplyMode = Input { Value = FuID { "Screen" }, },
                  PerformDepthMerge = Input { Value = 0, }
               },
               ViewInfo = OperatorInfo { Pos = { 358.275, 133.336 } },
            },
            Shadow1 = Shadow {
               Inputs = {
                  Softness = Input { Value = 0.05, },
                  Input = Input {
                     SourceOp = "Merge1",
                     Source = "Output",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 361, 181.5 } },
            },
            Instance_Camera3D1_FG_CLIP = Camera3D {
               NameSet = true,
               SourceOp = "Camera3D1_FG_CLIP",
               Inputs = {
                  LayersNest = Input {
                  },
                  SceneInput = Input {
                  },
                  ["Transform3DOp.Translation"] = Input {
                  },
                  ["Transform3DOp.Rotation"] = Input {
                  },
                  ["Transform3DOp.PivotNest"] = Input {
                  },
                  ["Transform3DOp.ScaleNest"] = Input {
                  },
                  ["Transform3DOp.TargetNest"] = Input {
                  },
                  ["Stereo.Nest"] = Input {
                  },
                  ["Stereo.RightCamera"] = Input {
                  },
                  FilmBack = Input {
                  },
                  ControlVis = Input {
                  },
                  ["SurfacePlaneInputs.Visibility.Nest"] = Input {
                  },
                  ["SurfacePlaneInputs.Lighting.Nest"] = Input {
                     Value = 1,
                  },
                  ["SurfacePlaneInputs.Matte.Nest"] = Input {
                  },
                  ["SurfacePlaneInputs.BlendMode.Nest"] = Input {
                  },
                  ["SurfacePlaneInputs.Controls.Nest"] = Input {
                  },
                  ["SurfacePlaneInputs.ObjectID.Nest"] = Input {
                  },
                  ImageInput = Input {
                     SourceOp = "Background4",
                     Source = "Output",
                  },
                  ["MtlStdInputs.Diffuse.Nest"] = Input {
                  },
                  ["MtlStdInputs.Specular.Nest"] = Input {
                     Value = 1,
                  },
                  ["MtlStdInputs.Transmittance.Nest"] = Input {
                  },
                  ["MtlStdInputs.MaterialIDNest"] = Input {
                  },
                  CommentsNest = Input {
                  },
                  FrameRenderScriptNest = Input {
                  },
                  StartRenderScripts = Input {
                  },
                  EndRenderScripts = Input {
                  }
               },
               ViewInfo = OperatorInfo { Pos = { -110, 346.5 } },
            },
            Instance_Transform3D2 = Transform3D {
               SourceOp = "Transform3D2",
               Inputs = {
                  LayersNest = Input {
                  },
                  SceneInput = Input {
                     SourceOp = "Instance_Camera3D1_FG_CLIP",
                     Source = "Output",
                  },
                  ["Transform3DOp.Translation"] = Input {
                  },
                  ["Transform3DOp.Rotation"] = Input {
                  },
                  ["Transform3DOp.PivotNest"] = Input {
                  },
                  ["Transform3DOp.ScaleNest"] = Input {
                  },
                  ["Transform3DOp.TargetNest"] = Input {
                  },
                  CommentsNest = Input {
                  },
                  FrameRenderScriptNest = Input {
                  },
                  StartRenderScripts = Input {
                  },
                  EndRenderScripts = Input {
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 0, 313.5 } },
            },
            Instance_Bender3D2 = Bender3D {
               SourceOp = "Bender3D2",
               Inputs = {
                  LayersNest = Input {
                  },
                  SceneInput = Input {
                     SourceOp = "Instance_Transform3D2",
                     Source = "Output",
                  },
                  CommentsNest = Input {
                  },
                  FrameRenderScriptNest = Input {
                  },
                  StartRenderScripts = Input {
                  },
                  EndRenderScripts = Input {
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 110, 313.5 } },
               UserControls = ordered() { Min = { INP_Integer = false, LINKID_DataType = "Number", ICS_ControlPage = "Controls", INPID_InputControl = "ScrewControl", ICD_Center = 0, LINKS_Name = "Min", }, Max = { INP_Integer = false, LINKID_DataType = "Number", ICS_ControlPage = "Controls", INPID_InputControl = "ScrewControl", ICD_Center = 0, LINKS_Name = "Max", } }
            },
            Instance_Transform3D2_1 = Transform3D {
               SourceOp = "Transform3D2_1",
               Inputs = {
                  LayersNest = Input {
                  },
                  SceneInput = Input {
                     SourceOp = "Instance_Bender3D2",
                     Source = "Output",
                  },
                  ["Transform3DOp.Translation"] = Input {
                  },
                  ["Transform3DOp.Rotation"] = Input {
                  },
                  ["Transform3DOp.Rotate.Z"] = Input { Expression = "Transform3D2.Transform3DOp.Rotate.Z*-1", },
                  ["Transform3DOp.PivotNest"] = Input {
                  },
                  ["Transform3DOp.ScaleNest"] = Input {
                  },
                  ["Transform3DOp.TargetNest"] = Input {
                  },
                  CommentsNest = Input {
                  },
                  FrameRenderScriptNest = Input {
                  },
                  StartRenderScripts = Input {
                  },
                  EndRenderScripts = Input {
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 275, 313.5 } },
            },
            Background4 = Background {
               Inputs = {
                  GlobalOut = Input { Value = 12, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftRed = Input { Value = 1, },
                  TopLeftGreen = Input { Value = 1, },
                  TopLeftBlue = Input { Value = 1, },
                  GradientType = Input { Value = FuID { "Radial" }, },
                  Start = Input { Value = { 0.5, 0.5 }, },
                  Gradient = Input {
                     Value = Gradient {
                        Colors = {
                           [0] = { 1, 1, 1, 1 },
                           [1] = { 0, 0, 0, 1 }
                        }
                     },
                  }
               },
               ViewInfo = OperatorInfo { Pos = { -275, 346.5 } },
            },
            Merge3D2 = Merge3D {
               Inputs = {
                  SceneInput1 = Input {
                     SourceOp = "DirectionalLight1_1",
                     Source = "Output",
                  },
                  SceneInput2 = Input {
                     SourceOp = "Instance_Transform3D2_1",
                     Source = "Output",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 110, 247.5 } },
            },
            DirectionalLight1_1 = LightDirectional {
               Inputs = {
                  ["Transform3DOp.Rotate.X"] = Input { Value = 5.2, },
                  ["Transform3DOp.Rotate.Y"] = Input { Value = -187.8, },
                  Intensity = Input { Value = 2, },
                  ["ShadowLightInputs3D.Nest"] = Input { Value = 1, },
                  ["ShadowLightInputs3D.ShadowMapSize"] = Input { Value = 2048, }
               },
               ViewInfo = OperatorInfo { Pos = { -220, 247.5 } },
            }
         },
      }
   }
}
Attachments
sshot-1209.jpg
sshot-1209.jpg (223.04 KiB) Viewed 393 times
Offline
User avatar

SlaV05

  • Posts: 69
  • Joined: Fri Jan 05, 2024 10:47 am
  • Location: Poland
  • Real Name: Slawomir Blaszak

Re: Page Curl effect in Fusion - how to?

PostMon Apr 28, 2025 4:14 pm

Thank you very much for your help but shared code doesn't appears as scheme presented on your screen shot. It is still very basic and doesn't change anything. Has it to be that complicated instead of just replacing one or two files in default transition? Why?
OS: Windows 11 Pro
Display: LED 27" ASUS ProArt PA278CV
CPU: i9-13900K
GPU: NVIDIA RTX 5070ti 16GB
RAM: 64GB DDR4
NVMe/SSD: Kingston 2TB M.2 Gen4 NVMe, 2xSSD
NLE: DaVinci Resolve Studio 19

Macbook Pro M4 Pro, 48GB RAM, 1TB, 16"
Offline
User avatar

KrunoSmithy

  • Posts: 4572
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Page Curl effect in Fusion - how to?

PostMon Apr 28, 2025 4:33 pm

SlaV05 wrote:Thank you very much for your help but shared code doesn't appears as scheme presented on your screen shot. It is still very basic and doesn't change anything.


Not sure what you mean. It should work as you said you wanted.

SlaV05 wrote: Has it to be that complicated instead of just replacing one or two files in default transition? Why?


I didn't build the macro for the transition, someone else did, who obviously didn't intended you to change it as the end user. If you want to modify the existing effect, I have shared how to do it. I don't know what your skill level with fusion is, but that is the simplest way to do it for that particular transition macro. Otherwise you would have build one for your needs.

You can't replace one or two files, because the way the macro was created. Like I wrote earlier. Instead of building it with image plane, it was just image plugged into camera input and than render is split, but its the same image. If you wanted to have another image you can't do it unless you rebuild part of the comp, and since there is no shape like image plane to only replace that, you have to build also the transition elements. so you can copy the same movement , not break anything, but create conditions for new image to be put into the back side. You also have to replace lighting, because you need to shine light from different direction. Otherwise the white image is in the shadow and its dark.

Return to DaVinci Resolve

Who is online

Users browsing this forum: AndrewTheGreat, DippityDapper, Google [Bot], Homey75, panos_mts and 336 guests