Skip to main content

Description

Turns any grayscale into a clean, tunable mask around a movable threshold. Paste it in, wire your value into one pin, take the mask out the other end.

It's a windowed soft-threshold: it builds a band around Position, runs your input through a smoothstep across that band, then shapes the falloff with a Contrast power curve and saturates the result to 0..1. So instead of a hard cutoff you get a clean feathered edge whose width, location, and punch you actually control — and an Invert toggle to flip which side reads as "on". No textures of its own, all native nodes.

Reach for it whenever you've got a value and you want a mask out of it: gate opacity off noise, build a dissolve/reveal by animating Position, isolate a height/AO/distance band, or drive a Lerp alpha between two looks. It's the little remap you end up rebuilding by hand on every other material — here it's one paste.

Wiring (two manual hookups)

It's a paste-in node group, so there are no material settings to change — it inherits whatever the host material already is.

  • It ships with a placeholder Constant (0.5) on the input, framed and labelled. Delete it and wire your own grayscale into the SmoothStep Value pin.
  • Wire the Result (mask) node into whatever wants a 0..1 signal — an opacity, a Lerp alpha, a blend mask, an emissive gate.

A T3D paste never carries those links, so both are by hand.

Params

  • Position — where the threshold sits along your input (0..1).
  • Width — half-width of the soft band on each side. Small = hard edge, large = gentle ramp.
  • Contrast — power exponent on the band. 1 = the raw smooth ramp; higher = steeper/punchier; below 1 lifts the low end.
  • Invert — flips the mask (compile-time switch, so it costs nothing).

Expose any of them through a Material Instance to tune per use-case.

material graph

Preview only · open in editor for full material editing

Want this graph on your blog or forum?

0 comments

Sign in to join the discussion.

No comments yet. Be the first.

