Skip to main content

Description

A do-everything deferred decal that stamps signage, grime, cracks, posters, road paint or leaks onto your level — with real parallax depth and built-in de-tiling. Bring your own textures; it renders neutral on paste and you add maps as you have them.

One HLSL engine does the work. It raymarches your height map in the decal's own tangent space, so recessed cracks and raised letters get actual depth that holds up as you move the camera — and the parallax direction tracks the decal box instead of desyncing like a stock POM does on a decal. It's offset-limited, so it won't blow out and swim at grazing angles. Don't need the depth? Flip Use POM off for a cheap flat stamp.

It also kills tiling on its own: turn on Use Breakup and a gentle value-noise warp breaks the grid on repeated stamps. No flicker — the noise is static, so it's TSR-safe.

Knobs

  • Height Scale — how deep the relief reads. 0 = flat.
  • Min / Max Steps, Refine Steps — raymarch quality vs cost. 24 max is plenty for most decals.
  • Offset Limit — caps the parallax shift at grazing so it stays stable.
  • Breakup Strength / Scale — how much the de-tile warp pushes, and how big the swirls are.
  • Color Overlay + Overlay Intensity — re-tint the stamp (rust a leak, darken grime) without editing the texture.
  • Normal Intensity, Roughness / Metallic Value, Specular, Opacity Intensity, Edge Softness (how soft the decal fades at the box edge).

Textures (bring your own)

  • BaseColor, Normal, Opacity (mask), Height (grayscale, white = raised).
  • ORM — flip on Use ORM to drive Roughness from G and Metallic from B.

Settings you have to set

None of this rides along in the paste — set it or it won't work:

  • Material DomainDeferred Decal
  • Decal Blend ModeTranslucent (the all-rounder), or a DBuffer mode (DBuffer Translucent Color/Normal/Roughness) if you need the decal under baked lighting — enable DBuffer Decals in Project Settings for those.
  • Drop a Decal Actor, assign the material, aim its box at the surface. Set the actor's Sort Order to resolve overlapping decals.

Wiring after paste

