Welcome to WSL!

Make yourself at home, but before posting, please may I ask you to read the following topics.


Posting 101
Server space, screenshots, and you

Thank you!

PS. please pretty please:


Image

How would I achieve this effect (particle smoke)

User avatar
BrainSmashR
Posts: 27
Joined: Fri Jan 18, 2019 4:15 pm
Been thanked: 3 times

How would I achieve this effect (particle smoke)

#1

Post by BrainSmashR » Fri Jun 05, 2020 3:39 am

I'm interested in trying to replicate the effect at the very beginning of this video...it looks like a particle emitter with very fine points to simulate smoke and that is being utilized as a mask? I may have the terminology wrong, but basically I want to hide the video and only have it visible though the smoke...


My question is, would I do this the same way that I would hide an image behind text like in the thumbnail of this video...black background with white particles and a luma node to make the particles transparent??



Posting here because I still use Resolve much more often than the stand alone fusion.

User avatar
ShadowMaker SdR
Fusionista
Posts: 896
Joined: Sun Sep 21, 2014 6:17 am
Answers: 8
Been thanked: 36 times

Re: How would I achieve this effect

#2

Post by ShadowMaker SdR » Fri Jun 05, 2020 5:27 am

Depending on how you create your particles you don't need to use a lumakey, since the particles will come with alphachannels built in.
Apart from that it's basically the same idea.
You can take a look at the Sprut macro for nice fluid animations that will behave in a similar way to your example.

User avatar
BrainSmashR
Posts: 27
Joined: Fri Jan 18, 2019 4:15 pm
Been thanked: 3 times

Re: How would I achieve this effect

#3

Post by BrainSmashR » Fri Jun 05, 2020 7:57 pm

Sadly, I cannot...
I don't know if it's not playing well with Resolve or my home PC just can't handle it (GTX 1070 + 16 gb), but it grinds my pc to a stand still

User avatar
SecondMan
Site Admin
Posts: 4491
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 117 times
Contact:

Re: How would I achieve this effect (particle smoke)

#4

Post by SecondMan » Sat Jun 06, 2020 1:13 am

Adjusted your topic title a bit for clarity. I need to look into the effect a bit more but wanted to respond to your Sprut remark - Sprut has been developed on a system that is less performant than yours. Granted it was on Fusion Standalone which doesn't have the sizeable Resolve overhead.

Though Sprut has been reported to run on Resolve on an 8 gb RAM laptop. It may not be fast, but Sprut doesn't require much in terms of hardware at all.

User avatar
BrainSmashR
Posts: 27
Joined: Fri Jan 18, 2019 4:15 pm
Been thanked: 3 times

Re: How would I achieve this effect (particle smoke)

#5

Post by BrainSmashR » Sat Jun 06, 2020 2:30 pm

this is the error(s) I get even after uninstalling, rebooting and reinstalling Sprut

Code: Select all

*** EYEON SCRIPTING 9.0 ***
31743 BYTES FREE
READY.

.../Fusion/Fuses/CGS_FractalNoiseEN/CGS_FractalNoiseEN.fuse:2992: attempt to index global 'mgr' (a nil value)
stack traceback:
	.../Fusion/Fuses/CGS_FractalNoiseEN/CGS_FractalNoiseEN.fuse:2992: in function <.../Fusion/Fuses/CGS_FractalNoiseEN/CGS_FractalNoiseEN.fuse:2933>
FractalNoise2 failed at time 134
.../Fusion/Fuses/CGS_FractalNoiseEN/CGS_FractalNoiseEN.fuse:2992: attempt to index global 'mgr' (a nil value)
stack traceback:
	.../Fusion/Fuses/CGS_FractalNoiseEN/CGS_FractalNoiseEN.fuse:2992: in function <.../Fusion/Fuses/CGS_FractalNoiseEN/CGS_FractalNoiseEN.fuse:2933>
FractalNoise2 failed at time 134
___SPRUT_LOOP_IN___ failed to load file "C:\Users\brain\AppData\Local\Temp\DiskCache\Sprut_Solver_000160.exr" (clip "DiskCaches:Sprut_Solver_000000.exr" at frame 159)
___SPRUT_LOOP_IN___ failed to load file "C:\Users\brain\AppData\Local\Temp\DiskCache\Sprut_Solver_000160.exr" (clip "DiskCaches:Sprut_Solver_000000.exr" at frame 159)
___SPRUT_LOOP_IN___ failed to load file "C:\Users\brain\AppData\Local\Temp\DiskCache\Sprut_Solver_000160.exr" (clip "DiskCaches:Sprut_Solver_000000.exr" at frame 159)
___SPRUT_LOOP_IN___ failed to load file "C:\Users\brain\AppData\Local\Temp\DiskCache\Sprut_Solver_000161.exr" (clip "DiskCaches:Sprut_Solver_000000.exr" at frame 160)
___SPRUT_LOOP_IN___ failed to load file "C:\Users\brain\AppData\Local\Temp\DiskCache\Sprut_Solver_000161.exr" (clip "DiskCaches:Sprut_Solver_000000.exr" at frame 160)
___SPRUT_LOOP_IN___ failed to load file "C:\Users\brain\AppData\Local\Temp\DiskCache\Sprut_Solver_000161.exr" (clip "DiskCaches:Sprut_Solver_000000.exr" at frame 160)