source
View T3D source (29 KB)expand
Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_0"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C0"
   End Object
   Begin Object Name="MaterialExpressionComment_C0"
      SizeX=540
      SizeY=560
      Text="01 Histogram Scan"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-1640
      MaterialExpressionEditorY=-420
      MaterialExpressionGuid=2EAE6F11A045FAF04269E2B3F6515E13
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-1640
   NodePosY=-420
   NodeWidth=540
   NodeHeight=560
   NodeComment="01 Histogram Scan"
   NodeGuid=7F26D8D6821EECE9A23B49496C1744AF
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_1"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_1"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_1"
      ParameterName="Position"
      DefaultValue=0.5
      SliderMin=0
      SliderMax=1
      Group="01 Histogram Scan"
      SortPriority=0
      Desc="Where the threshold sits along the input range (0..1). The soft band is centred on this value."
      MaterialExpressionEditorX=-1600
      MaterialExpressionEditorY=-320
      MaterialExpressionGuid=89AE08DD54A9140863BC20FE66FFB2BF
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_1'"
   NodePosX=-1600
   NodePosY=-320
   NodeGuid=0D23987E67E1289577B4FC0244D9D989
   CustomProperties Pin (PinId=FEB7B14D7A15F647EC98965A10B4752E,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 46645F3BC2D93BC211F45A4B3C0B162D,MaterialGraphNode_7 4DED509A1269CB0948B3A81568FB23BA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_2"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_2"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_2"
      ParameterName="Width"
      DefaultValue=0.15
      SliderMin=0.001
      SliderMax=0.5
      Group="01 Histogram Scan"
      SortPriority=1
      Desc="Half-width of the soft transition band on each side of Position. Smaller = a harder edge; larger = a gentler feathered ramp."
      MaterialExpressionEditorX=-1600
      MaterialExpressionEditorY=-160
      MaterialExpressionGuid=B29369966C4D168169434ABB3618F386
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_2'"
   NodePosX=-1600
   NodePosY=-160
   NodeGuid=ECF49E4FD6B89764624C668148EDFADC
   CustomProperties Pin (PinId=DCC6B3D3B1FDDFEF483AB1AA1816D9E1,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 C895F5A870DC02E5C25B819EFA917FD7,MaterialGraphNode_7 FE8F7D10D3FF1DB3C548011EF9F1AFF8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_3"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_3"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_3"
      ParameterName="Contrast"
      DefaultValue=1
      SliderMin=0.1
      SliderMax=8
      Group="01 Histogram Scan"
      SortPriority=2
      Desc="Power exponent applied to the band. 1 = the raw smooth ramp; higher pushes the curve toward the high end (steeper, punchier mask); below 1 lifts the low end."
      MaterialExpressionEditorX=-1600
      MaterialExpressionEditorY=0
      MaterialExpressionGuid=8739AEEE84B692922F88D61237FE13FC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_3'"
   NodePosX=-1600
   NodePosY=0
   NodeGuid=8C9B3EF081F92960380BC3408F55A02F
   CustomProperties Pin (PinId=8D7DB743E448A06E8495385394FDDA7E,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_9 03A0E3728AC753C650CD1FCB70265B6B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_4"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_4"
   End Object
   Begin Object Name="MaterialExpressionConstant_4"
      R=0.5
      MaterialExpressionEditorX=-1180
      MaterialExpressionEditorY=400
      MaterialExpressionGuid=374DD4A6C5B882CA9057CFE072595E47
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_4'"
   NodePosX=-1180
   NodePosY=400
   NodeGuid=14DDF6A8E51BF2DCD2BE0BE6B893D4DD
   CustomProperties Pin (PinId=E8A17CA67262296AAAE3B516BC3BDDBE,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 9644181214F65C67E6C120FAE54C1998,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_5"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C5"
   End Object
   Begin Object Name="MaterialExpressionComment_C5"
      SizeX=320
      SizeY=200
      Text="Input — replace with your grayscale/value"
      CommentColor=(R=0.846873,G=0.205079,B=0.030713,A=1.000000)
      MaterialExpressionEditorX=-1220
      MaterialExpressionEditorY=320
      MaterialExpressionGuid=069B0ADC383E1B95648F9F9A630BCECC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C5'"
   CommentColor=(R=0.846873,G=0.205079,B=0.030713,A=1.000000)
   NodePosX=-1220
   NodePosY=320
   NodeWidth=320
   NodeHeight=200
   NodeComment="Input — replace with your grayscale/value"
   NodeGuid=75374A9C7DD759A72BBBAE97D3D98D86
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_6"
   Begin Object Class=/Script/Engine.MaterialExpressionSubtract Name="MaterialExpressionSubtract_6"
   End Object
   Begin Object Name="MaterialExpressionSubtract_6"
      A=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_1.MaterialExpressionScalarParameter_1'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_2.MaterialExpressionScalarParameter_2'")
      MaterialExpressionEditorX=-820
      MaterialExpressionEditorY=-240
      MaterialExpressionGuid=98616689F1E9D34827363D983FC167A6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSubtract'MaterialExpressionSubtract_6'"
   NodePosX=-820
   NodePosY=-240
   NodeGuid=464160D9D1FAA161075879B67A8E2B83
   CustomProperties Pin (PinId=46645F3BC2D93BC211F45A4B3C0B162D,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_1 FEB7B14D7A15F647EC98965A10B4752E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C895F5A870DC02E5C25B819EFA917FD7,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_2 DCC6B3D3B1FDDFEF483AB1AA1816D9E1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A0B1659757AF9753C7D4B3EE66D1BDF2,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 AF7B0B100F97E2E764E1AD9BFCBE65C9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=/Script/Engine.MaterialExpressionAdd Name="MaterialExpressionAdd_7"
   End Object
   Begin Object Name="MaterialExpressionAdd_7"
      A=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_1.MaterialExpressionScalarParameter_1'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_2.MaterialExpressionScalarParameter_2'")
      MaterialExpressionEditorX=-820
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=36564A6E8D07DCA2E4106CC13AD0A799
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionAdd'MaterialExpressionAdd_7'"
   NodePosX=-820
   NodePosY=-60
   NodeGuid=0CB4C7792A00BBDABA6E50DE43DF385C
   CustomProperties Pin (PinId=4DED509A1269CB0948B3A81568FB23BA,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_1 FEB7B14D7A15F647EC98965A10B4752E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=FE8F7D10D3FF1DB3C548011EF9F1AFF8,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_2 DCC6B3D3B1FDDFEF483AB1AA1816D9E1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=26F722E890535A7B646EB9E06F14D756,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 34738DE1137A26080ED46494ED2F3822,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_8"
   Begin Object Class=/Script/Engine.MaterialExpressionSmoothStep Name="MaterialExpressionSmoothStep_8"
   End Object
   Begin Object Name="MaterialExpressionSmoothStep_8"
      Min=(Expression="/Script/Engine.MaterialExpressionSubtract'MaterialGraphNode_6.MaterialExpressionSubtract_6'")
      Max=(Expression="/Script/Engine.MaterialExpressionAdd'MaterialGraphNode_7.MaterialExpressionAdd_7'")
      Value=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_4.MaterialExpressionConstant_4'")
      MaterialExpressionEditorX=-560
      MaterialExpressionEditorY=80
      MaterialExpressionGuid=1E36BE2BBF65CCC8FA212DDBF652F313
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSmoothStep'MaterialExpressionSmoothStep_8'"
   NodePosX=-560
   NodePosY=80
   NodeGuid=4B64974DEC6BC0586A66222489769B6E
   CustomProperties Pin (PinId=AF7B0B100F97E2E764E1AD9BFCBE65C9,PinName="Min",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 A0B1659757AF9753C7D4B3EE66D1BDF2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=34738DE1137A26080ED46494ED2F3822,PinName="Max",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_7 26F722E890535A7B646EB9E06F14D756,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9644181214F65C67E6C120FAE54C1998,PinName="Value",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_4 E8A17CA67262296AAAE3B516BC3BDDBE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=3276697A7246F78090389A85FF625F81,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_9 F8A2522B6565DBBDE4500AB6DF027E15,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_9"
   Begin Object Class=/Script/Engine.MaterialExpressionPower Name="MaterialExpressionPower_9"
   End Object
   Begin Object Name="MaterialExpressionPower_9"
      Base=(Expression="/Script/Engine.MaterialExpressionSmoothStep'MaterialGraphNode_8.MaterialExpressionSmoothStep_8'")
      Exponent=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_3.MaterialExpressionScalarParameter_3'")
      MaterialExpressionEditorX=-320
      MaterialExpressionEditorY=80
      MaterialExpressionGuid=D892E339931BD39EEF78DBB0547FACA0
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionPower'MaterialExpressionPower_9'"
   NodePosX=-320
   NodePosY=80
   NodeGuid=B6F09DB7F23C57932C81AA86D1BEA820
   CustomProperties Pin (PinId=F8A2522B6565DBBDE4500AB6DF027E15,PinName="Base",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 3276697A7246F78090389A85FF625F81,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=03A0E3728AC753C650CD1FCB70265B6B,PinName="Exp",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_3 8D7DB743E448A06E8495385394FDDA7E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=363A55EE89C6DF765777BCCC6524CAE2,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_10 C954EE59F174FF438B70FA6358037383,MaterialGraphNode_11 D6F0B337AB67E74C48C601A007B08180,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_10"
   Begin Object Class=/Script/Engine.MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_10"
   End Object
   Begin Object Name="MaterialExpressionOneMinus_10"
      Input=(Expression="/Script/Engine.MaterialExpressionPower'MaterialGraphNode_9.MaterialExpressionPower_9'")
      MaterialExpressionEditorX=-80
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=BB236AF36E1E228DD36BBBAC302809FC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionOneMinus'MaterialExpressionOneMinus_10'"
   NodePosX=-80
   NodePosY=-60
   NodeGuid=D18D24D626381B8561F110256353FF25
   CustomProperties Pin (PinId=C954EE59F174FF438B70FA6358037383,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_9 363A55EE89C6DF765777BCCC6524CAE2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=D6515A42E23F5ADFA56F3AB189067EFE,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 27B6916C01B48AF5266D55F3C92F7EED,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_11"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_11"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_11"
      ParameterName="Invert"
      DefaultValue=False
      Group="01 Histogram Scan"
      SortPriority=3
      Desc="Off = mask is 1 above the threshold. On = flips it (1 below the threshold)."
      A=(Expression="/Script/Engine.MaterialExpressionOneMinus'MaterialGraphNode_10.MaterialExpressionOneMinus_10'")
      B=(Expression="/Script/Engine.MaterialExpressionPower'MaterialGraphNode_9.MaterialExpressionPower_9'")
      MaterialExpressionEditorX=160
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=C81226E51206DD75DE851BB22811640C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_11'"
   NodePosX=160
   NodePosY=60
   NodeGuid=9ED960F63E2CCC6AD2D7FC760521FFD6
   CustomProperties Pin (PinId=27B6916C01B48AF5266D55F3C92F7EED,PinName="True",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_10 D6515A42E23F5ADFA56F3AB189067EFE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=D6F0B337AB67E74C48C601A007B08180,PinName="False",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_9 363A55EE89C6DF765777BCCC6524CAE2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=91F5290EB26E26AC5896B50677ECD2C6,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_12 DBC22FEC1324CB8532503FE68D425CAF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_12"
   Begin Object Class=/Script/Engine.MaterialExpressionSaturate Name="MaterialExpressionSaturate_12"
   End Object
   Begin Object Name="MaterialExpressionSaturate_12"
      Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_11.MaterialExpressionStaticSwitchParameter_11'")
      MaterialExpressionEditorX=440
      MaterialExpressionEditorY=80
      MaterialExpressionGuid=DB695EB580E21828E9A11F84A1AD191F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSaturate'MaterialExpressionSaturate_12'"
   NodePosX=440
   NodePosY=80
   NodeGuid=0BF70D6E97E38CA301F3E089EDE4C9A7
   CustomProperties Pin (PinId=DBC22FEC1324CB8532503FE68D425CAF,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 91F5290EB26E26AC5896B50677ECD2C6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=D6B461F1CBC6817138E8FA41C06A51CB,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_13"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C13"
   End Object
   Begin Object Name="MaterialExpressionComment_C13"
      SizeX=400
      SizeY=220
      Text="Result (mask) → an opacity / Lerp alpha / blend mask"
      CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
      MaterialExpressionEditorX=400
      MaterialExpressionEditorY=0
      MaterialExpressionGuid=0B72BC01BCDAE7AF90A93CF036E8908B
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.HistogramScanRemap'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C13'"
   CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
   NodePosX=400
   NodePosY=0
   NodeWidth=400
   NodeHeight=220
   NodeComment="Result (mask) → an opacity / Lerp alpha / blend mask"
   NodeGuid=0AF9C05DB5AC782A554F7BD6210A121A
End Object

Nodes: Comment (x3), ScalarParameter (x3), Add, Constant, Material, OneMinus, Power, Saturate, SmoothStep, StaticSwitchParameter, Subtract

more from @hazesee all

Digital Text Rain (matrix-style falling code)

@hazeUE 5.6+

Signal Lights

@hazeUE 5.6+

Cracked Glass

@hazeUE 5.6+

More like this

Contact Mask

@hazeUE 5.6+

Ground Blend

@hazeUE 5.6+

Wobble

@hazeUE 5.6+

Histogram Scan Remap

@hazefounder
UE 5.6UE 5.7

0
license

CC0 1.0: Public Domain

Public domain: use it however you like, no credit required.

dependencies

Zero dependencies

Pastes and works in any UE 5.3+ project. No textures, no material functions, no MPCs.

ue compatibility
UE 5.3UE 5.4UE 5.5UE 5.6UE 5.7

Details

Last update
2 hours ago
Published
2 hours ago
Nodes
14