Six result nodes sit in labelled frames next to the Material node: Base Color, Metallic, Specular, Roughness, Normal, Opacity — wire each into its pin. Root pins don't survive a paste, so that part's on you.

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 (164 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=560
      SizeY=1180
      Text="01 Input Textures"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=-1280
      MaterialExpressionGuid=834D9CBB7709F220BD91127DBFE6316A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=-1280
   NodeWidth=560
   NodeHeight=1180
   NodeComment="01 Input Textures"
   NodeGuid=A41F87186D1AF13669A109AE4C9553A2
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_1"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_1"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_1"
      ParameterName="BaseColor"
      Group="01 Input Textures"
      SortPriority=0
      Texture=Texture2D'/Engine/EngineResources/WhiteSquareTexture'
      SamplerType=SAMPLERTYPE_Color
      Desc="Albedo / base colour of the decal, sampled at the parallaxed + de-tiled UV. White default = a neutral stamp that just tints by Color Overlay until you assign art."
      Coordinates=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_34.MaterialExpressionNamedRerouteUsage_34'")
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-1180
      MaterialExpressionGuid=99649C6975D4D3445809905B2D001653
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_1'"
   NodePosX=-2520
   NodePosY=-1180
   NodeGuid=00E1CC8F44BB8EEA3F5EC7722B916C5E
   CustomProperties Pin (PinId=8035AA3845D15F0A9A4BF57E039BE42C,PinName="UVs",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_34 F954579283FC73C6067DB47CD086FA4E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4AACF70D1B72B3DA7D144B316FA925E7,PinName="ApplyViewMipBias",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A4FB38A9F61B757A5B7A2DC476C6D7D5,PinName="RGB",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_40 33847F4EFBB4C5D2C328C3823FE7BD3B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=583F4A45133F3EBCBACC464706A52857,PinName="R",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)
   CustomProperties Pin (PinId=09018C8BA1328D7C5D4B681228D891AB,PinName="G",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)
   CustomProperties Pin (PinId=C4D69FD24D96D61EA7A4AFFC175C3ACC,PinName="B",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)
   CustomProperties Pin (PinId=89FC1EB469F5775560465BC350EF37B7,PinName="A",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)
   CustomProperties Pin (PinId=646000AB296478AE745D73E5B17BC6F8,PinName="RGBA",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 Name="MaterialGraphNode_2"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_2"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_2"
      ParameterName="Normal"
      Group="01 Input Textures"
      SortPriority=1
      Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
      SamplerType=SAMPLERTYPE_Normal
      Desc="Tangent-space normal map, sampled at the parallaxed + de-tiled UV. Assign a real normal map — the placeholder default is flat. NormalIntensity flattens it toward (0,0,1)."
      Coordinates=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_35.MaterialExpressionNamedRerouteUsage_35'")
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-980
      MaterialExpressionGuid=40591FB16AD3E62FCAD4525C9A3A2863
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_2'"
   NodePosX=-2520
   NodePosY=-980
   NodeGuid=054CB0B5B2B8C44AFEB186D8B50CD258
   CustomProperties Pin (PinId=2A9D4A744C5AF7C36D3110AD0DA646AD,PinName="UVs",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_35 9184E155ABBE8EC79D7FE3D48DD154F9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4A9AE15B0423E69554EFBA27FCDAD7A7,PinName="ApplyViewMipBias",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=8829EAE2EBEEC504623132A70D1F9C89,PinName="RGB",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_53 F47EBCD02B50B631F8DD81D2BEA1BD63,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5FFB2316D1CFCECECD250F08D8521DD7,PinName="R",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)
   CustomProperties Pin (PinId=38DB3941C732728A01D326F3CBA4FA01,PinName="G",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)
   CustomProperties Pin (PinId=6ECA3D822D7951DEEC7E654E95A12521,PinName="B",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)
   CustomProperties Pin (PinId=4E4C24E8EDFDB3DCC79EDD821EE0D74B,PinName="A",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)
   CustomProperties Pin (PinId=D876BAEE8CFB8344864204E98C3E80F4,PinName="RGBA",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 Name="MaterialGraphNode_3"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_3"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_3"
      ParameterName="Opacity"
      Group="01 Input Textures"
      SortPriority=2
      Texture=Texture2D'/Engine/EngineResources/WhiteSquareTexture'
      SamplerType=SAMPLERTYPE_LinearGrayscale
      Desc="Grayscale opacity / coverage mask (R = where the decal shows). White default = the decal covers the whole box (shaped only by the edge bell). Use it to stamp a logo, crack, splat or text silhouette. Set its address mode to Clamp so it does not tile across the decal."
      Coordinates=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_36.MaterialExpressionNamedRerouteUsage_36'")
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-780
      MaterialExpressionGuid=76DA38C7859ADA038AEA2A38E005D13A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_3'"
   NodePosX=-2520
   NodePosY=-780
   NodeGuid=E7E9418FDC24C23CEC16CDB9059BF17B
   CustomProperties Pin (PinId=401D07091E0B9CB1B9564BD95ACA6BAC,PinName="UVs",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_36 D66EA7BBC4DC0FF8ECE3F75C88AE1C95,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5444F7DCF1A799074E64CD72C4C0AA9C,PinName="ApplyViewMipBias",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=558909A7B60E9FBC2C8F8448C3B57AC3,PinName="RGB",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)
   CustomProperties Pin (PinId=A6B75B049A52D050F9C4D48568AE9915,PinName="R",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_64 DB0A895653C78A66831146D37C087ADD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=23DEEBF02CAA6FDD65837356C2C70698,PinName="G",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)
   CustomProperties Pin (PinId=176BF02CB114424D3F27081A7E202A28,PinName="B",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)
   CustomProperties Pin (PinId=EBBE32056832A97D5BA96A46A851D208,PinName="A",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)
   CustomProperties Pin (PinId=8A653F3102BC660F70EEBBEBE8E4C3FF,PinName="RGBA",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 Name="MaterialGraphNode_4"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_4"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_4"
      ParameterName="ORMTexture"
      Group="01 Input Textures"
      SortPriority=3
      Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
      SamplerType=SAMPLERTYPE_LinearColor
      Desc="Optional packed ORM (G = Roughness, B = Metallic; R/AO unused on a decal). Sampled at the parallaxed + de-tiled UV. Only used when UseORM is on; otherwise the RoughnessValue / MetallicValue scalars drive those channels."
      Coordinates=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_37.MaterialExpressionNamedRerouteUsage_37'")
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-580
      MaterialExpressionGuid=AADF137F9B5DF15543A5E137FC283FBD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_4'"
   NodePosX=-2520
   NodePosY=-580
   NodeGuid=070C335CD24D15AF8BC6600D29E2E4A8
   CustomProperties Pin (PinId=FEE984E77DFB27D21BE7B11E3224ADF0,PinName="UVs",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_37 AADB22A0AF86CA70325F0F086A4637C2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2E1AF1C7024BF3D6184B4043CC61ACF9,PinName="ApplyViewMipBias",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7775492BE6F1EFC5C8010C19FFE9518C,PinName="RGB",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)
   CustomProperties Pin (PinId=F43BCA1FA0A1A203451EC75509945732,PinName="R",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)
   CustomProperties Pin (PinId=83060939BEFE9CAB71652A8EB164778F,PinName="G",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_48 352D1F05D74AD19C9A72E49FF09DB77D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=FD68A119E799A033424E829E43B00D63,PinName="B",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_42 95FC3E10ACCA6B4174398DF2F18A820F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=44502725DF5755DCEBB0658F31978EC8,PinName="A",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)
   CustomProperties Pin (PinId=B902BB42CDCE5C3A1531B4BEE0D8801F,PinName="RGBA",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 Name="MaterialGraphNode_5"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureObjectParameter Name="MaterialExpressionTextureObjectParameter_5"
   End Object
   Begin Object Name="MaterialExpressionTextureObjectParameter_5"
      ParameterName="Height"
      Group="01 Input Textures"
      SortPriority=4
      Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
      Desc="Grayscale height map the parallax engine raymarches (white = raised lettering / kerbs, black = recessed cracks / grooves). Passed as a texture object so the Custom engine can sample it at explicit mip inside the loop. A softly-blurred height map parallaxes cleaner than a sharp one. Mid-grey default = no parallax (flat) until you assign one and raise HeightScale."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-380
      MaterialExpressionGuid=768F0BB62D5C64FD982AE1FAD948AA25
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureObjectParameter'MaterialExpressionTextureObjectParameter_5'"
   NodePosX=-2520
   NodePosY=-380
   NodeGuid=F8E78C8C4114D4E43737522F5542B325
   CustomProperties Pin (PinId=E872A763F7318DEC20D6EA149D925C2F,PinName="UVs",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=72A511EAE4EBE99FF7DC13B4B53B733D,PinName="ApplyViewMipBias",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=CF065B5D7D01A147C7D1A21C8B6D9437,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_Custom_32 51A7FAC321262440485E9BC0B35FCC9A,),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_6"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C6"
   End Object
   Begin Object Name="MaterialExpressionComment_C6"
      SizeX=560
      SizeY=1180
      Text="02 Parallax"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=-40
      MaterialExpressionGuid=56A7B9871771E74B43F13265B930D0D8
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C6'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=-40
   NodeWidth=560
   NodeHeight=1180
   NodeComment="02 Parallax"
   NodeGuid=409A238718B600CC6408D1702D5B1E83
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_7"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_7"
      ParameterName="UsePOM"
      DefaultValue=True
      Group="02 Parallax"
      SortPriority=0
      Desc="On = full parallax-occlusion raymarch (recessed/raised relief with correct occlusion). Off = a single plain-offset tap — much lighter, no silhouette depth, fine for shallow grime/paint. The unused branch compiles out."
      A=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_43.MaterialExpressionConstant_43'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_49.MaterialExpressionConstant_49'")
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=CDA5D705A5703F524C41B3FBA2580100
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_7'"
   NodePosX=-2520
   NodePosY=60
   NodeGuid=A2989F2F990509A52CAF4DB9F065FB5E
   CustomProperties Pin (PinId=F5AEABE9623885ADD495EB52E38EC63E,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_43 BB2116E753846A3D5A7438C8BFCC0BF5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A18D0BBBE2361C78B48F5A87B19D582A,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_49 972ECE342E73C85E22D5707D597D7C93,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E1D9AA8F58853E1E1A19620B7602DB9D,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_Custom_32 7F074E609FE6E18B2A812CD1FA1A97B7,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_8"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_8"
      ParameterName="HeightScale"
      DefaultValue=0.04
      SliderMin=0
      SliderMax=0.2
      Group="02 Parallax"
      SortPriority=1
      Desc="Apparent depth of the parallax in UV units. 0.02-0.06 reads as believable surface relief; too high (>0.12) exaggerates UV swimming and risks breaking at grazing angles. 0 = flat."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=240
      MaterialExpressionGuid=E187FAF742C91EC802F250386397D5F4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_8'"
   NodePosX=-2520
   NodePosY=240
   NodeGuid=BE55CFF36C3681BBB7D8FD2FD65F76CB
   CustomProperties Pin (PinId=3DE1F9F25E0F04C403F10B0DB6184C5C,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_Custom_32 2E5FD55F255F6C2764D319E98085429D,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_9"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_9"
      ParameterName="MinSteps"
      DefaultValue=8
      SliderMin=1
      SliderMax=64
      Group="02 Parallax"
      SortPriority=2
      Desc="Raymarch steps looking straight on at the decal (little depth visible). The engine lerps up to MaxSteps as the view goes grazing."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=420
      MaterialExpressionGuid=320138D3330FE905E218E9CF53A2CEF1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_9'"
   NodePosX=-2520
   NodePosY=420
   NodeGuid=DE5735F715748515A5CE784BFD02E86E
   CustomProperties Pin (PinId=EE1604B333F4717BDD2EE70CBA388A4C,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_Custom_32 79DB8E57E4B023BE7E9704582CD754B5,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_10"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_10"
      ParameterName="MaxSteps"
      DefaultValue=24
      SliderMin=4
      SliderMax=96
      Group="02 Parallax"
      SortPriority=3
      Desc="Raymarch steps at grazing angles (where stair-stepping shows). 24 is a solid decal default; raise for hero close-ups, lower for perf. Capped at 128 internally."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=600
      MaterialExpressionGuid=D090B6118AC7344420CE18FEB4EA1892
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_10'"
   NodePosX=-2520
   NodePosY=600
   NodeGuid=7BACBD2830622872343F55C06DA85158
   CustomProperties Pin (PinId=0E7DA7595185B5B0461CF8F6CB6A0C17,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_Custom_32 6E6EF421DC465DDD6B8C3A001D52D382,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_11"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_11"
      ParameterName="RefineSteps"
      DefaultValue=4
      SliderMin=0
      SliderMax=8
      Group="02 Parallax"
      SortPriority=4
      Desc="Binary-search refinement passes after the linear march. Each halves the intersection error, killing the stepped look cheaply. 4 is plenty; 0 = linear march only."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=780
      MaterialExpressionGuid=45D6A0AB8B784C77542B9FFF52A47BC7
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_11'"
   NodePosX=-2520
   NodePosY=780
   NodeGuid=C76A91322CC540C41F73C018491725BA
   CustomProperties Pin (PinId=C4EC17670EEA81951ACD82DF3AD8EA72,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_Custom_32 C79D1BD2E017C2F4F03C2BD70BE29CEA,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_12"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_12"
      ParameterName="OffsetLimit"
      DefaultValue=3
      SliderMin=0.5
      SliderMax=10
      Group="02 Parallax"
      SortPriority=5
      Desc="Caps the parallax UV shift to OffsetLimit x HeightScale, so steep / grazing angles do not explode the offset (which swims the texture). Lower = more stable but less grazing depth; higher = more grazing depth but riskier. 3 is a good balance. See field-notes parallax-offset-explodes-at-grazing."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=960
      MaterialExpressionGuid=72BE96A172309F46B3B3CC1BD25A6E86
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_12'"
   NodePosX=-2520
   NodePosY=960
   NodeGuid=76FA9E956A4E9A8D0D61569728DC8FAA
   CustomProperties Pin (PinId=33CA72B391DE55A6F7D36351769DC820,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_Custom_32 F73D1286ED87E043A555D4ECDFB6F64D,),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=560
      SizeY=640
      Text="03 De-Tile Breakup"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=1200
      MaterialExpressionGuid=99044654C638DFA5D96E480B562949B5
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C13'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=1200
   NodeWidth=560
   NodeHeight=640
   NodeComment="03 De-Tile Breakup"
   NodeGuid=5D9EE27BAFA7B27643D2F7A769FE09BC
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_14"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_14"
      ParameterName="UseBreakup"
      DefaultValue=False
      Group="03 De-Tile Breakup"
      SortPriority=0
      Desc="On = jitter the sample UV with low-frequency value noise so a repeated/tiling decal texture stops reading as a grid. Lightweight (a few hash taps, static/panned never reseeded -> TSR-safe); does NOT rotate or stamp cells like the texture-bombing tool. Off (default) = the raw UV. The branch compiles out when off."
      A=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_43.MaterialExpressionConstant_43'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_49.MaterialExpressionConstant_49'")
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=1300
      MaterialExpressionGuid=55EE2B1826BC9F1EBCA742CD71E337CB
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_14'"
   NodePosX=-2520
   NodePosY=1300
   NodeGuid=2CB6BA7099BCE9C66F1929472C6C73C5
   CustomProperties Pin (PinId=5B3A015F8C33B8037B8BDF21C1E0E686,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_43 BB2116E753846A3D5A7438C8BFCC0BF5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5661EA288F7951E11DD7AF0FF4E63DE6,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_49 972ECE342E73C85E22D5707D597D7C93,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=D6B43962284DA258DB22C9E9861C0D16,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_Custom_32 2F84A27FC6A8256FB5A4275D0D264375,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_15"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_15"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_15"
      ParameterName="BreakupStrength"
      DefaultValue=0.15
      SliderMin=0
      SliderMax=1
      Group="03 De-Tile Breakup"
      SortPriority=1
      Desc="How far the de-tile noise pushes the UV (in UV units, scaled internally). 0 = none, ~0.1-0.2 hides tiling without obviously warping the art, high values smear it."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=1480
      MaterialExpressionGuid=28D53AA2DCDA8EACA723D451D6E8F43A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_15'"
   NodePosX=-2520
   NodePosY=1480
   NodeGuid=6BAB33CB09404742026326B9970F9C48
   CustomProperties Pin (PinId=557821EA5C2E0E9AE6F8C9D323E4FD9D,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_Custom_32 E336A59E581628BB0A8DF9FF7ECBB8BA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_16"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_16"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_16"
      ParameterName="BreakupScale"
      DefaultValue=2
      SliderMin=0.25
      SliderMax=16
      Group="03 De-Tile Breakup"
      SortPriority=2
      Desc="Frequency of the de-tile noise relative to the decal UV. Low = big slow swirls (good for breaking macro tiling); high = fine wobble. ~1-3 is a good range for most decals."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=1660
      MaterialExpressionGuid=6ADA6299D28A46C8B72BB0016B21CFC6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_16'"
   NodePosX=-2520
   NodePosY=1660
   NodeGuid=8193C1572B20A767168F15E387F5E6F5
   CustomProperties Pin (PinId=1E7FFFA83074D079B26E6D3F71D05044,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_Custom_32 27E6F42EA97BA3FE8B6F3248B0CDEDC0,),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_17"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C17"
   End Object
   Begin Object Name="MaterialExpressionComment_C17"
      SizeX=560
      SizeY=460
      Text="04 Albedo Blend"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=1980
      MaterialExpressionGuid=58A72682058DD72FE5CFB05BC6377416
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C17'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=1980
   NodeWidth=560
   NodeHeight=460
   NodeComment="04 Albedo Blend"
   NodeGuid=5F90FAEE86D29CC8D793A65BD278CC2C
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_18"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_18"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_18"
      ParameterName="Color Overlay"
      DefaultValue=(R=0.5,G=0.5,B=0.5,A=1)
      Group="04 Albedo Blend"
      SortPriority=0
      Desc="Tint the decal is graded toward. Neutral 0.5 grey by default. Blend in via Overlay Intensity to recolour the stamp (rust a leak, darken grime, colour road paint) without editing the texture."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=2080
      MaterialExpressionGuid=13EEEC4EB53AE9DEA1A539ADF357B4C6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_18'"
   NodePosX=-2520
   NodePosY=2080
   NodeGuid=643194AFE9D4C32F112E6AAE42911E5B
   CustomProperties Pin (PinId=331A0659D365826CD537CCC58C42EAA9,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_39 7ADD5B98D3376A2BF800FBDBB208FCF4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=B1719CDBBDA16EF4BA5856B12B89E05C,PinName="R",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)
   CustomProperties Pin (PinId=733D6E25194DD43131F1EC24F1C34397,PinName="G",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)
   CustomProperties Pin (PinId=3B7EDDEFF2EB9E6B4E2D90DA5193D04D,PinName="B",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)
   CustomProperties Pin (PinId=2094C44D9B4F83181BD86678F526D090,PinName="A",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 Name="MaterialGraphNode_19"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_19"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_19"
      ParameterName="Overlay Intensity"
      DefaultValue=0
      SliderMin=0
      SliderMax=1.5
      Group="04 Albedo Blend"
      SortPriority=1
      Desc="How strongly Color Overlay is lerped over the base colour. 0 = pure texture (default), 1 = fully replaced by the overlay tint. Values >1 push past for a stronger grade."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=2260
      MaterialExpressionGuid=A2D5D66FD99EC070E0C8A8EF02623CD8
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_19'"
   NodePosX=-2520
   NodePosY=2260
   NodeGuid=CDACA93E01C7132F93CEAF4354D991B6
   CustomProperties Pin (PinId=3F9C0331A03F0AFC6B2365E8B5916999,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_40 B265B2298BB9A3C424FF745C88187052,),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_20"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C20"
   End Object
   Begin Object Name="MaterialExpressionComment_C20"
      SizeX=560
      SizeY=280
      Text="05 Normal"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=2500
      MaterialExpressionGuid=9064FD95A722D3613ACB7A6F8E1E4089
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C20'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=2500
   NodeWidth=560
   NodeHeight=280
   NodeComment="05 Normal"
   NodeGuid=945107FDB62C0B077991CBAC279813F2
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_21"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_21"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_21"
      ParameterName="Normal Intensity"
      DefaultValue=1
      SliderMin=0
      SliderMax=2
      Group="05 Normal"
      SortPriority=0
      Desc="Strength of the normal map. 0 = flat (the lerp flattens toward (0,0,1)), 1 = as authored, >1 exaggerates the relief. The decal only overwrites the receiver's normal in Translucent decal blend; in DBuffer Normal mode it perturbs it."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=2600
      MaterialExpressionGuid=57798F89F4DADD269479978B76A5EF28
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_21'"
   NodePosX=-2520
   NodePosY=2600
   NodeGuid=49EB6F4EEAD72256EAF4629B501917A4
   CustomProperties Pin (PinId=6BEABEA6FDCE22CB44F407AEBC986B99,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_53 0BA348206C68A84761DEE66FD85D6E2B,),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_22"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C22"
   End Object
   Begin Object Name="MaterialExpressionComment_C22"
      SizeX=560
      SizeY=640
      Text="06 Surface Response"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=2840
      MaterialExpressionGuid=E81CB0E025D1731A82731771DC1C70F1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C22'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=2840
   NodeWidth=560
   NodeHeight=640
   NodeComment="06 Surface Response"
   NodeGuid=AF8D20BB2018457EEAF8F501B2CE3EB2
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_23"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_23"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_23"
      ParameterName="RoughnessValue"
      DefaultValue=0.6
      SliderMin=0
      SliderMax=1
      Group="06 Surface Response"
      SortPriority=1
      Desc="Flat roughness used when UseORM is off, and the multiplier on ORM.G when UseORM is on. 0.6 reads as a slightly worn matte stamp."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=3120
      MaterialExpressionGuid=1CDCF626DF0C6DC940FB9621118992F1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_23'"
   NodePosX=-2520
   NodePosY=3120
   NodeGuid=500BE3CF261C6435D80ED84CA08C3B0D
   CustomProperties Pin (PinId=C651302046800CF01DD0D76577C957B1,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_50 7595B98604A062C47AF3A4499951E986,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_24"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_24"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_24"
      ParameterName="MetallicValue"
      DefaultValue=0
      SliderMin=0
      SliderMax=1
      Group="06 Surface Response"
      SortPriority=2
      Desc="Flat metallic used when UseORM is off, and the multiplier on ORM.B when UseORM is on. 0 = non-metal (grime, paint, cracks, posters)."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=3300
      MaterialExpressionGuid=00AF6E19FAC8F421CE1ECED2B8E6402B
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_24'"
   NodePosX=-2520
   NodePosY=3300
   NodeGuid=489398309A6FECE1018D58E882ADAEFC
   CustomProperties Pin (PinId=3DC942DDFAAC04D89D754DF1BA346F24,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_44 1F5B64362098240EB4B21BD3ACCD8248,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_25"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_25"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_25"
      ParameterName="Specular"
      DefaultValue=0.5
      SliderMin=0
      SliderMax=1
      Group="06 Surface Response"
      SortPriority=3
      Desc="Constant specular fed straight to the Specular pin. 0.5 is the UE default; lower it for chalky paint/dust, raise toward 1 for wet leaks."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=3480
      MaterialExpressionGuid=906B889E1353BC521448B5606258F198
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_25'"
   NodePosX=-2520
   NodePosY=3480
   NodeGuid=6CB232583D1C271D3B72D6A7E0B16927
   CustomProperties Pin (PinId=666B0407C633FF6BA4ADA7894CB07F8B,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_26"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C26"
   End Object
   Begin Object Name="MaterialExpressionComment_C26"
      SizeX=560
      SizeY=460
      Text="07 Opacity & Edge"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2560
      MaterialExpressionEditorY=3760
      MaterialExpressionGuid=5EBF3A9CA1EAEACD964D5EB65563FBC1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C26'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2560
   NodePosY=3760
   NodeWidth=560
   NodeHeight=460
   NodeComment="07 Opacity & Edge"
   NodeGuid=C9E0E9032CDEF6AB6D7BCB4D6760B30C
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_27"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_27"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_27"
      ParameterName="Opacity Intensity"
      DefaultValue=1
      SliderMin=0
      SliderMax=1
      Group="07 Opacity & Edge"
      SortPriority=0
      Desc="Master opacity multiplier on the whole decal (texture mask x edge bell x this). 1 = full strength, lower to fade the decal in subtly."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=3860
      MaterialExpressionGuid=6BE87487B516A5E5DB16F8EE2733BB73
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_27'"
   NodePosX=-2520
   NodePosY=3860
   NodeGuid=8665409BD71BC48191029B56DAFEE3DA
   CustomProperties Pin (PinId=18E72D576E1EF4A94B06E5279C593E84,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_65 2C347CEA5DAD46088BFFAB72F6C4F3F6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_28"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_28"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_28"
      ParameterName="Edge Softness"
      DefaultValue=1.5
      SliderMin=0.25
      SliderMax=8
      Group="07 Opacity & Edge"
      SortPriority=1
      Desc="Exponent on the decal-UV edge bell. Higher = the decal fades out further from the box edge (softer, more feathered); lower = it reaches closer to the box edge before fading. 1 = linear falloff."
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=4040
      MaterialExpressionGuid=B9A9C9FB97F910B46D3D02B7CC6B2BE4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_28'"
   NodePosX=-2520
   NodePosY=4040
   NodeGuid=6FDE64074F67A895AFF63FFB30BEC34A
   CustomProperties Pin (PinId=8EA0148C49F79EAC7CE9D5A2E24D6C98,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_60 AFF211A769176F00D29EC456084C6073,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_29"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_29"
   End Object
   Begin Object Name="MaterialExpressionTextureCoordinate_29"
      CoordinateIndex=0
      UTiling=1
      VTiling=1
      Desc="Decal projection UV (0..1 across the decal box footprint). Feeds the engine UV, the edge bell and the de-tile noise."
      MaterialExpressionEditorX=-1900
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=DB7F93FB6E4A8177409A528859F4440D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_29'"
   NodePosX=-1900
   NodePosY=60
   NodeGuid=A4A6BDA9D4942B0C224096A90A38FF8E
   CustomProperties Pin (PinId=09512DFB035FBCE15717CDEDC29EBC21,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_Custom_32 10E4D9368EEABFE265068726FA8AEE74,MaterialGraphNode_56 BA4FC1C12E698145CA9088C06AE42A0A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_30"
   Begin Object Class=/Script/Engine.MaterialExpressionCameraVectorWS Name="MaterialExpressionCameraVectorWS_30"
   End Object
   Begin Object Name="MaterialExpressionCameraVectorWS_30"
      Desc="World-space view vector (surface -> camera). Transformed into the decal's tangent space below so the parallax direction tracks the decal box, not the world axes."
      MaterialExpressionEditorX=-1900
      MaterialExpressionEditorY=320
      MaterialExpressionGuid=A7A710417D52DFFAE113A3EA492FA176
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCameraVectorWS'MaterialExpressionCameraVectorWS_30'"
   NodePosX=-1900
   NodePosY=320
   NodeGuid=5B3CBB23DD37198BBACADD4FEC7D25C2
   CustomProperties Pin (PinId=9623C4FBA826729AF615626C36C4D4BD,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_31 26F99C81A1A80E906284B47E2E9A9630,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_31"
   Begin Object Class=/Script/Engine.MaterialExpressionTransform Name="MaterialExpressionTransform_31"
   End Object
   Begin Object Name="MaterialExpressionTransform_31"
      TransformSourceType=TRANSFORMSOURCE_World
      TransformType=TRANSFORM_Tangent
      Desc="World -> tangent transform of the camera vector. On a deferred decal the tangent basis comes from the decal projection, so the raymarch stays aligned to the decal box. This is the clean substitute for the stock-POM camera-vector remap that infamously desyncs on decals (KB techniques.md#decal-pom-bump-decals)."
      Input=(Expression="/Script/Engine.MaterialExpressionCameraVectorWS'MaterialGraphNode_30.MaterialExpressionCameraVectorWS_30'")
      MaterialExpressionEditorX=-1660
      MaterialExpressionEditorY=320
      MaterialExpressionGuid=9DE5A0EC0B7886D2224771BFF0FCABA4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTransform'MaterialExpressionTransform_31'"
   NodePosX=-1660
   NodePosY=320
   NodeGuid=6C4FE170D1E0DB8B9F6B3C45CDA41188
   CustomProperties Pin (PinId=26F99C81A1A80E906284B47E2E9A9630,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_30 9623C4FBA826729AF615626C36C4D4BD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=511C08DBDFB6E44CCFA0C5A63EDE8430,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_Custom_32 7FD3DBCFE4E335AD3E5CC2632BE20496,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Custom Name="MaterialGraphNode_Custom_32"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_32"
   End Object
   Begin Object Name="MaterialExpressionCustom_32"
      Code="// Decal Parallax + De-tile engine. Returns the sample UV (parallaxed + de-tiled) and hit height.\r\n// No Time anywhere -> TSR-safe. Height read at explicit mip 0 so it is loop-legal.\r\n#define DM_H(uvc) Texture2DSampleLevel(HeightTex, HeightTexSampler, (uvc), 0.0).r\r\n\r\n// --- de-tiling: low-frequency value noise from a STATIC grid hash (no Time -> never reseeded) ---\r\n// smooth 2D value noise; gradient of two offset taps gives a 2D push vector. Distinct from\r\n// cell-bombing: no per-cell rotation/stamping, just a gentle UV warp to kill the visible grid.\r\nfloat _h1(float2 p){ p = frac(p * float2(0.1031, 0.1030)); p += dot(p, p.yx + 33.33); return frac((p.x + p.y) * p.x); }\r\nfloat _vnoise(float2 p){ float2 i = floor(p); float2 f = frac(p); float2 u = f*f*(3.0-2.0*f);\r\n  float a = _h1(i); float b = _h1(i+float2(1,0)); float c = _h1(i+float2(0,1)); float d = _h1(i+float2(1,1));\r\n  return lerp(lerp(a,b,u.x), lerp(c,d,u.x), u.y); }\r\nfloat2 _detile(float2 uv){\r\n  float2 p = uv * max(BreakupScale, 0.01);\r\n  float nx = _vnoise(p) - _vnoise(p + 17.3);\r\n  float ny = _vnoise(p + 41.7) - _vnoise(p + 5.1);\r\n  return uv + float2(nx, ny) * (BreakupStrength * 0.25);\r\n}\r\nfloat2 uv0 = (UseBreakup > 0.5) ? _detile(UV) : UV;\r\n\r\n// tangent-space view dir (surface -> camera)\r\nfloat3 V = normalize(ViewTS);\r\nfloat vz = max(abs(V.z), 0.02);                 // grazing-angle guard\r\nfloat2 maxOffset = (V.xy / vz) * HeightScale;\r\n// offset limiting: cap the grazing blow-up so the parallax shift stays bounded (no UV swim / smear).\r\nfloat _olen = length(maxOffset);\r\nfloat _omax = HeightScale * max(OffsetLimit, 0.01);\r\nmaxOffset *= (_olen > _omax) ? (_omax / _olen) : 1.0;\r\n\r\nfloat2 outUV = uv0;\r\nfloat hitHeight = 1.0;\r\n[branch] if (UsePOM > 0.5) {\r\n  // adaptive step count: MinSteps straight-on, MaxSteps at grazing\r\n  int n = (int)ceil(lerp(MaxSteps, MinSteps, saturate(abs(V.z))));\r\n  n = clamp(n, 1, 128);\r\n  float layerStep = 1.0 / n;\r\n  float2 dUV = maxOffset / n;\r\n  float2 cur = uv0; float curLayer = 0.0;\r\n  float depthCur = 1.0 - DM_H(cur);             // depth = 1 - height\r\n  [loop] for (int i = 0; i < 128; i++) {\r\n    if (i >= n || curLayer >= depthCur) break;\r\n    cur -= dUV; curLayer += layerStep; depthCur = 1.0 - DM_H(cur);\r\n  }\r\n  // binary-search refine between the last pre-hit step and the hit\r\n  float2 prevUV = cur + dUV; float prevLayer = curLayer - layerStep;\r\n  [loop] for (int k = 0; k < 8; k++) {\r\n    if (k >= RefineSteps) break;\r\n    float2 midUV = (cur + prevUV) * 0.5; float midLayer = (curLayer + prevLayer) * 0.5;\r\n    float midDepth = 1.0 - DM_H(midUV);\r\n    if (midLayer >= midDepth) { cur = midUV; curLayer = midLayer; }\r\n    else { prevUV = midUV; prevLayer = midLayer; }\r\n  }\r\n  outUV = cur; hitHeight = DM_H(cur);\r\n} else {\r\n  // plain single-tap offset (lighter): shift by the height at the entry point\r\n  float h = DM_H(uv0);\r\n  outUV = uv0 + maxOffset * (h - 1.0);\r\n  hitHeight = DM_H(outUV);\r\n}\r\nHitHeight = hitHeight;\r\nreturn outUV;\r\n"
      OutputType=CMOT_Float2
      Description="Decal Parallax + De-tile"
      ShowCode=True
      bShowOutputNameOnPin=True
      Inputs(0)=(InputName="UV",Input=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_29.MaterialExpressionTextureCoordinate_29'"))
      Inputs(1)=(InputName="ViewTS",Input=(Expression="/Script/Engine.MaterialExpressionTransform'MaterialGraphNode_31.MaterialExpressionTransform_31'"))
      Inputs(2)=(InputName="HeightTex",Input=(Expression="/Script/Engine.MaterialExpressionTextureObjectParameter'MaterialGraphNode_5.MaterialExpressionTextureObjectParameter_5'"))
      Inputs(3)=(InputName="HeightScale",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_8'"))
      Inputs(4)=(InputName="MinSteps",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_9.MaterialExpressionScalarParameter_9'"))
      Inputs(5)=(InputName="MaxSteps",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_10.MaterialExpressionScalarParameter_10'"))
      Inputs(6)=(InputName="RefineSteps",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_11.MaterialExpressionScalarParameter_11'"))
      Inputs(7)=(InputName="OffsetLimit",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_12.MaterialExpressionScalarParameter_12'"))
      Inputs(8)=(InputName="UsePOM",Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_7.MaterialExpressionStaticSwitchParameter_7'"))
      Inputs(9)=(InputName="UseBreakup",Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_14.MaterialExpressionStaticSwitchParameter_14'"))
      Inputs(10)=(InputName="BreakupStrength",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_15.MaterialExpressionScalarParameter_15'"))
      Inputs(11)=(InputName="BreakupScale",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_16.MaterialExpressionScalarParameter_16'"))
      AdditionalOutputs(0)=(OutputName="HitHeight",OutputType=CMOT_Float1)
      Desc="Tangent-space parallax raymarch (adaptive steps + binary-search refine, offset-limited at grazing) with a UsePOM plain-offset bypass, plus optional low-frequency value-noise UV de-tiling (static hash, never reseeded -> TSR-safe). Outputs the parallaxed + de-tiled sample UV and the hit height. No engine MF dependency — travels with the paste."
      MaterialExpressionEditorX=-1360
      MaterialExpressionEditorY=200
      MaterialExpressionGuid=2076780C9BC56E6FBEC4CFC9198395CE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCustom'MaterialExpressionCustom_32'"
   NodePosX=-1360
   NodePosY=200
   NodeGuid=DE5C7F2DA4A67AC6C9AEBBE27CE55E42
   CustomProperties Pin (PinId=10E4D9368EEABFE265068726FA8AEE74,PinName="UV",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_29 09512DFB035FBCE15717CDEDC29EBC21,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7FD3DBCFE4E335AD3E5CC2632BE20496,PinName="ViewTS",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_31 511C08DBDFB6E44CCFA0C5A63EDE8430,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=51A7FAC321262440485E9BC0B35FCC9A,PinName="HeightTex",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_5 CF065B5D7D01A147C7D1A21C8B6D9437,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2E5FD55F255F6C2764D319E98085429D,PinName="HeightScale",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 3DE1F9F25E0F04C403F10B0DB6184C5C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=79DB8E57E4B023BE7E9704582CD754B5,PinName="MinSteps",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 EE1604B333F4717BDD2EE70CBA388A4C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=6E6EF421DC465DDD6B8C3A001D52D382,PinName="MaxSteps",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 0E7DA7595185B5B0461CF8F6CB6A0C17,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C79D1BD2E017C2F4F03C2BD70BE29CEA,PinName="RefineSteps",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 C4EC17670EEA81951ACD82DF3AD8EA72,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F73D1286ED87E043A555D4ECDFB6F64D,PinName="OffsetLimit",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_12 33CA72B391DE55A6F7D36351769DC820,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7F074E609FE6E18B2A812CD1FA1A97B7,PinName="UsePOM",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 E1D9AA8F58853E1E1A19620B7602DB9D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2F84A27FC6A8256FB5A4275D0D264375,PinName="UseBreakup",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_14 D6B43962284DA258DB22C9E9861C0D16,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E336A59E581628BB0A8DF9FF7ECBB8BA,PinName="BreakupStrength",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_15 557821EA5C2E0E9AE6F8C9D323E4FD9D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=27E6F42EA97BA3FE8B6F3248B0CDEDC0,PinName="BreakupScale",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_16 1E7FFFA83074D079B26E6D3F71D05044,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=FC05C07A40B5813759D1162050B1035D,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_33 EF4F74B84CBB45641E35116AAB29DD78,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BB454DCB89FF603102F522FD0F4078E4,PinName="HitHeight",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 Name="MaterialGraphNode_33"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_33"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_33"
      Name="DecalUV"
      NodeColor=(R=0.300000,G=0.850000,B=0.500000,A=1.000000)
      VariableGuid=B3D8F1A2C5E74460921A6F30D8C45E17
      Desc="Bus signal: the parallaxed + de-tiled sample UV. Fans out to every surface map (Base Color, Normal, Opacity, ORM) so they all read the same displaced, de-tiled surface."
      Input=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_32.MaterialExpressionCustom_32'")
      MaterialExpressionEditorX=-880
      MaterialExpressionEditorY=200
      MaterialExpressionGuid=07EAD6E8DEE1196436B20A5660808A6A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_33'"
   NodePosX=-880
   NodePosY=200
   NodeGuid=0D9ECA36C95D2AC9B849788D9734B48D
   CustomProperties Pin (PinId=EF4F74B84CBB45641E35116AAB29DD78,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_Custom_32 FC05C07A40B5813759D1162050B1035D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=22889B0171DBC0A890E053800DADA81D,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 Name="MaterialGraphNode_34"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_34"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_34"
      DeclarationGuid=B3D8F1A2C5E74460921A6F30D8C45E17
      MaterialExpressionEditorX=-2760
      MaterialExpressionEditorY=-1160
      MaterialExpressionGuid=EFDFEFCDE737AF634B77DCB9EEB97050
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_34'"
   NodePosX=-2760
   NodePosY=-1160
   NodeGuid=4AB4C7FDB936FC65DA07E6F945D9F9F2
   CustomProperties Pin (PinId=F954579283FC73C6067DB47CD086FA4E,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_1 8035AA3845D15F0A9A4BF57E039BE42C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_35"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_35"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_35"
      DeclarationGuid=B3D8F1A2C5E74460921A6F30D8C45E17
      MaterialExpressionEditorX=-2760
      MaterialExpressionEditorY=-960
      MaterialExpressionGuid=93C2FEFD2DB7425379BFDF21DE9E6768
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_35'"
   NodePosX=-2760
   NodePosY=-960
   NodeGuid=84E297F6F14812F2CAE4C5D1B6DC129B
   CustomProperties Pin (PinId=9184E155ABBE8EC79D7FE3D48DD154F9,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_2 2A9D4A744C5AF7C36D3110AD0DA646AD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_36"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_36"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_36"
      DeclarationGuid=B3D8F1A2C5E74460921A6F30D8C45E17
      MaterialExpressionEditorX=-2760
      MaterialExpressionEditorY=-760
      MaterialExpressionGuid=C60385E8B6BA81D591E0D31FFAC4E4D8
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_36'"
   NodePosX=-2760
   NodePosY=-760
   NodeGuid=7A9D50E955247636E69CC8B7C560BF3D
   CustomProperties Pin (PinId=D66EA7BBC4DC0FF8ECE3F75C88AE1C95,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_3 401D07091E0B9CB1B9564BD95ACA6BAC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_37"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_37"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_37"
      DeclarationGuid=B3D8F1A2C5E74460921A6F30D8C45E17
      MaterialExpressionEditorX=-2760
      MaterialExpressionEditorY=-560
      MaterialExpressionGuid=3118F0F7A9523B948B9F44DD0C74ED74
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_37'"
   NodePosX=-2760
   NodePosY=-560
   NodeGuid=B3381DC57692DD6931DFF0CA07A8B379
   CustomProperties Pin (PinId=AADB22A0AF86CA70325F0F086A4637C2,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_4 FEE984E77DFB27D21BE7B11E3224ADF0,),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_38"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C38"
   End Object
   Begin Object Name="MaterialExpressionComment_C38"
      SizeX=520
      SizeY=300
      Text="Base Color"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=540
      MaterialExpressionEditorY=-1200
      MaterialExpressionGuid=2E8B327EB9B7773E7AC52A25B2B3A160
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C38'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=540
   NodePosY=-1200
   NodeWidth=520
   NodeHeight=300
   NodeComment="Base Color"
   NodeGuid=6859C567CB5814A4670232BC1EDB5486
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_39"
   Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_39"
   End Object
   Begin Object Name="MaterialExpressionComponentMask_39"
      R=True
      G=True
      B=True
      A=False
      Desc="RGB of the Color Overlay tint."
      Input=(Expression="/Script/Engine.MaterialExpressionVectorParameter'MaterialGraphNode_18.MaterialExpressionVectorParameter_18'")
      MaterialExpressionEditorX=600
      MaterialExpressionEditorY=-1020
      MaterialExpressionGuid=3BD8626B4F62E61F31CC0CBBD43FBA5C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_DecalMaster'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionComponentMask'MaterialExpressionComponentMask_39'"
   NodePosX=600
   NodePosY=-1020
   NodeGuid=AD2A53987A9B151FF9531D0259D7566E
   CustomProperties Pin (PinId=7ADD5B98D3376A2BF800FBDBB208FCF4,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueTy
…

Source truncated for rendering. Use Copy to grab the full 164 KB.

Nodes: ScalarParameter (x15), Comment (x13), Multiply (x6), NamedRerouteUsage (x4), StaticSwitchParameter (x4), TextureSampleParameter2D (x4), ComponentMask (x3), Constant (x3), LinearInterpolate (x2), Abs, CameraVectorWS, Constant3Vector, Custom, Material, NamedRerouteDeclaration, OneMinus, Power, Subtract, TextureCoordinate, TextureObjectParameter, Transform, VectorParameter

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

Fake Interior Window

@hazeUE 5.6+

Interior Window Mapping

@hazeUE 5.6+

Zone Marker

@hazeUE 5.6+

Decal Master

@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
67