Page 1 of 1

God rays graphic - create one procedurally

PostPosted: Thu Jan 06, 2022 6:53 am
by chlowden
Hello
I am wondering if the God rays graphic below is able to be created procedurally in Fusion.
52098.resized.jpg
52098.resized.jpg (922.36 KiB) Viewed 822 times

My goal is to also change the hue procedually in a rotating animation.
I figure that it is possible but I cannot figure out how.
Any suggestions are most welcome.
Thank you

Re: God rays graphic - create one procedurally

PostPosted: Thu Jan 06, 2022 7:27 pm
by Okke Verbart
Hey Christopher - there are many ways to tackle this, but find below one approach. In this case I just created a very long 3D cylinder with a gradient applied to it, place a camera and presto ;-) The gradient can then be animated. In this particular example I added a perturb modifier to one of the gradient points:

Code: Select all
{
   Tools = ordered() {
      Background1 = Background {
         CtrlWZoom = false,
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Gradient" }, },
            End = Input { Value = { 0.03, 0.5 }, },
            Gradient = Input {
               SourceOp = "Perturb1",
               Source = "Value",
            },
            Offset = Input { Value = 0.326, },
            Repeat = Input { Value = FuID { "Repeat" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 198, 32.8182 } },
      },
      Perturb1 = PerturbGradient {
         CtrlWZoom = false,
         Inputs = {
            Value = Input {
               Value = Gradient {
                  Colors = {
                     [0.0497512437810945] = { 1, 1, 1, 1 },
                     [0.174129353233831] = { 0.00392156862745098, 0.431372549019608, 0.498039215686275, 1 },
                     [0.353233830845771] = { 0.00392156862745098, 0.431372549019608, 0.498039215686275, 1 },
                     [0.383084577114428] = { 1, 1, 1, 1 },
                     [0.567164179104478] = { 1, 1, 1, 1 },
                     [0.592039800995025] = { 0.182323675738952, 0.53321627158326, 0.587942639742464, 1 }
                  }
               },
            },
            Strength = Input { Value = 0.756, },
         },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            ["Transform3DOp.Rotate.X"] = Input { Value = -90, },
            Shape = Input { Value = FuID { "SurfaceCylinderInputs" }, },
            MaterialInput = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceCubeInputs.SizeLock"] = Input { Value = 0, },
            ["SurfaceCubeInputs.Depth"] = Input { Value = 10, },
            ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["SurfaceCylinderInputs.Height"] = Input { Value = 500, },
            ["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["SurfaceConeInputs.ObjectID.ObjectID"] = Input { Value = 4, }
         },
         ViewInfo = OperatorInfo { Pos = { 374.667, 34.0303 } },
      },
      UVMap3D1 = UVMap {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            MapMode = Input { Value = FuID { "Cylindrical" }, },
            Orientation = Input { Value = 2, },
            ["Size.Z"] = Input { Value = 10, },
         },
         ViewInfo = OperatorInfo { Pos = { 530, 34.6364 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "UVMap3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 640, 34.6364 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.205338809034908, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 250, },
            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 = 5, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 641.333, 83.1212 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 771.333, 34.6364 } },
      }
   }
}

Re: God rays graphic - create one procedurally

PostPosted: Thu Jan 06, 2022 8:00 pm
by chlowden
Okke
What can I say? Thank you so much. I works a treat and is easy to manage.

Why didn't I think of doing it this way? I have a lot to learn.
I'll start by checking out your website.

Many thanks again.
Christopher

Re: God rays graphic - create one procedurally

PostPosted: Thu Jan 06, 2022 8:02 pm
by Okke Verbart
My pleasure Christopher :-)