Jump to: Board index » General » Fusion

smoke in fusion

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

Peter Profetto

  • Posts: 4
  • Joined: Wed Mar 18, 2015 7:13 am
  • Location: hollywood

smoke in fusion

PostWed Mar 18, 2015 7:16 am

Does anyone know of any tutorials for making nice smoke
with the particles in fusion?

any examples?

thanks
peter
Offline
User avatar

Rony Soussan

  • Posts: 727
  • Joined: Tue Nov 11, 2014 5:33 pm

Re: smoke in fusion

PostThu Mar 19, 2015 5:22 pm

Here's a good start for you
One thing to note is the popping only goes away in software render. Use GL for testing, software for final (slower) render.

Code: Select all
{
   Tools = ordered() {
      Rectangle1 = RectangleMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 2048, },
            MaskHeight = Input { Value = 1556, },
            PixelAspect = Input { Value = { 1, 1, }, },
            ClippingMode = Input { Value = FuID { "None", }, },
            Center = Input { Value = { 0.998659517426273, 0.5, }, },
            Width = Input { Value = 0.987935656836461, },
            Height = Input { Value = 1.64745308310992, },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 181.5, }, },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 1.8380952, },
            Input = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 214.5, }, },
      },
      pEmitter1 = pEmitter {
         ID = 4,
         Inputs = {
            Number = Input { Value = 3.3333333, },
            Lifespan = Input { Value = 180.952381, },
            LifespanVariance = Input { Value = 33.8095238, },
            VelocityControls = Input { Value = 1, },
            Angle = Input { Value = 90, },
            InheritVelocity = Input { Value = -2, },
            Style = Input { Value = FuID { "ParticleStyleBitmap", }, },
            ["ParticleStyle.ColorControls"] = Input { Value = 1, },
            ["ParticleStyle.Red"] = Input { Value = 0.74, },
            ["ParticleStyle.Green"] = Input { Value = 0.74, },
            ["ParticleStyle.Blue"] = Input { Value = 0.74, },
            ["ParticleStyle.ColorVariance"] = Input { Value = 1, },
            ["ParticleStyle.GreenLow"] = Input { Value = -0.0133333, },
            ["ParticleStyle.GreenHigh"] = Input { Value = 0.0133333, },
            ["ParticleStyle.BlueLow"] = Input { Value = -0.0266667, },
            ["ParticleStyle.BlueHigh"] = Input { Value = 0.0133333, },
            ["ParticleStyle.AlphaLow"] = Input { Value = -0.5333333, },
            ["ParticleStyle.AlphaHigh"] = Input { Value = 0.24, },
            ["ParticleStyle.LockColorVariance"] = Input { Value = 0, },
            ["ParticleStyle.ColorOverLifeControls"] = Input { Value = 1, },
            ["ParticleStyle.ColorOverLife"] = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0.54, 0.54, 0.54, 1, },
                     [1] = { 0, 0, 0, 1, },
                  },
               },
            },
            ["ParticleStyle.SizeControls"] = Input { Value = 1, },
            ["ParticleStyle.Size"] = Input { Value = 1.05, },
            ["ParticleStyle.SizeOverLife"] = Input {
               SourceOp = "pEmitter1SizeoverLife",
               Source = "Value",
            },
            ["ParticleStyle.FadeControls"] = Input { Value = 1, },
            ["ParticleStyle.FadeOut"] = Input { Value = 0.06875, },
            ["ParticleStyle.BlurOverLife"] = Input {
               SourceOp = "pEmitter1BluroverLife2D",
               Source = "Value",
            },
            ["SphereRgn.Size"] = Input { Value = 0.0238095, },
            ["ParticleStyleBitmap.Animate"] = Input { Value = 2, },
            ["ParticleStyleBitmap.DropToolsHere"] = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 214.5, }, },
      },
      pEmitter1SizeoverLife = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0.00371747211895911] = { 0.0113548387096775, RH = { 0.492375084741974, 0.0692550257007599, }, Flags = { Linear = true, }, },
               [1] = { 0.919354838709677, LH = { 0.762908717062377, 0.830153771988154, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pEmitter1BluroverLife2D = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5, }, Flags = { Linear = true, }, },
               [1] = { 0.5, LH = { 0.7, 0.5, }, Flags = { Linear = true, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pDirectionalForce1 = pDirectionalForce {
         ID = 14,
         Inputs = {
            Strength = Input { Value = 0.0419048, },
            Direction = Input { Value = 90, },
            Input = Input {
               SourceOp = "pEmitter1",
               Source = "Output",
            },
            Probability = Input { Value = 0.752381, },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 214.5, }, },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Center = Input { Value = { 0.497690531177829, 0.5, }, },
            Detail = Input {
               SourceOp = "Shake1",
               Source = "X",
            },
            XScale = Input { Value = 2.5714286, },
            Seethe = Input { Value = 0.3269231, },
            SeetheRate = Input { Value = 1, },
            Type = Input { Value = 1, },
            GradientType = Input { Value = 5, },
            Start = Input { Value = { 0.5, 0.5, }, },
            End = Input { Value = { 0.187466616455229, 0.736146069099584, }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 1, 1, 1, 1, },
                     [1] = { 0, 0, 0, 0, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 214.5, }, },
      },
      Shake1 = Shake {
         CtrlWZoom = false,
         Inputs = {
            XMinimum = Input { Value = 2, },
            XMaximum = Input { Value = 3, },
         },
      },
      pDirectionalForce1_1 = pDirectionalForce {
         ID = 20,
         Inputs = {
            Strength = Input { Value = 0.0419048, },
            Input = Input {
               SourceOp = "pDirectionalForce1",
               Source = "Output",
            },
            Probability = Input { Value = 0.752381, },
            StartAge = Input { Value = 0.4588235, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 214.5, }, },
      },
      pTurbulence1 = pTurbulence {
         ID = 7,
         CtrlWZoom = false,
         Inputs = {
            XStrength = Input { Value = 1, },
            YStrength = Input { Value = 0.1, },
            ZStrength = Input { Value = 1, },
            StrengthOverLife = Input { Value = 1, },
            StrengthOverLifeLUT = Input {
               SourceOp = "pTurbulence1StrengthoverLifeLUT",
               Source = "Value",
            },
            Density = Input { Value = 5.2380952, },
            Input = Input {
               SourceOp = "pDirectionalForce1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 214.5, }, },
      },
      pTurbulence1StrengthoverLifeLUT = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.0645161290322584, RH = { 0.0792889745968726, 0.126686056829407, }, Flags = { Linear = true, }, },
               [0.237866923790618] = { 0.329726694074164, LH = { 0.158585878122681, 0.315394300737689, }, RH = { 0.311502589478341, 0.343038518045937, }, },
               [0.459635396971336] = { 0.171450205621437, LH = { 0.385483415724496, 0.215999050804633, }, RH = { 0.613502715528376, 0.0790101758623785, }, },
               [0.921933085501858] = { 0, LH = { 0.7680716092516, 0.0210016043360813, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.421451312939431, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.720935507757479, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 2.32716513089873, },
            ["Transform3DOp.Rotate.X"] = Input { Value = 3.60000109672546, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -350.199981689453, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis", }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 247.5, }, },
      },
      pRender1 = pRender {
         Inputs = {
            ["_MotionBlurWarning"] = Input { Disabled = true, },
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 2048, },
            Height = Input { Value = 1556, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            OutputMode = Input { Disabled = true, },
            IntegrationMethod = Input { Value = FuID { "RK4", }, },
            ["MaterialID.MaterialID"] = Input { Value = 1, },
            ["ObjectID.ObjectID"] = Input { Value = 1, },
            Input = Input {
               SourceOp = "pTurbulence1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 214.5, }, },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "pRender1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 247.5, }, },
      },
      Renderer3D1 = Renderer3D {
         Inputs = {
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 2048, },
            Height = Input { Value = 1556, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL", }, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.RGBASS"] = Input { Value = 1, },
            ["RendererOpenGL.Supersampling"] = Input { Value = 1, },
            ["RendererOpenGL.Texturing"] = Input { Value = 1, },
            ["RendererOpenGL.TextureDepth"] = Input { Value = 3, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 1, },
            ["RendererOpenGL.ShadingModel"] = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 247.5, }, },
      },
   },
}
Attachments
smoke.jpg
smoke.jpg (92.55 KiB) Viewed 7684 times
Offline
User avatar

