It might be possible to give some
very general things to try when compositing mist and smoke elements. As the others said, it's hard to give any specific advice without knowing exactly what you're dealing with.
First, it's often the case that you need to double- or triple-merge smoke to get it thick enough to occlude the background but still be wispy on the edges. One of my former coworkers built this Thickener tool, which does that with a single slider:
- Code: Select all
{
Tools = ordered() {
Thickener = MacroOperator {
CtrlWZoom = false,
CustomData = {
Path = {
Map = {
["Setting:"] = "Macros:\\Effects\\"
}
},
},
Inputs = ordered() {
Input = InstanceInput {
SourceOp = "AlphaDivide1",
Source = "Input",
},
Thicken = InstanceInput {
SourceOp = "AlphaThicken",
Source = "Thicken",
Default = 1,
},
EffectMask = InstanceInput {
SourceOp = "AlphaThicken",
Source = "EffectMask",
}
},
Outputs = {
Output = InstanceOutput {
SourceOp = "AlphaMultiply1",
Source = "Output",
}
},
ViewInfo = GroupInfo { Pos = { 3685, -148.5 } },
Tools = ordered() {
AlphaDivide1 = AlphaDivide {
CtrlWZoom = false,
CtrlWShown = false,
ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
},
AlphaThicken = Custom {
CtrlWZoom = false,
CtrlWShown = false,
NameSet = true,
CustomData = {
Settings = {
[1] = {
}
}
},
Inputs = {
NumberIn1 = Input {
Value = 4,
Expression = "Thicken",
},
LUTIn1 = Input {
SourceOp = "AlphaThickenLUTIn1",
Source = "Value",
},
LUTIn2 = Input {
SourceOp = "AlphaThickenLUTIn2",
Source = "Value",
},
LUTIn3 = Input {
SourceOp = "AlphaThickenLUTIn3",
Source = "Value",
},
LUTIn4 = Input {
SourceOp = "AlphaThickenLUTIn4",
Source = "Value",
},
AlphaExpression = Input { Value = "1-(1-a1)^n1", },
Image1 = Input {
SourceOp = "AlphaDivide1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 0, 41.7576 } },
UserControls = ordered() {
Thicken = {
INP_MinAllowed = 0,
LINKID_DataType = "Number",
INPID_InputControl = "SliderControl",
IC_ControlPage = 0,
INP_MaxScale = 21,
INP_Default = 1,
}
}
},
AlphaThickenLUTIn1 = 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 = 204, Green = 0, Blue = 0 },
},
AlphaThickenLUTIn2 = 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 = 204, Blue = 0 },
},
AlphaThickenLUTIn3 = 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 = 204 },
},
AlphaThickenLUTIn4 = 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 = 204, Green = 204, Blue = 204 },
},
AlphaMultiply1 = AlphaMultiply {
CtrlWShown = false,
Inputs = {
Input = Input {
SourceOp = "AlphaThicken",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 0, 74.7576 } },
}
},
}
},
ActiveTool = "Thickener"
}
Sometimes it can help things to use the smoke as an alpha to blur the background slightly, especially if the smoke is thin enough to see through easily. Don't overdo it—you just want to give a sense of light diffusion. Maybe turn down the Blend on the Blur node, too, so it creates a sort of misty look even before the element's been placed on top.
When rendering, make an additional pass where you light the element from both sides and the top with different colors—maximize one channel in each light so you get pure Red, Green, and Blue lights. You can use those as masks on a color corrector applied to the smoke to relight it in comp. That way you can tweak the interaction with the background if your rendered lighting happens to not quite get the job done.
Smoke is very forgiving of being warped—you don't want the sharpest of details, usually, so it doesn't usually matter if it gets softened. That means you can be more aggressive with a Grid Warp than maybe you usually would to add some more life or bend it to fall in exactly the right spot if you need to.