Page 1 of 1

[ Video tutorial ] - Creating plasma/lightning

PostPosted: Tue Apr 10, 2018 9:00 pm
by alan bovine
Hi Fusionistas (Resolvistas?),

I've put together another video where we explore the concept of using images as geometry buffers. We'll create some kind of plasma/lightning effect thats very flexible and can be re-purposed for all things motion graphy too.

Its aimed at experienced Fusion users.



Enjoy!

EDIT: Update
PS. Bonus info,

If you substitute the gradient with a rendered pworld of an object in UV space you can wrap this effect around any object.

Image

Code: Select all
{
   Tools = ordered() {
      BrightnessContrast3 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 10, },
            Input = Input {
               SourceOp = "Blur1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Rectangle2",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -21.0821 } },
      },
      Rectangle2 = RectangleMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.5, 1 }, },
            Width = Input { Value = 1.44193548387097, },
            Height = Input { Value = 0.0870967741935486, },
         },
         ViewInfo = OperatorInfo { Pos = { 1187.83, -21.0821 } },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.ScaleLock"] = Input { Value = 0, },
            ["Transform3DOp.Scale.X"] = Input { Value = 0.001, },
            ["Transform3DOp.Scale.Y"] = Input { Value = 0.001, },
            ["Transform3DOp.Scale.Z"] = Input { Value = 0.001, },
            ["SurfacePlaneInputs.SizeLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 128, },
            ["SurfacePlaneInputs.SubdivisionHeight"] = Input { Value = 128, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "BrightnessContrast3",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, 51.6624 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceTorusInputs" }, },
            MaterialInput = Input {
               SourceOp = "ChannelBoolean1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["SurfaceTorusInputs.Radius"] = Input { Value = 1.325, },
            ["SurfaceTorusInputs.Section"] = Input { Value = 0.192, },
            ["SurfaceTorusInputs.ObjectID.ObjectID"] = Input { Value = 3, }
         },
         ViewInfo = OperatorInfo { Pos = { 567.07, 104.064 } },
      },
      PointLight1 = LightPoint {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -2.54334860762594, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 1.94620208658188, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -1.06001256268298, },
         },
         ViewInfo = OperatorInfo { Pos = { 739.61, 244.776 } },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ReplaceMaterial3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 878.68, 244.288 } },
      },
      AmbientLight1 = LightAmbient {
         ViewInfo = OperatorInfo { Pos = { 1409.89, 199.06 } },
      },
      Merge3D3 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Displace3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "AmbientLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, 199.06 } },
      },
      Displace3D1 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ctv",
               Source = "Output",
            },
            Channel = Input { Value = 6, },
            Scale = Input { Value = 1, },
            Input = Input {
               SourceOp = "Blur2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, 174 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Merge3D3",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1098.68, 244.285 } },
      },
      Blur2 = Blur {
         CtrlWZoom = false,
         Inputs = {
            XBlurSize = Input { Value = 0, },
            Input = Input {
               SourceOp = "add",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1001.93, 174 } },
      },
      ReplaceMaterial3D1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, },
         },
         ViewInfo = OperatorInfo { Pos = { 878.68, 218.24 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Brightness = Input { Value = -0.5, },
            Input = Input {
               SourceOp = "ChannelBooleans1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 906.456, -26.7891 } },
      },
      add = ChannelBoolean {
         NameSet = true,
         Inputs = {
            Operation = Input { Value = 1, },
            Background = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 891.933, 174 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 1,
         },
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1200, },
            Width = Input { Value = 64, },
            Height = Input { Value = 256, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGLUV" }, },
            ["RendererOpenGL.Lighting"] = Input { Value = 0, },
            ["RendererOpenGL.TextureDepth"] = Input { Value = 3, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 2, },
            ["RendererOpenGL.WireframeAntialiasing"] = Input { Value = 0, },
            ["RendererOpenGLUV.Lighting"] = Input { Value = 0, },
            ["RendererOpenGLUV.WireframeAntialiasing"] = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 567.07, 137.064 } },
      },
      ChannelBooleans1 = ChannelBoolean {
         Inputs = {
            ToRed = Input { Value = 4, },
            ToBlue = Input { Value = 4, },
            ToAlpha = Input { Value = 4, },
            Background = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Instance_FastNoise1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 906.456, -126.62 } },
      },
      FastNoise1 = FastNoise {
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Depth = Input { Value = 3 },
                           GlobalOut = Input { Value = 1100 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Height = Input { Value = 512 },
                           Width = Input { Value = 512 }
                        },
                        Name = "FastNoise1",
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [2] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           Inverted = Input { Value = 1 },
                           Width = Input { Value = 512 },
                           GlobalOut = Input { Value = 1100 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Discontinuous = Input { Value = 1 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Depth = Input { Value = 3 },
                           Detail = Input { Value = 4.23809523809524 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [3] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           XScale = Input { Value = 0.666666666666667 },
                           Inverted = Input { Value = 1 },
                           Contrast = Input { Value = 1.72380952380952 },
                           GlobalIn = Input { Value = 1001 },
                           Width = Input { Value = 512 },
                           Depth = Input { Value = 3 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           Discontinuous = Input { Value = 1 },
                           GlobalOut = Input { Value = 1100 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           SeetheRate = Input { Value = 0.0714285714285714 },
                           Detail = Input { Value = 5.57142857142857 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1200, },
            Width = Input { Value = 64, },
            Height = Input { Value = 256, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Center = Input {
               Value = { 0.5, 24 },
               Expression = "Point(0.5, time*0.02)",
            },
            Detail = Input { Value = 6.58, },
            Contrast = Input { Value = 1.513, },
            XScale = Input { Value = 0.722, },
            SeetheRate = Input { Value = 0.162, },
         },
         ViewInfo = OperatorInfo { Pos = { 906.456, -194.62 } },
      },
      ChannelBooleans1_1 = ChannelBoolean {
         Inputs = {
            ToRed = Input { Value = 4, },
            ToGreen = Input { Value = 4, },
            ToAlpha = Input { Value = 4, },
            Background = Input {
               SourceOp = "ChannelBooleans1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Instance_FastNoise1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 906.456, -72.6203 } },
      },
      ChannelBoolean1 = MtlChanBool {
         Inputs = {
            OperandAR = Input { Value = 19, },
            OperandAG = Input { Value = 20, },
            OperandAB = Input { Value = 21, },
            OperandAA = Input { Value = 9, },
            CoordSpace = Input { Value = FuID { "World" }, },
            MaterialID = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 567.07, 54.0159 } },
      },
      Instance_FastNoise1_1 = FastNoise {
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Depth = Input { Value = 3 },
                           GlobalOut = Input { Value = 1100 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Height = Input { Value = 512 },
                           Width = Input { Value = 512 }
                        },
                        Name = "FastNoise1",
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [2] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           Inverted = Input { Value = 1 },
                           Width = Input { Value = 512 },
                           GlobalOut = Input { Value = 1100 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Discontinuous = Input { Value = 1 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Depth = Input { Value = 3 },
                           Detail = Input { Value = 4.23809523809524 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [3] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           XScale = Input { Value = 0.666666666666667 },
                           Inverted = Input { Value = 1 },
                           Contrast = Input { Value = 1.72380952380952 },
                           GlobalIn = Input { Value = 1001 },
                           Width = Input { Value = 512 },
                           Depth = Input { Value = 3 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           Discontinuous = Input { Value = 1 },
                           GlobalOut = Input { Value = 1100 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           SeetheRate = Input { Value = 0.0714285714285714 },
                           Detail = Input { Value = 5.57142857142857 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         SourceOp = "FastNoise1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            Center = Input {
               Value = { 0.5, 24 },
               Expression = "Point(0.5, time*0.02)"
            },
            Seethe = Input { Value = 2.693, },
            StartEndRenderScripts = Input { },
            EffectMask = Input { },
            NoiseBrightnessMap = Input { },
            NoiseDetailMap = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 614.456, -72.6203 } },
      },
      Instance_FastNoise1 = FastNoise {
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Depth = Input { Value = 3 },
                           GlobalOut = Input { Value = 1100 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Height = Input { Value = 512 },
                           Width = Input { Value = 512 }
                        },
                        Name = "FastNoise1",
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [2] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           Inverted = Input { Value = 1 },
                           Width = Input { Value = 512 },
                           GlobalOut = Input { Value = 1100 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Discontinuous = Input { Value = 1 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Depth = Input { Value = 3 },
                           Detail = Input { Value = 4.23809523809524 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [3] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           XScale = Input { Value = 0.666666666666667 },
                           Inverted = Input { Value = 1 },
                           Contrast = Input { Value = 1.72380952380952 },
                           GlobalIn = Input { Value = 1001 },
                           Width = Input { Value = 512 },
                           Depth = Input { Value = 3 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           Discontinuous = Input { Value = 1 },
                           GlobalOut = Input { Value = 1100 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           SeetheRate = Input { Value = 0.0714285714285714 },
                           Detail = Input { Value = 5.57142857142857 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         SourceOp = "FastNoise1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            Center = Input {
               Value = { 0.5, 24 },
               Expression = "Point(0.5, time*0.02)"
            },
            Seethe = Input { Value = 1.886, },
            StartEndRenderScripts = Input { },
            EffectMask = Input { },
            NoiseBrightnessMap = Input { },
            NoiseDetailMap = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 785.456, -126.62 } },
      },
      BrightnessContrast2 = BrightnessContrast {
         Inputs = {
            Alpha = Input { Value = 1, },
            ClipBlack = Input { Value = 1, },
            ClipWhite = Input { Value = 1, },
            Input = Input {
               SourceOp = "FastNoise1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -213.407 } },
      },
      ctv = CustomVertex3D {
         NameSet = true,
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            ["Point1.X"] = Input { Value = 0.525007053837844, },
            ["Point1.Y"] = Input { Value = -0.0165005871947797, },
            ["Point1.Z"] = Input { Value = -0.22424252899218, },
            ["Point2.Nest"] = Input { Value = 1, },
            ["Point2.X"] = Input { Value = -0.470672946389979, },
            ["Point2.Y"] = Input { Value = -0.597601334826018, },
            ["Point2.Z"] = Input { Value = 0.915140763191663, },
            LUT1 = Input {
               SourceOp = "CustomVertex3D1LUT1",
               Source = "Value",
            },
            LUT2 = Input {
               SourceOp = "CustomVertex3D1LUT2",
               Source = "Value",
            },
            LUT3 = Input {
               SourceOp = "CustomVertex3D1LUT3",
               Source = "Value",
            },
            LUT4 = Input {
               SourceOp = "CustomVertex3D1LUT4",
               Source = "Value",
            },
            PointControls = Input { Value = 1, },
            ShowPoint3 = Input { Value = 0, },
            ShowPoint4 = Input { Value = 0, },
            ShowPoint5 = Input { Value = 0, },
            ShowPoint6 = Input { Value = 0, },
            ShowPoint7 = Input { Value = 0, },
            ShowPoint8 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, 110.892 } },
      },
      CustomVertex3D1LUT1 = 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 },
      },
      CustomVertex3D1LUT2 = 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 },
      },
      CustomVertex3D1LUT3 = 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 },
      },
      CustomVertex3D1LUT4 = 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 },
      },
      Transform1 = Transform {
         Inputs = {
            ProcessGreen = Input { Value = 0, },
            ProcessBlue = Input { Value = 0, },
            Center = Input { Value = { 0.5, 0.527803260179239 }, },
            Input = Input {
               SourceOp = "BrightnessContrast2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -165.381 } },
      },
      Transform2 = Transform {
         Inputs = {
            ProcessRed = Input { Value = 0, },
            ProcessGreen = Input { Value = 0, },
            Center = Input { Value = { 0.5, 0.488846940935714 }, },
            Input = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -135.219 } },
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            CorrectionRange = Input { Value = 3, },
            WheelRangeDummy1 = Input { Value = 3, },
            WheelSaturation2 = Input { Value = 1.889, },
            WheelTintAngle2 = Input { Value = 0.611313583478753, },
            WheelTintLength2 = Input { Value = 1, },
            HighlightsRGBGain = Input { Value = 1.103, },
            SuppressionRangeDummy = Input { Value = 3, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "Transform2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -98.4347 } },
      },
      Blur1 = Blur {
         Inputs = {
            Blend = Input { Value = 0.462, },
            XBlurSize = Input { Value = 21.8, },
            Input = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -67.3269 } },
      },
      FastNoise1_1 = FastNoise {
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Depth = Input { Value = 3 },
                           GlobalOut = Input { Value = 1100 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Height = Input { Value = 512 },
                           Width = Input { Value = 512 }
                        },
                        Name = "FastNoise1",
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [2] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           Inverted = Input { Value = 1 },
                           Width = Input { Value = 512 },
                           GlobalOut = Input { Value = 1100 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           GlobalIn = Input { Value = 1001 },
                           Discontinuous = Input { Value = 1 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           Depth = Input { Value = 3 },
                           Detail = Input { Value = 4.23809523809524 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [3] = {
                  Tools = ordered() {
                     FastNoise1 = FastNoise {
                        Inputs = {
                           XScale = Input { Value = 0.666666666666667 },
                           Inverted = Input { Value = 1 },
                           Contrast = Input { Value = 1.72380952380952 },
                           GlobalIn = Input { Value = 1001 },
                           Width = Input { Value = 512 },
                           Depth = Input { Value = 3 },
                           ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
                           Discontinuous = Input { Value = 1 },
                           GlobalOut = Input { Value = 1100 },
                           Height = Input { Value = 512 },
                           Gradient = Input {
                              Value = Gradient {
                                 Colors = {
                                    [0] = { 0, 0, 0, 1 },
                                    [1] = { 1, 1, 1, 1 }
                                 }
                              }
                           },
                           SeetheRate = Input { Value = 0.0714285714285714 },
                           Detail = Input { Value = 5.57142857142857 }
                        },
                        CtrlWZoom = false,
                        ViewInfo = OperatorInfo { Pos = { 660, 49.5 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1200, },
            Width = Input { Value = 256, },
            Height = Input { Value = 512, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Center = Input {
               Value = { 0.5, 60 },
               Expression = "Point(0.5, time*0.05)",
            },
            Detail = Input { Value = 3.16, },
            Contrast = Input { Value = 6.33, },
            Brightness = Input { Value = -2, },
            LockXY = Input { Value = 0, },
            XScale = Input { Value = 50, },
            YScale = Input { Value = 1.03, },
            SeetheRate = Input { Value = 0.5, },
         },
         ViewInfo = OperatorInfo { Pos = { 1295.94, -254.589 } },
      }
   }
}


#keepfusionseperate

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 6:07 am
by Okke Verbart
That's a really cool tutorial Alan! Lately I've been experimenting a bit with image buffers myself a bit, but you came up with a very versatile technique there! Very well explained too.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 7:06 am
by Juha Takabe
I'm really enjoying your videos! Thanks!

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 8:12 am
by jussi rovanpera
Thanks Alan, that's really cool, and so are your other tutorials as well.

I really like the pace of the videos.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 8:26 am
by alan bovine
Thanks for the feedback guys. I'm happy its useful for you guys! Let me know if there are other topcs that might be of interest. Right now I'm trying to cover things I've not seen on Youtube. Plenty of more particle and hacky comp tricks to come.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 8:42 pm
by Sjur Pollen
Wow. This is great! As are all your fusion tutorials. Really good work. Thank you.

Personally I like them fine the way they are, but I think you could grow your audience quite a bit if you were to apply the techniques you demonstrate to an actual finished scene. Not necessarily something elaborate though. To give an example, your latest one made me think of this:


I think the sex appeal of a finished shot will appeal more to a broader audience. Especially people new to Fusion. If you even want a broader audience that is. (I for one, think you deserve it).

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 8:49 pm
by alan bovine
Hi Sjur,

I don't disagree, but I want to cover some technical areas before moving onto project specific tutorials. So I don't have to repeat why things are done certain ways.

I'm hoping to do a proper one on tracking with lens distortion workflow, high pass tracking, overscans and CG comping.

Then talk about finishing projects.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 9:00 pm
by Thierry Bergeron
This is simply great

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 9:06 pm
by alan bovine
Let me know if there are specific areas or effects you guys would like to see a tutorial on.Still compiling a list of stuff I'd like to run through.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 9:07 pm
by Sjur Pollen
alan bovine wrote:Hi Sjur,

I don't disagree, but I want to cover some technical areas before moving onto project specific tutorials. So I don't have to repeat why things are done certain ways.

I'm hoping to do a proper one on tracking with lens distortion workflow, high pass tracking, overscans and CG comping.

Then talk about finishing projects.


That sounds great, and I completely understand. Just thinking out loud.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 9:09 pm
by Sander de Regt
I'm hoping to do a proper one on tracking with lens distortion workflow

I'd love to see that. I haven't been able to get any results from the automatic distortion in the 3D tracker. I have set it so that it should do something, but my lenses are apparently perfect. :lol:

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 9:47 pm
by alan bovine
Sander de Regt wrote:
I'm hoping to do a proper one on tracking with lens distortion workflow

I'd love to see that. I haven't been able to get any results from the automatic distortion in the 3D tracker. I have set it so that it should do something, but my lenses are apparently perfect. :lol:


I don't think the camera tracker can compute distortion coefficients. You'll have to manually undistort using lens grids. Something you should always shoot anyway.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Wed Apr 11, 2018 10:54 pm
by Kel Philm
Actually the Camera Trackers Solve spits out the Lens Distortion parameters k1, k2 to the Console (make sure you have refine lens parameters selected), why on earth they are not made available anywhere else is beyond me.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Thu Apr 12, 2018 7:00 am
by Sander de Regt
I don't think the camera tracker can compute distortion coefficients. You'll have to manually undistort using lens grids. Something you should always shoot anyway.

I once had a cinematographer who flat out refused to shoot grids. That was fun.

Back to Fusion:

I guess it might be a UI thing or user error but in the 'camera' tab of the camera tracker it says 'refine focal length' 'refine center point' and 'refine lens parameters' - to me that implies that a solve or a track will change some of the settings it refers to. Below in that tab it says 'Lens->enabled parameters' so I expect that 'refine lens parameters' to change that section as well when solving.
As far as I can tell, it doesn't do anything at the moment.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Thu Apr 12, 2018 10:07 am
by Kel Philm
I am pretty sure they are being used, like I said above the Solve process logs this info to the console upon completion.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Thu Apr 12, 2018 2:25 pm
by Bryan Ray
Sander de Regt wrote:I once had a cinematographer who flat out refused to shoot grids. That was fun.


Color me envious. I have yet to see a grid come from production. I was over the moon when Dusk Till Dawn started sending chip charts and chrome spheres. But even they never sent lens grids.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Thu Apr 12, 2018 2:34 pm
by Sander de Regt
Oh, I didn't get them either on other shows, but this was the rare case that I was involved from the start and the DP just said: nope, won't do that. I don't care.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Thu Apr 12, 2018 8:57 pm
by Kel Philm
A DOP I worked with used to slip pictures from nudie mags onto the odd lens grid as he was sure they were not even being looked at.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Mon Apr 16, 2018 11:50 am
by Juha Takabe
alan bovine wrote:Let me know if there are specific areas or effects you guys would like to see a tutorial on.Still compiling a list of stuff I'd like to run through.

I'd love to see paint tool tutorial. For example I simply can't understand why I have to set stroke duration before I paint. I'm used to do cleanup works in Nuke and having hard time switching to Fusion because I haven't figured out how Clone Multistroke tool works.

Re: [ Video tutorial ] - Creating plasma/lightning

PostPosted: Mon Apr 16, 2018 12:00 pm
by Sander de Regt
Since I don't use Nuke, can you explain how the workflow is in Nuke?
What duration do you need the paintstrokes to be?
Originally Fusion's paint tool was created for dust busting in a way, so the default setting 'multistroke' is used for strokes that are only one frame long, because dust specks only appear for one frame.
If you want to have 'permanent' paint strokes, you just use the default 'stroke' and set it to clone mode.