Win Conway

  • Posts: 58
  • Joined: Fri Nov 14, 2014 5:33 pm

Re: smoke in fusion

PostThu Mar 19, 2015 5:36 pm

Seriously Rony, you post these "heres a start for you" projects all the time, why aren't they auto listed somewhere on the BM site, they are always so brilliant to learn from but scattered across the forum.
Offline
User avatar

Rony Soussan

  • Posts: 727
  • Joined: Tue Nov 11, 2014 5:33 pm

Re: smoke in fusion

PostThu Mar 19, 2015 5:44 pm

Thanks Win, It really makes me happy to see people wanting to learn, and I'm happy to provide as many examples as possible.
I'm working on annotations for all of these, which takes time. Once I have a few ready, I'll post them all at once, but as for an official repository, that's something we can work on for sure, and internally here at BMD, you know my vote on that :)

It makes me
Offline
User avatar

Rony Soussan

  • Posts: 727
  • Joined: Tue Nov 11, 2014 5:33 pm

Re: smoke in fusion

PostThu Mar 19, 2015 6:27 pm

Here's a slightly different one that uses multiple source noise tools to create more volume like effect.

Code: Select all
{
   Tools = ordered() {
      Merge2 = Merge {
         Inputs = {
            Blend = Input {
               SourceOp = "Shake3",
               Source = "X",
            },
            Background = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "FastNoise1_1",
               Source = "Output",
            },
            SubtractiveAdditive = Input { Value = 0, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, -49.5, }, },
         Colors = {
            TileColor = { R = 1, G = 0, B = 0.498039215686275, },
            TextColor = { R = 0, G = 0, B = 0, },
         },
      },
      Shake3 = Shake {
         CtrlWZoom = false,
         Inputs = {
            Smoothness = Input { Value = 5.0008, },
            XMinimum = Input { Value = 0.4285714, },
         },
      },
      FastNoise1_1 = FastNoise {
         Inputs = {
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            Depth = Input { Value = 2, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Discontinuous = Input { Value = 1, },
            Inverted = Input { Value = 1, },
            Center = Input { Value = { 0.497690531177829, 0.5, }, },
            Detail = Input { Value = 6.9047619, },
            Contrast = Input { Value = 0.7047619, },
            XScale = Input { Value = 3.6190476, },
            Seethe = Input { Value = 0.3269231, },
            SeetheRate = Input { Value = 1, },
            Type = Input { Value = 1, },
            GradientType = Input { Value = 5, },
            Start = Input { Value = { 0.5, 0.5, }, },
            End = Input { Value = { 0.0693301771873418, 0.0589414101977536, }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0.426666666666667, 0.426666666666667, 0.426666666666667, 1, },
                     [0.233576642335766] = { 0.68, 0.68, 0.68, 0.802919708029197, },
                     [0.58029197080292] = { 0.186666666666667, 0.186666666666667, 0.186666666666667, 0.439694125825513, },
                     [1] = { 0, 0, 0, 0, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 880, -49.5, }, },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            Depth = Input { Value = 2, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Center = Input { Value = { 0.497690531177829, 0.5, }, },
            Detail = Input {
               SourceOp = "Shake1",
               Source = "X",
            },
            XScale = Input {
               SourceOp = "Shake2",
               Source = "X",
            },
            Seethe = Input { Value = 0.3269231, },
            SeetheRate = Input { Value = 1, },
            Type = Input { Value = 1, },
            GradientType = Input { Value = 5, },
            Start = Input { Value = { 0.5, 0.5, }, },
            End = Input { Value = { 0.187466616455229, 0.736146069099584, }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 1, 1, 1, 1, },
                     [1] = { 0, 0, 0, 0, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, -115.5, }, },
      },
      Shake1 = Shake {
         CtrlWZoom = false,
         Inputs = {
            Smoothness = Input { Value = 0.7152571, },
            XMinimum = Input { Value = 2, },
            XMaximum = Input { Value = 3.5, },
         },
      },
      Shake2 = Shake {
         CtrlWZoom = false,
         Inputs = {
            Smoothness = Input { Value = 6.001, },
            XMinimum = Input { Value = 2, },
            XMaximum = Input { Value = 3, },
         },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 2.5619048, },
            PreDividePostMultiply = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, -16.5, }, },
      },
      Rectangle1 = RectangleMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 2048, },
            MaskHeight = Input { Value = 1556, },
            PixelAspect = Input { Value = { 1, 1, }, },
            ClippingMode = Input { Value = FuID { "None", }, },
            Center = Input { Value = { 0.998659517426273, 0.5, }, },
            Width = Input { Value = 0.954657786620155, },
            Height = Input { Value = 1.64745308310992, },
         },
         ViewInfo = OperatorInfo { Pos = { 880, -16.5, }, },
      },
      LumaKeyer1 = LumaKeyer {
         Inputs = {
            Low = Input { Value = 0.1588235, },
            Input = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 16.5, }, },
      },
      pEmitter1 = pEmitter {
         ID = 4,
         Inputs = {
            Number = Input { Value = 3, },
            NumberVariance = Input { Value = 2, },
            Lifespan = Input { Value = 180.952381, },
            LifespanVariance = Input { Value = 33.8095238, },
            VelocityControls = Input { Value = 1, },
            Angle = Input { Value = 90, },
            InheritVelocity = Input { Value = -2, },
            Style = Input { Value = FuID { "ParticleStyleBitmap", }, },
            Region = Input { Value = FuID { "CubeRgn", }, },
            ["ParticleStyle.ColorControls"] = Input { Value = 1, },
            ["ParticleStyle.Red"] = Input { Value = 0.553333333333333, },
            ["ParticleStyle.Green"] = Input { Value = 0.553333333333333, },
            ["ParticleStyle.Blue"] = Input { Value = 0.553333333333333, },
            ["ParticleStyle.Alpha"] = Input { Value = 0.906976744186046, },
            ["ParticleStyle.ColorVariance"] = Input { Value = 1, },
            ["ParticleStyle.GreenLow"] = Input { Value = -0.0133333, },
            ["ParticleStyle.GreenHigh"] = Input { Value = 0.0133333, },
            ["ParticleStyle.BlueLow"] = Input { Value = -0.0266667, },
            ["ParticleStyle.BlueHigh"] = Input { Value = 0.0133333, },
            ["ParticleStyle.AlphaLow"] = Input { Value = -0.6933333, },
            ["ParticleStyle.AlphaHigh"] = Input { Value = -0.4133333, },
            ["ParticleStyle.LockColorVariance"] = Input { Value = 0, },
            ["ParticleStyle.ColorOverLife"] = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0.54, 0.54, 0.54, 1, },
                     [1] = { 0, 0, 0, 1, },
                  },
               },
            },
            ["ParticleStyle.SizeControls"] = Input { Value = 1, },
            ["ParticleStyle.Size"] = Input { Value = 1.23, },
            ["ParticleStyle.SizeOverLife"] = Input {
               SourceOp = "pEmitter1SizeoverLife",
               Source = "Value",
            },
            ["ParticleStyle.FadeControls"] = Input { Value = 1, },
            ["ParticleStyle.FadeOut"] = Input { Value = 0, },
            ["ParticleStyle.BlurOverLife"] = Input {
               SourceOp = "pEmitter1BluroverLife2D",
               Source = "Value",
            },
            ["SphereRgn.Size"] = Input { Value = 0.0238095, },
            ["ParticleStyleBitmap.Animate"] = Input { Value = 2, },
            ["ParticleStyleBitmap.DropToolsHere"] = Input {
               SourceOp = "LumaKeyer1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 82.5, }, },
      },
      pEmitter1SizeoverLife = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.301677419354839, RH = { 0.488657612623015, 0.360009697293616, }, Flags = { Linear = true, }, },
               [1] = { 0.919354838709677, LH = { 0.768629808026417, 0.601996517999621, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pEmitter1BluroverLife2D = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5, }, Flags = { Linear = true, }, },
               [1] = { 0.5, LH = { 0.7, 0.5, }, Flags = { Linear = true, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pDirectionalForce1 = pDirectionalForce {
         ID = 14,
         Inputs = {
            Strength = Input { Value = 0.0419048, },
            Direction = Input { Value = 90, },
            Input = Input {
               SourceOp = "pEmitter1",
               Source = "Output",
            },
            Probability = Input { Value = 0.752381, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 115.5, }, },
      },
      pDirectionalForce1_1 = pDirectionalForce {
         ID = 20,
         PassThrough = true,
         Inputs = {
            Strength = Input { Value = 0.0419048, },
            Input = Input {
               SourceOp = "pDirectionalForce1",
               Source = "Output",
            },
            Probability = Input { Value = 0.752381, },
            StartAge = Input { Value = 0.4588235, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 148.5, }, },
      },
      pTurbulence1 = pTurbulence {
         ID = 7,
         CtrlWZoom = false,
         Inputs = {
            XStrength = Input { Value = 1.5, },
            YStrength = Input { Value = 0, },
            ZStrength = Input { Value = 1, },
            StrengthOverLife = Input { Value = 1, },
            StrengthOverLifeLUT = Input {
               SourceOp = "pTurbulence1StrengthoverLifeLUT",
               Source = "Value",
            },
            Density = Input { Value = 15.2380952, },
            Input = Input {
               SourceOp = "pDirectionalForce1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 181.5, }, },
      },
      pTurbulence1StrengthoverLifeLUT = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.0645161290322584, RH = { 0.0545058271371452, 0.109967197265992, }, Flags = { Linear = true, }, },
               [0.163517481411436] = { 0.13617830697739, LH = { 0.105556850862651, 0.125700209116084, }, RH = { 0.25746643936134, 0.15316235918742, }, },
               [0.446399751788057] = { 0.134068906097184, LH = { 0.351824346076509, 0.163180398906282, }, RH = { 0.473111851597857, 0.125846587665893, }, },
               [0.5265498951126] = { 0.155321173363373, LH = { 0.499828672496208, 0.171374683862043, }, RH = { 0.658145948515117, 0.0762612195877191, }, },
               [0.921933085501858] = { 0, LH = { 0.790342028771295, 0.0179617625865427, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pRender1 = pRender {
         Inputs = {
            ["_MotionBlurWarning"] = Input { Disabled = true, },
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 2048, },
            Height = Input { Value = 1556, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            OutputMode = Input { Disabled = true, },
            IntegrationMethod = Input { Value = FuID { "RK4", }, },
            ["MaterialID.MaterialID"] = Input { Value = 1, },
            ["ObjectID.ObjectID"] = Input { Value = 1, },
            Input = Input {
               SourceOp = "pTurbulence1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 214.5, }, },
      },
      Renderer3D1 = Renderer3D {
         Inputs = {
            ShutterAngle = Input { Value = 360, },
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            Depth = Input { Value = 4, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL", }, },
            ["RendererSoftware.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Supersampling"] = Input { Value = 1, },
            ["RendererOpenGL.Texturing"] = Input { Value = 1, },
            ["RendererOpenGL.TextureDepth"] = Input { Value = 0, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 280.5, }, },
      },
      Saver1 = Saver {
         Inputs = {
            ProcessWhenBlendIs00 = Input { Value = 0, },
            Clip = Input {
               Value = Clip {
                  Filename = "comp:\\out_JPG\\HowTo_ParticleSmoke..jpg",
                  FormatID = "JpegFormat",
                  Length = 0,
                  Saving = true,
                  TrimIn = 0,
                  ExtendFirst = 0,
                  ExtendLast = 0,
                  Loop = 1,
                  AspectMode = 0,
                  Depth = 0,
                  GlobalStart = -2000000000,
                  GlobalEnd = 0,
               },
            },
            OutputFormat = Input { Value = FuID { "JpegFormat", }, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            ["JpegFormat.Quality"] = Input { Value = 97, },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 280.5, }, },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "pRender1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 280.5, }, },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.0961665447968148, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 1.35540666231885, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 2.28502651482581, },
            ["Transform3DOp.Rotate.X"] = Input { Value = -8.19999890327454, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -360.199981689453, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis", }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 880, 280.5, }, },
      },
   },
}
Offline
User avatar

Rakesh Malik

  • Posts: 3282
  • Joined: Fri Dec 07, 2012 1:01 am
  • Location: Vancouver, BC

Re: smoke in fusion

PostThu Mar 19, 2015 7:10 pm

Rony Soussan wrote:Thanks Win, It really makes me happy to see people wanting to learn, and I'm happy to provide as many examples as possible.
I'm working on annotations for all of these, which takes time. Once I have a few ready, I'll post them all at once, but as for an official repository, that's something we can work on for sure, and internally here at BMD, you know my vote on that :)


It will be great to have these collected into a reference archive! :)
Rakesh Malik
Cinematographer, photographer, adventurer, martial artist
http://WinterLight.studio
System:
Asus Flow X13, Octacore Zen3/32GB + XG Mobile nVidia RTX 3080/16GB
Apple M1 Mini/16GB
Offline

JP Docherty

  • Posts: 190
  • Joined: Wed Dec 31, 2014 2:37 pm

Re: smoke in fusion

PostThu Mar 19, 2015 7:40 pm

The very talented Gregory Chalenko (under his non de plum Gringo) posted a lot of smoke and particle stuff that I found very useful on VFXpedia over the years. There's a short summary of some of it on his own web page -

http://www.compositing.ru/Research/SmokeSimulation/

that I'd recommend as a start point.
Offline
User avatar

Rony Soussan

  • Posts: 727
  • Joined: Tue Nov 11, 2014 5:33 pm

Re: smoke in fusion

PostThu Mar 19, 2015 8:05 pm

He is a great resource for sure
Offline

Peter Paterson

  • Posts: 43
  • Joined: Wed Jan 21, 2015 5:43 pm
  • Location: UK

Re: smoke in fusion

PostThu Mar 19, 2015 9:03 pm

Thanks Rony.

Do we simply highlight, copy and then paste into the flow window?
Offline
User avatar

Rony Soussan

  • Posts: 727
  • Joined: Tue Nov 11, 2014 5:33 pm

Re: smoke in fusion

PostThu Mar 19, 2015 11:49 pm

Yup, it's a settings not a comp
Offline

Peter Paterson

  • Posts: 43
  • Joined: Wed Jan 21, 2015 5:43 pm
  • Location: UK

Re: smoke in fusion

PostFri Mar 20, 2015 7:52 am

Thanks Rony.

Wasn't working fro me, then I remembered Webroot sometimes prevents C'n'P. Turned it off for a moment and works. Thanks for these examples.
Offline

Derek Serra

  • Posts: 20
  • Joined: Mon Nov 10, 2014 3:12 pm

Re: smoke in fusion

PostWed Mar 25, 2015 4:37 pm

Thanks Rony! I was actually going to tackle this over the weekend. You've saved me a lot of work. :)
Offline

Mixolydian

  • Posts: 237
  • Joined: Wed Feb 21, 2024 11:53 pm
  • Location: Planet Earth
  • Real Name: Sebastian Alvarez

Re: smoke in fusion

PostTue Apr 16, 2024 9:41 pm

Rony Soussan wrote:Here's a good start for you
One thing to note is the popping only goes away in software render. Use GL for testing, software for final (slower) render.

Code: Select all
{
   Tools = ordered() {
      Rectangle1 = RectangleMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 2048, },
            MaskHeight = Input { Value = 1556, },
            PixelAspect = Input { Value = { 1, 1, }, },
            ClippingMode = Input { Value = FuID { "None", }, },
            Center = Input { Value = { 0.998659517426273, 0.5, }, },
            Width = Input { Value = 0.987935656836461, },
            Height = Input { Value = 1.64745308310992, },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 181.5, }, },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 1.8380952, },
            Input = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 214.5, }, },
      },
      pEmitter1 = pEmitter {
         ID = 4,
         Inputs = {
            Number = Input { Value = 3.3333333, },
            Lifespan = Input { Value = 180.952381, },
            LifespanVariance = Input { Value = 33.8095238, },
            VelocityControls = Input { Value = 1, },
            Angle = Input { Value = 90, },
            InheritVelocity = Input { Value = -2, },
            Style = Input { Value = FuID { "ParticleStyleBitmap", }, },
            ["ParticleStyle.ColorControls"] = Input { Value = 1, },
            ["ParticleStyle.Red"] = Input { Value = 0.74, },
            ["ParticleStyle.Green"] = Input { Value = 0.74, },
            ["ParticleStyle.Blue"] = Input { Value = 0.74, },
            ["ParticleStyle.ColorVariance"] = Input { Value = 1, },
            ["ParticleStyle.GreenLow"] = Input { Value = -0.0133333, },
            ["ParticleStyle.GreenHigh"] = Input { Value = 0.0133333, },
            ["ParticleStyle.BlueLow"] = Input { Value = -0.0266667, },
            ["ParticleStyle.BlueHigh"] = Input { Value = 0.0133333, },
            ["ParticleStyle.AlphaLow"] = Input { Value = -0.5333333, },
            ["ParticleStyle.AlphaHigh"] = Input { Value = 0.24, },
            ["ParticleStyle.LockColorVariance"] = Input { Value = 0, },
            ["ParticleStyle.ColorOverLifeControls"] = Input { Value = 1, },
            ["ParticleStyle.ColorOverLife"] = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0.54, 0.54, 0.54, 1, },
                     [1] = { 0, 0, 0, 1, },
                  },
               },
            },
            ["ParticleStyle.SizeControls"] = Input { Value = 1, },
            ["ParticleStyle.Size"] = Input { Value = 1.05, },
            ["ParticleStyle.SizeOverLife"] = Input {
               SourceOp = "pEmitter1SizeoverLife",
               Source = "Value",
            },
            ["ParticleStyle.FadeControls"] = Input { Value = 1, },
            ["ParticleStyle.FadeOut"] = Input { Value = 0.06875, },
            ["ParticleStyle.BlurOverLife"] = Input {
               SourceOp = "pEmitter1BluroverLife2D",
               Source = "Value",
            },
            ["SphereRgn.Size"] = Input { Value = 0.0238095, },
            ["ParticleStyleBitmap.Animate"] = Input { Value = 2, },
            ["ParticleStyleBitmap.DropToolsHere"] = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 214.5, }, },
      },
      pEmitter1SizeoverLife = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0.00371747211895911] = { 0.0113548387096775, RH = { 0.492375084741974, 0.0692550257007599, }, Flags = { Linear = true, }, },
               [1] = { 0.919354838709677, LH = { 0.762908717062377, 0.830153771988154, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pEmitter1BluroverLife2D = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5, }, Flags = { Linear = true, }, },
               [1] = { 0.5, LH = { 0.7, 0.5, }, Flags = { Linear = true, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      pDirectionalForce1 = pDirectionalForce {
         ID = 14,
         Inputs = {
            Strength = Input { Value = 0.0419048, },
            Direction = Input { Value = 90, },
            Input = Input {
               SourceOp = "pEmitter1",
               Source = "Output",
            },
            Probability = Input { Value = 0.752381, },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 214.5, }, },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Center = Input { Value = { 0.497690531177829, 0.5, }, },
            Detail = Input {
               SourceOp = "Shake1",
               Source = "X",
            },
            XScale = Input { Value = 2.5714286, },
            Seethe = Input { Value = 0.3269231, },
            SeetheRate = Input { Value = 1, },
            Type = Input { Value = 1, },
            GradientType = Input { Value = 5, },
            Start = Input { Value = { 0.5, 0.5, }, },
            End = Input { Value = { 0.187466616455229, 0.736146069099584, }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 1, 1, 1, 1, },
                     [1] = { 0, 0, 0, 0, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 214.5, }, },
      },
      Shake1 = Shake {
         CtrlWZoom = false,
         Inputs = {
            XMinimum = Input { Value = 2, },
            XMaximum = Input { Value = 3, },
         },
      },
      pDirectionalForce1_1 = pDirectionalForce {
         ID = 20,
         Inputs = {
            Strength = Input { Value = 0.0419048, },
            Input = Input {
               SourceOp = "pDirectionalForce1",
               Source = "Output",
            },
            Probability = Input { Value = 0.752381, },
            StartAge = Input { Value = 0.4588235, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 214.5, }, },
      },
      pTurbulence1 = pTurbulence {
         ID = 7,
         CtrlWZoom = false,
         Inputs = {
            XStrength = Input { Value = 1, },
            YStrength = Input { Value = 0.1, },
            ZStrength = Input { Value = 1, },
            StrengthOverLife = Input { Value = 1, },
            StrengthOverLifeLUT = Input {
               SourceOp = "pTurbulence1StrengthoverLifeLUT",
               Source = "Value",
            },
            Density = Input { Value = 5.2380952, },
            Input = Input {
               SourceOp = "pDirectionalForce1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 214.5, }, },
      },
      pTurbulence1StrengthoverLifeLUT = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.0645161290322584, RH = { 0.0792889745968726, 0.126686056829407, }, Flags = { Linear = true, }, },
               [0.237866923790618] = { 0.329726694074164, LH = { 0.158585878122681, 0.315394300737689, }, RH = { 0.311502589478341, 0.343038518045937, }, },
               [0.459635396971336] = { 0.171450205621437, LH = { 0.385483415724496, 0.215999050804633, }, RH = { 0.613502715528376, 0.0790101758623785, }, },
               [0.921933085501858] = { 0, LH = { 0.7680716092516, 0.0210016043360813, }, },
            },
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64, },
         NameSet = true,
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.421451312939431, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.720935507757479, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 2.32716513089873, },
            ["Transform3DOp.Rotate.X"] = Input { Value = 3.60000109672546, },
            ["Transform3DOp.Rotate.Y"] = Input { Value = -350.199981689453, },
            FLength = Input { Value = 18.2123442718302, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis", }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 247.5, }, },
      },
      pRender1 = pRender {
         Inputs = {
            ["_MotionBlurWarning"] = Input { Disabled = true, },
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 2048, },
            Height = Input { Value = 1556, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            OutputMode = Input { Disabled = true, },
            IntegrationMethod = Input { Value = FuID { "RK4", }, },
            ["MaterialID.MaterialID"] = Input { Value = 1, },
            ["ObjectID.ObjectID"] = Input { Value = 1, },
            Input = Input {
               SourceOp = "pTurbulence1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 990, 214.5, }, },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "pRender1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1100, 247.5, }, },
      },
      Renderer3D1 = Renderer3D {
         Inputs = {
            GlobalIn = Input { Value = -100, },
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 2048, },
            Height = Input { Value = 1556, },
            Depth = Input { Value = 3, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL", }, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.RGBASS"] = Input { Value = 1, },
            ["RendererOpenGL.Supersampling"] = Input { Value = 1, },
            ["RendererOpenGL.Texturing"] = Input { Value = 1, },
            ["RendererOpenGL.TextureDepth"] = Input { Value = 3, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 1, },
            ["RendererOpenGL.ShadingModel"] = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 247.5, }, },
      },
   },
}