User avatar
SecondMan
Site Admin
Posts: 4491
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 28
Location: Vancouver, Canada
Been thanked: 117 times
Contact:

Re: How would I achieve this effect (particle smoke)

#6

Post by SecondMan » Sat Jun 06, 2020 3:47 pm

There's a FractalNoise fuse in your flow which causes Fusion to fail. The error messages from Sprut are normal, they just mean it hasn't calculated anything yet, and you can ignore those.

User avatar
BrainSmashR
Posts: 27
Joined: Fri Jan 18, 2019 4:15 pm
Been thanked: 3 times

Re: How would I achieve this effect (particle smoke)

#7

Post by BrainSmashR » Sun Jun 07, 2020 7:07 am

IDK...Could it be that I'm using the FREE version of Resolve??. I eventually did make it to the render screen, but it ultimately failed
Image

I captured a video to show what I mean. Around the 50 second mark things start going south. At 5:29 I'm still unable to render (but eventually get there)...but other than for the purpose of this video, using sprut is still just dream. I'm even beginning to think it's fake and you guys are just pulling my leg :lol: :lol:

3dmus
Fusioneer
Posts: 72
Joined: Sat Jan 10, 2015 3:14 am
Been thanked: 11 times

Re: How would I achieve this effect (particle smoke)

#8

Post by 3dmus » Mon Jun 29, 2020 4:03 am

Hey Brainsmash :-)

I often have issues with Resolve too (in terms of heavier comps, particle systems).... but maybe the below is a bit CPU-friendlier for you. Just as a starting point and certainly doesn't look as nice as Spruce! Just replace the placeholder node with your video. So essentially you pipe the pRender into the mask input of your video.

cheers, Okke

Code: Select all