This thread is very old, but I wanted to say thank you anyway. I'm very new to Fusion Studio and it amazes me that you can just grab all this code, paste it in the flow window, and all those nodes magically appear.

And great smoke, much better than the one that comes with the templates. I just have one question. You say "One thing to note is the popping only goes away in software render. Use GL for testing, software for final (slower) render."

The renderer is set to Hardware, and this plays in real time. If I set it to Software, it takes about 5 seconds per frame, but I don't see any difference in how it looks. Is that because back in 2015 there was a difference and now Fusion changed enough that there isn't?
Offline
User avatar

Bryan Ray

  • Posts: 2552
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: smoke in fusion

PostWed Apr 17, 2024 1:21 am

I guess nine years of "General performance and stability improvements" does add up to better tools eventually! :lol:

Fusion's GPU foundations have been overhauled since then, so it's virtually certain that the glitches from back then have been fully replaced by new glitches
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Sam Steti

  • Posts: 2703
  • Joined: Tue Jun 17, 2014 7:29 am
  • Location: France

Re: smoke in fusion

PostWed Apr 17, 2024 7:40 am

Besides this, I'm glad I've been led to read Rony again ;)
*MacMini M1 16 Go - Ext nvme SSDs on TB3 - 14 To HD in 2 x 4 disks USB3 towers
*Legacy MacPro 8core Xeons, 32 Go ram, 2 x gtx 980 ti, 3SSDs including RAID
*Resolve Studio everywhere, Fusion Studio too
*https://www.buymeacoffee.com/videorhin

Return to Fusion

Who is online

Users browsing this forum: Animumtrix, KrunoSmithy and 12 guests