{
	Tools = ordered() {
		Polygon1 = PolylineMask {
			DrawMode = "InsertAndModify",
			DrawMode2 = "InsertAndModify",
			Inputs = {
				SoftEdge = Input { Value = 0.0162, },
				MaskWidth = Input { Value = 1920, },
				MaskHeight = Input { Value = 1080, },
				PixelAspect = Input { Value = { 1, 1 }, },
				ClippingMode = Input { Value = FuID { "None" }, },
				Size = Input { Value = 0.726, },
				Polyline = Input {
					SourceOp = "Perturb1",
					Source = "Value",
				},
				Polyline2 = Input {
					Value = Polyline {
					},
					Disabled = true,
				},
			},
			ViewInfo = OperatorInfo { Pos = { 329.447, 118.622 } },
		},
		Perturb1 = PerturbPolyLine {
			CtrlWZoom = false,
			Inputs = {
				Value = Input {
					SourceOp = "Perturb1Value",
					Source = "Value",
				},
				Jaggedness = Input { Value = 0.64, },
			},
		},
		Perturb1Value = BezierSpline {
			SplineColor = { Red = 173, Green = 255, Blue = 47 },
			NameSet = true,
			KeyFrames = {
				[678] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
						Closed = true,
						Points = {
							{ X = -0.33500000834465, Y = -0.314999997615814, LX = -0.0993231591351355, LY = 0.04118277277871, RX = 0.0700000043710073, RY = -0.0283333361148834 },
							{ Linear = true, X = -0.124999995231628, Y = -0.400000005960464, LX = -0.0700000043710073, LY = 0.0283333361148834, RX = 0.243333331749345, RY = 1.97193544132501e-009 },
							{ X = 0.170000001788139, Y = -0.310000002384186, LX = -0.0344652039934792, LY = -2.34775582629574e-009, RX = 0.0376017141555083, RY = 2.56141363631575e-009 },
							{ X = 0.280000001192093, Y = -0.33500000834465, LX = -0.104999998807907, LY = -0.0350000083446505, RX = 0.101414987765923, RY = 0.0338050043655107 },
							{ X = 0.444999992847443, Y = -0.0599999986588955, LX = -0.0317925019447133, LY = -0.120597502660122, RX = -0.00833333094914751, RY = 0.0499999995529651 },
							{ X = 0.419999986886978, Y = 0.0900000035762787, LX = 0.034999986886978, LY = -0.114999996423721, RX = -0.0239016639591846, RY = 0.0785340657041754 },
							{ X = 0.395000010728836, Y = 0.33500000834465, LX = 0.120000010728836, LY = -0.0749999916553502, RX = -0.156720458503921, RY = 0.0979502669093693 },
							{ X = -0.155000001192093, Y = 0.405000001192093, LX = 0.104999998807907, LY = 0.0250000011920933, RX = -0.073409457163527, RY = -0.0174784432136666 },
							{ X = -0.349999994039536, Y = 0.28999999165535, LX = 0.0400000059604645, LY = 0.13499999165535, RX = -0.0296596974443003, RY = -0.100101457770739 },
							{ X = -0.439999997615814, Y = -0.00999999977648258, LX = -0.0649999976158142, LY = 0.0700000002235174, RX = 0.0731638736186549, RY = -0.0787918670386722 }
						}
					} }
			}
		},
		Background1 = Background {
			Inputs = {
				Width = Input { Value = 100, },
				Height = Input { Value = 100, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				TopLeftRed = Input { Value = 1, },
				TopLeftGreen = Input { Value = 1, },
				TopLeftBlue = Input { Value = 1, },
				EffectMask = Input {
					SourceOp = "Polygon1",
					Source = "Mask",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 354, 157.309 } },
		},
		pTurbulence2 = pTurbulence {
			ID = 7,
			Inputs = {
				XStrength = Input { Value = 0.02, },
				YStrength = Input { Value = 0.02, },
				StrengthOverLifeLUT = Input {
					SourceOp = "pTurbulence2StrengthoverLifeLUT",
					Source = "Value",
				},
				Density = Input { Value = 1, },
				Input = Input {
					SourceOp = "pTurbulence1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 566, 216.5 } },
		},
		pTurbulence2StrengthoverLifeLUT = 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,
		},
		pEmitter1 = pEmitter {
			ID = 1,
			Inputs = {
				Number = Input { Value = 1, },
				Lifespan = Input { Value = 1000, },
				Style = Input { Value = FuID { "ParticleStyleBitmap" }, },
				["ParticleStyle.SizeControls"] = Input { Value = 1, },
				["ParticleStyle.Size"] = Input { Value = 1.5, },
				["ParticleStyle.SizeVariance"] = Input { Value = 1, },
				["ParticleStyle.SizeOverLife"] = Input {
					SourceOp = "pEmitter1SizeoverLife",
					Source = "Value",
				},
				["ParticleStyle.FadeControls"] = Input { Value = 1, },
				["ParticleStyle.FadeIn"] = Input { Value = 0.138, },
				["ParticleStyle.BlurOverLife"] = Input {
					SourceOp = "pEmitter1BluroverLife2D",
					Source = "Value",
				},
				["SphereRgn.Size"] = Input { Value = 0.034, },
				["ParticleStyleBitmap.Animate"] = Input { Value = 2, },
				["ParticleStyleBitmap.DropToolsHere"] = Input {
					SourceOp = "Background1",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 349, 216.5 } },
		},
		pEmitter1SizeoverLife = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.661290322580645 }, Flags = { Linear = true } },
					[1] = { 0.983870967741935, LH = { 0.666666666666667, 0.82258064516129 }, Flags = { Linear = true } }
				}
			},
			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,
		},
		pTurbulence1 = pTurbulence {
			ID = 5,
			Inputs = {
				XStrength = Input { Value = 0.02, },
				YStrength = Input { Value = 0.02, },
				ZStrength = Input { Value = 0, },
				StrengthOverLifeLUT = Input {
					SourceOp = "pTurbulence1StrengthoverLifeLUT",
					Source = "Value",
				},
				Input = Input {
					SourceOp = "pEmitter1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 456, 216.5 } },
		},
		pTurbulence1StrengthoverLifeLUT = 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,
		},
		pRender1 = pRender {
			Inputs = {
				_MotionBlurWarning = Input { Disabled = true, },
				Width = Input { Value = 1920, },
				Height = Input { Value = 1080, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				OutputMode = Input {
					Value = FuID { "TwoD" },
					Disabled = true,
				},
				IntegrationMethod = Input { Value = FuID { "RK4" }, },
				["MaterialID.MaterialID"] = Input { Value = 1, },
				["ObjectID.ObjectID"] = Input { Value = 1, },
				Input = Input {
					SourceOp = "pTurbulence2",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 734.586, 213.243 } },
		},
		PLACEHOLDER = FastNoise {
			CtrlWZoom = false,
			NameSet = true,
			Inputs = {
				Width = Input { Value = 1920, },
				Height = Input { Value = 1080, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				EffectMask = Input {
					SourceOp = "pRender1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 740.883, 266.872 } },
		}
	}
}