Skip to main content
Procedural Edge Wear
preview ยท 1 / 4

Description

** Automatic chipped-edge wear on any mesh โ€” no textures, no baking, no setup. Just drop it on**

๐Ÿ”ง Zero setup โ€” drop it on any beveled prop and it just works

Smart Edge Wear adds believable chipping and worn edges to any mesh, driven entirely by the geometry no textures, no baked curvature maps, no UVs, nothing to set up. Assign it, and the worn edges appear instantly.

It reads the mesh's real edges two ways at once sharp corners and densely-rounded bevels and breaks the wear into irregular chips so it never looks like a painted-on outline. Crucially, the mask is camera-stable: unlike screen-space edge tricks, it doesn't crawl, shimmer, or breathe when you move the camera. What you place is what stays.

Built on UE5.7 Substrate. Opaque, Nanite-friendly, TSR-safe, and cheap โ€” a single procedural node, zero texture samples on the default path.

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 (98 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=640
      Text="01 Edge Detection"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-740
      MaterialExpressionGuid=6BCD2810F6582AA7FE16724C04DB11BE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2520
   NodePosY=-740
   NodeWidth=560
   NodeHeight=640
   NodeComment="01 Edge Detection"
   NodeGuid=3DEDB87CBA2EC508971275DB2F958387
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_1"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C1"
   End Object
   Begin Object Name="MaterialExpressionComment_C1"
      SizeX=560
      SizeY=1000
      Text="02 Breakup"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=CAF3602106B6421EB29F2BF62E3ED1E8
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C1'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2520
   NodePosY=-60
   NodeWidth=560
   NodeHeight=1000
   NodeComment="02 Breakup"
   NodeGuid=CD7519DBEDED2F7F1A18EB5A1CF0E2CC
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_2"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C2"
   End Object
   Begin Object Name="MaterialExpressionComment_C2"
      SizeX=560
      SizeY=920
      Text="03 Wear Look"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=980
      MaterialExpressionGuid=830CC4F90F123CEF1FC9D41CD56D69DC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C2'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2520
   NodePosY=980
   NodeWidth=560
   NodeHeight=920
   NodeComment="03 Wear Look"
   NodeGuid=37F93B1DACF0F9012AA3A8F05C3EB851
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_3"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C3"
   End Object
   Begin Object Name="MaterialExpressionComment_C3"
      SizeX=544
      SizeY=508
      Text="04 Debug"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-908
      MaterialExpressionEditorY=753
      MaterialExpressionGuid=4577463A1C74F5B4A46C80D9914D1091
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C3'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-908
   NodePosY=753
   NodeWidth=544
   NodeHeight=508
   NodeComment="04 Debug"
   NodeGuid=D8CFC4E297A318C3EBBC653B365A3811
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_4"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C4"
   End Object
   Begin Object Name="MaterialExpressionComment_C4"
      SizeX=323
      SizeY=762
      Text="Front Material"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=620
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=BC920B4EDA60835C1B43A469E71C75A4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C4'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=620
   NodePosY=-300
   NodeWidth=323
   NodeHeight=762
   NodeComment="Front Material"
   NodeGuid=52ED56ADB01C15A2EDDCF01482F85CBB
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_5"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_5"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_5"
      ParameterName="EdgeContrast"
      DefaultValue=6
      SliderMin=0.1
      SliderMax=20
      Group="01 Edge Detection"
      Desc="How strongly the face-vs-vertex normal divergence maps to wear on sharp/coarse edges. The vertex normal only bends a little across a bevel, so this gain lifts that small divergence into a readable mask. Higher = wider, stronger wear reaching onto flatter areas; lower = only the sharpest edges."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=-640
      MaterialExpressionGuid=A766D509C4CB1CB292BEE3A503A57924
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_5'"
   NodePosX=-2480
   NodePosY=-640
   NodeGuid=69EFA3730C700756A993E188AAD3354E
   CustomProperties Pin (PinId=6F60F03A4774100BB403B6AD54C954FC,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_27 E830AD088B974181CCA47D8F66DC1B97,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_6"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_6"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_6"
      ParameterName="EdgeSharpness"
      DefaultValue=1.5
      SliderMin=0.05
      SliderMax=8
      Group="01 Edge Detection"
      Desc="Hardness of the wear falloff (a power curve on the combined mask). Higher than 1 = crisp wear hugging the very edge; below 1 = soft, gradual fade down the bevel."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=-460
      MaterialExpressionGuid=AA91BCBB835B8FEC783B2989711F816F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_6'"
   NodePosX=-2480
   NodePosY=-460
   NodeGuid=FE91DB1541A0D5606D83360CE7BD7A5F
   CustomProperties Pin (PinId=A008218661069325020E37340821F12D,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_27 66DB66E9465ECD435CFED9C26894FC69,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_7"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_7"
      ParameterName="RoundedEdgeGain"
      DefaultValue=4
      SliderMin=0
      SliderMax=20
      Group="01 Edge Detection"
      Desc="Strength of the true-curvature detector (normal turn per unit world distance), max-combined with the face term. Unlike the face term it does NOT fade as a bevel is subdivided, so this is what catches densely-rounded bevels and concentrates wear on corners. Raise if a fine round bevel reads too faint; 0 = face-detection only (most temporally stable โ€” the curvature term uses normal derivatives, which can shimmer in 2x2 pixel quads on low-poly smoothed meshes). Tighter/smaller-radius bevels read stronger for a given value."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=-280
      MaterialExpressionGuid=23319E915B8EB37622D20F522427692F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_7'"
   NodePosX=-2480
   NodePosY=-280
   NodeGuid=0EFD3D49EFBAB1A25ECAB3CB302ABEF7
   CustomProperties Pin (PinId=5A4005FB600E5190391D791ABD7906B1,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_27 34E1DE148A43AD2254C2C3CED3AD4EBB,),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="BreakupAmount"
      DefaultValue=0.6
      SliderMin=0
      SliderMax=1
      Group="02 Breakup"
      Desc="How much the breakup eats into the edge so it isn't a solid continuous rim. 0 = solid edge (the raw mask); 1 = fully broken into patches. Applies to both the procedural noise and the optional texture. This is the knob that gives the wear variation along the edge."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=40
      MaterialExpressionGuid=E2562B786E57D51F073FCD7D34B7A8CD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_8'"
   NodePosX=-2480
   NodePosY=40
   NodeGuid=AC8329CFF3A817EA228DD49F3FB41874
   CustomProperties Pin (PinId=D71B92B783111D66159A25992E043F39,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_27 C92738F7ED92AB8CDD30F3BFE71E5C16,),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="BreakupScale"
      DefaultValue=8
      SliderMin=0.5
      SliderMax=40
      Group="02 Breakup"
      Desc="Size of the chips / gaps for the built-in PROCEDURAL noise (ignored when UseBreakupTexture is on). Lower = larger, chunkier breaks; higher = smaller, denser nibbles. World-space, so chip size stays consistent across meshes regardless of scale or UVs."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=220
      MaterialExpressionGuid=B58F15A2D40954AB441BF8F159F2BE85
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_9'"
   NodePosX=-2480
   NodePosY=220
   NodeGuid=B2DE2CBDE2F1307FE44A6E66E3D80950
   CustomProperties Pin (PinId=84B8F0CD3E25570510EA1B2678460808,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_27 18DDC509FE3F285D38B5096E9D92BCA5,),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="BreakupContrast"
      DefaultValue=2.5
      SliderMin=0.1
      SliderMax=8
      Group="02 Breakup"
      Desc="Softness of the breaks. Low = a gentle uneven mottle along the edge; high = hard-edged chunks with clean gaps (more like flaked paint / chipped coating)."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=400
      MaterialExpressionGuid=BFEF96557CA5FA6C5DEC8B939BE04C78
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_10'"
   NodePosX=-2480
   NodePosY=400
   NodeGuid=01694B98C6ECB4DD4D590B204CC34CE3
   CustomProperties Pin (PinId=924B442EAEDE1B29D4B3178857ADA8B0,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_27 1FEEBE128BC806C2F28EE0BBA922947D,),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.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_11"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_11"
      ParameterName="BreakupTexture"
      Group="02 Breakup"
      Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
      SamplerType=SAMPLERTYPE_SAMPLERTYPE_Linear
      Desc="Optional grayscale breakup mask to drive the chipping instead of the built-in procedural noise โ€” bring your own grunge / noise / paint-flake / leak map. Enable UseBreakupTexture to use it. The R channel is read (mid-grey 0.5 = neutral, like the noise). Assign your own texture before enabling; the placeholder is a flat engine texture."
      Coordinates=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_21.MaterialExpressionMultiply_21'")
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=580
      MaterialExpressionGuid=A0FCF555A56C74608B52A5934A7CF4F4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_11'"
   NodePosX=-2480
   NodePosY=580
   NodeGuid=190A368BC8E5B1A445CD8E84F5AF16C9
   CustomProperties Pin (PinId=BA9618BFEFA1401EB95818E68496E889,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_21 3E89F7F6B5BD10D9ED3E44F4E0E12487,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7224607BFDE4B8936F19B1034C335A75,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=FACE81C156201708E981B9F2DB7EC6E4,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=5EF56056C16C52B36C2413B6F2F0F1C1,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_25 D4465DAB4625D9CACE0A6156C202C594,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=8FBBF1B61A8519643A32F02EE5AD3A7E,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=62419C944E96E3057BFA74AE7B4926C3,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=8DF6F03933189B6B3451C5A946B1EE6C,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=F6F8B0228F5C0A1A74F72AB7E166D7D4,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_12"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_12"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_12"
      ParameterName="BreakupTextureTiling"
      DefaultValue=1
      SliderMin=0.05
      SliderMax=50
      Group="02 Breakup"
      Desc="UV tiling for BreakupTexture (only used when UseBreakupTexture is on). Higher = smaller, denser pattern."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=760
      MaterialExpressionGuid=76F0A4A76C731972F94DB4E333F8E118
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_12'"
   NodePosX=-2480
   NodePosY=760
   NodeGuid=CD65B383E79C7DC4B2091A8157C21211
   CustomProperties Pin (PinId=A3EBFE297D50F2FBF810C4ABDE0F8912,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_21 54D8EF09F1867157FE90AF6EA4B2B7BD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_13"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_13"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_13"
      ParameterName="BaseColor"
      DefaultValue=(R=0.03,G=0.03,B=0.035,A=1)
      Group="03 Wear Look"
      Desc="Surface colour away from edges. Dark by default so the worn edges and the debug view read clearly; set to your real surface colour for the shaded look."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=1080
      MaterialExpressionGuid=04FB9DC5C744F3116AB98A7D99005D18
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_13'"
   NodePosX=-2480
   NodePosY=1080
   NodeGuid=38AC9F1569614B145A491262AACA47A3
   CustomProperties Pin (PinId=2197FC373207EB3945E4E44B93091A58,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_28 0053C3DD3E335D0AB744E761C3F77648,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=72FC3023EC0334AE1D98B792A68587EF,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=95F95E9018E5A978F871F072F251B4D3,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=A9408BC9486B10199531EC30C703B60D,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=70ED6A302668FAFFCBD943634BBE7610,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_14"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_14"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_14"
      ParameterName="WornColor"
      DefaultValue=(R=0.6,G=0.62,B=0.65,A=1)
      Group="03 Wear Look"
      Desc="Colour at fully-worn edges โ€” the exposed material under the surface. Light grey by default (rubbed-bright metal). Drives Diffuse Albedo; the full Substrate metal treatment lands in Phase 3."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=1260
      MaterialExpressionGuid=28431DECA0AD0C0B7FE9696745132B8A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_14'"
   NodePosX=-2480
   NodePosY=1260
   NodeGuid=DF5C36B4AAE523CE99A3FA6ADA4FA92C
   CustomProperties Pin (PinId=4727055FFA65694E0771582766EC75D7,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_28 B95D53FF1CB7ECA24A81AB43AD3D6705,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7095CEF357FEAE6822E5B9C06A4CF385,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=24BD52DCFD74A9746FC145B85BF62663,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=8975F2822EC81AB1493458E9646CA966,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=6E86E254D1423F9299D7AC91953BC01F,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_15"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_15"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_15"
      ParameterName="BaseRoughness"
      DefaultValue=0.5
      SliderMin=0
      SliderMax=1
      Group="03 Wear Look"
      Desc="Roughness away from edges."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=1440
      MaterialExpressionGuid=9C020B326DBABACB884A47CEEB980E48
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_15'"
   NodePosX=-2480
   NodePosY=1440
   NodeGuid=675864E7749AE1EC18A124342B8D7102
   CustomProperties Pin (PinId=2E911DFF0146D487355050C100F26E5D,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_29 F3FA5906D85D927777AE3387FABFDB13,),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="WornRoughness"
      DefaultValue=0.2
      SliderMin=0
      SliderMax=1
      Group="03 Wear Look"
      Desc="Roughness at fully-worn edges. Low = polished/burnished edges rubbed smooth by handling; raise for abraded, scuffed wear."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=1620
      MaterialExpressionGuid=A43A01EB840C8BABD19A55A2556D2B60
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_16'"
   NodePosX=-2480
   NodePosY=1620
   NodeGuid=0A6EE1DCCF4DC657ED021732F4D7E09E
   CustomProperties Pin (PinId=2FBA028D505C289A6039DC3F9E0DF254,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_29 55C55442B3F32069983C8FB54072223B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_17"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_17"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_17"
      ParameterName="DebugColor"
      DefaultValue=(R=0.55,G=0.9,B=0.05,A=1)
      Group="04 Debug"
      Desc="Emissive colour the detected edges glow when UseDebugView is on โ€” a clean readout of exactly where the mask fires, so you can confirm placement and camera-stability before tuning the look."
      MaterialExpressionEditorX=-868
      MaterialExpressionEditorY=853
      MaterialExpressionGuid=A1F05CD663C1453C29B5E5AACE0B2BB2
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_17'"
   NodePosX=-868
   NodePosY=853
   NodeGuid=A955124893C4657AE0F762AAADAAC394
   CustomProperties Pin (PinId=06B429C4E0A1DFAC7A8CE61ABC5B5E58,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_30 BF17E1083DF64B5C890CDC8D39BAC535,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=86A6C40D665D07C2CA59E6BB1DDA50A4,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=571623F1DBB3D1B9FBEE2AB137D2D398,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=8044CD978B8985EF2C323FDBDCE29722,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=50E5D21241E37B22B9CC88271AF61923,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_18"
   Begin Object Class=/Script/Engine.MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_18"
   End Object
   Begin Object Name="MaterialExpressionWorldPosition_18"
      MaterialExpressionEditorX=-1900
      MaterialExpressionEditorY=-640
      MaterialExpressionGuid=5AB437FFEDC885578B78C42D883FC0DF
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_18'"
   NodePosX=-1900
   NodePosY=-640
   NodeGuid=9E5DD197A0B0656D20FBB24219E441F3
   CustomProperties Pin (PinId=5663E906016CA1E3AAEC42A30188CA10,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_27 7D00848EBAC4CDE58C53AEACBB8A2AA8,),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.MaterialExpressionVertexNormalWS Name="MaterialExpressionVertexNormalWS_19"
   End Object
   Begin Object Name="MaterialExpressionVertexNormalWS_19"
      MaterialExpressionEditorX=-1900
      MaterialExpressionEditorY=-480
      MaterialExpressionGuid=729E66CC8AB6255AF33BB1ECD383355A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVertexNormalWS'MaterialExpressionVertexNormalWS_19'"
   NodePosX=-1900
   NodePosY=-480
   NodeGuid=43FCA5E314A31B586F06C6C2A9A5CF86
   CustomProperties Pin (PinId=30BA53555363457E75AD2D2877C32DA1,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_27 5AEAA8C13100E3CA99B2AFB683DB43A1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_20"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_20"
   End Object
   Begin Object Name="MaterialExpressionTextureCoordinate_20"
      CoordinateIndex=0
      MaterialExpressionEditorX=-1900
      MaterialExpressionEditorY=-320
      MaterialExpressionGuid=798E3B6CA7176ACB03EADB4BFA4A6AAB
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_20'"
   NodePosX=-1900
   NodePosY=-320
   NodeGuid=95194CDAFC038AB287D96B3E899C80F1
   CustomProperties Pin (PinId=FDA4CF6A75B4F436CC4C816227E4B77B,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_21 F640C254F55F6A56E7987E6BEA2E4C98,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_21"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_21"
   End Object
   Begin Object Name="MaterialExpressionMultiply_21"
      A=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_20.MaterialExpressionTextureCoordinate_20'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_12.MaterialExpressionScalarParameter_12'")
      MaterialExpressionEditorX=-1700
      MaterialExpressionEditorY=460
      MaterialExpressionGuid=78416B731609899E981EE5D54627A6C1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_21'"
   NodePosX=-1700
   NodePosY=460
   NodeGuid=1A00B8AB79514C09485E791D977C8C18
   CustomProperties Pin (PinId=F640C254F55F6A56E7987E6BEA2E4C98,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_20 FDA4CF6A75B4F436CC4C816227E4B77B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=54D8EF09F1867157FE90AF6EA4B2B7BD,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_12 A3EBFE297D50F2FBF810C4ABDE0F8912,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=3E89F7F6B5BD10D9ED3E44F4E0E12487,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 BA9618BFEFA1401EB95818E68496E889,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_22"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_22"
   End Object
   Begin Object Name="MaterialExpressionConstant_22"
      R=0.5
      MaterialExpressionEditorX=-1700
      MaterialExpressionEditorY=600
      MaterialExpressionGuid=5CEA40BF72BFD698DFF0562A61D55BDD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_22'"
   NodePosX=-1700
   NodePosY=600
   NodeGuid=F977C79A86C28C1047D716CAF82ADF2C
   CustomProperties Pin (PinId=CD4480D3BFCB26927703A157B1646458,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_25 A1D100501A4850845942E80C80B9E3D3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_23"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_23"
   End Object
   Begin Object Name="MaterialExpressionConstant_23"
      R=1
      MaterialExpressionEditorX=-1700
      MaterialExpressionEditorY=760
      MaterialExpressionGuid=14A5931619CAF6D886AB68300112FC6C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_23'"
   NodePosX=-1700
   NodePosY=760
   NodeGuid=41033A84B2B4A7044721048CB7516D03
   CustomProperties Pin (PinId=2EB9798183D55BB1BC442FC05CC65E79,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_26 CD44C3AD649E16AE4AE4F7DA96347473,),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.MaterialExpressionConstant Name="MaterialExpressionConstant_24"
   End Object
   Begin Object Name="MaterialExpressionConstant_24"
      R=0
      MaterialExpressionEditorX=-1700
      MaterialExpressionEditorY=900
      MaterialExpressionGuid=3CDB24DCE9027F8F0B8AED5602DE8111
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_24'"
   NodePosX=-1700
   NodePosY=900
   NodeGuid=0EA552026E9D2377B159C597B6EB3798
   CustomProperties Pin (PinId=8F3E4F0A3CAC19332AAA930E09F6CDFF,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_26 44E167C810A624242CD163A7A2EC6E3F,),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.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_25"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_25"
      ParameterName="UseBreakupTexture"
      DefaultValue=False
      Group="02 Breakup"
      Desc="Drive the breakup from BreakupTexture instead of the built-in world-space procedural noise. Off = procedural (no texture needed). When on, BreakupScale is ignored and BreakupTextureTiling controls the pattern size; BreakupAmount and BreakupContrast still apply. The unused source branch compiles out."
      A=(Expression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_11.MaterialExpressionTextureSampleParameter2D_11'",OutputIndex=1)
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_22.MaterialExpressionConstant_22'")
      MaterialExpressionEditorX=-1480
      MaterialExpressionEditorY=520
      MaterialExpressionGuid=3F21E4C41AD0F29ECD92DEEDC800C0CB
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_25'"
   NodePosX=-1480
   NodePosY=520
   NodeGuid=3AB3CE61DB25D009932A683818A3083E
   CustomProperties Pin (PinId=D4465DAB4625D9CACE0A6156C202C594,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_11 5EF56056C16C52B36C2413B6F2F0F1C1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A1D100501A4850845942E80C80B9E3D3,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_22 CD4480D3BFCB26927703A157B1646458,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7C70FC779AE3766FBBE83872E7191B9D,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_27 9F0631556DD0E148D79710DCD5D613AD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_26"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_26"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_26"
      ParameterName="UseBreakupTexture"
      DefaultValue=False
      Group="02 Breakup"
      Desc="UseBreakupTexture as a 0/1 flag for the engine branch (selects texture vs procedural noise inside the engine)."
      A=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_23.MaterialExpressionConstant_23'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_24.MaterialExpressionConstant_24'")
      MaterialExpressionEditorX=-1480
      MaterialExpressionEditorY=820
      MaterialExpressionGuid=D65DC83A9EF3D08CDE66EFAA28ED72A0
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_26'"
   NodePosX=-1480
   NodePosY=820
   NodeGuid=269EC0787098BA16884FDC30D0570E46
   CustomProperties Pin (PinId=CD44C3AD649E16AE4AE4F7DA96347473,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_23 2EB9798183D55BB1BC442FC05CC65E79,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=44E167C810A624242CD163A7A2EC6E3F,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_24 8F3E4F0A3CAC19332AAA930E09F6CDFF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=B739C985E89E1FEBB72840729432232E,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_27 F0F467A6D6F3F5C69367C6F30B520E54,),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_27"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_27"
   End Object
   Begin Object Name="MaterialExpressionCustom_27"
      Code="// Geometry-only edge mask: no texture, no bake. View-independent โ€” ddx/ddy only rebuild geometric\r\n// quantities (a direction, or a curvature normalised by world distance), never a raw screen rate,\r\n// so the value at a surface point holds steady as the camera moves. Two detectors, max-combined,\r\n// then a breakup field (procedural world-space noise, or a supplied texture) carves it into chips.\r\n#define EW_H3(p) frac(sin(dot((p), float3(127.1, 311.7, 74.7))) * 43758.5453)\r\n#define EW_VN3(OUT, Q) { float3 _i = floor(Q); float3 _f = frac(Q); _f = _f*_f*(3.0 - 2.0*_f); \\\r\n  float _a = EW_H3(_i + float3(0,0,0)); float _b = EW_H3(_i + float3(1,0,0)); \\\r\n  float _c = EW_H3(_i + float3(0,1,0)); float _d = EW_H3(_i + float3(1,1,0)); \\\r\n  float _e = EW_H3(_i + float3(0,0,1)); float _g = EW_H3(_i + float3(1,0,1)); \\\r\n  float _h = EW_H3(_i + float3(0,1,1)); float _k = EW_H3(_i + float3(1,1,1)); \\\r\n  float _x0 = lerp(lerp(_a,_b,_f.x), lerp(_c,_d,_f.x), _f.y); \\\r\n  float _x1 = lerp(lerp(_e,_g,_f.x), lerp(_h,_k,_f.x), _f.y); \\\r\n  OUT = lerp(_x0, _x1, _f.z); }\r\n#define EW_FBM3(OUT, Q) { float3 _p = (Q); float _s = 0.0; float _am = 0.5; float _n = 0.0; \\\r\n  EW_VN3(_n, _p); _s += _n*_am; _p = _p*2.03 + 13.1; _am *= 0.5; \\\r\n  EW_VN3(_n, _p); _s += _n*_am; OUT = _s / 0.75; }\r\n\r\nfloat3 Ng = normalize(cross(ddx(P), ddy(P)));\r\nfloat3 N  = normalize(Nv);\r\n\r\n// Face-vs-vertex: flat triangle normal vs smoothed vertex normal. Crisp on coarse/sharp edges, but\r\n// the per-triangle angular step shrinks as a bevel is subdivided, so it fades on dense rounds.\r\nfloat eFace = saturate((1.0 - abs(dot(Ng, N))) * EdgeContrast);\r\n\r\n// Curvature: normal turn per unit WORLD distance (~1/radius). The world-distance divide cancels\r\n// zoom (camera-stable) and tessellation (catches dense round bevels the face term misses).\r\nfloat kc = length(ddx(N)) / max(length(ddx(P)), 1e-4)\r\n         + length(ddy(N)) / max(length(ddy(P)), 1e-4);\r\nfloat eCurv = saturate(kc * RoundedEdgeGain);\r\n\r\nfloat e = max(eFace, eCurv);\r\ne = pow(e, max(EdgeSharpness, 0.01));\r\n\r\n// Breakup so the wear reads as patchy chipping, not a solid rim. UseBreakupTexFlag is a static\r\n// constant, so the unused source strips out: supplied texture, else built-in world-space noise.\r\nfloat nz;\r\nif (UseBreakupTexFlag > 0.5) {\r\n  nz = BreakupSource;\r\n} else {\r\n  EW_FBM3(nz, P * (0.01 * BreakupScale));\r\n}\r\nfloat patch = saturate((nz - 0.5) * BreakupContrast + 0.5);\r\ne *= lerp(1.0, patch, saturate(BreakupAmount));\r\nreturn e;\r\n"
      OutputType=CMOT_Float1
      Description="Edge Detection Engine"
      ShowCode=True
      bShowOutputNameOnPin=True
      Inputs(0)=(InputName="P",Input=(Expression="/Script/Engine.MaterialExpressionWorldPosition'MaterialGraphNode_18.MaterialExpressionWorldPosition_18'"))
      Inputs(1)=(InputName="Nv",Input=(Expression="/Script/Engine.MaterialExpressionVertexNormalWS'MaterialGraphNode_19.MaterialExpressionVertexNormalWS_19'"))
      Inputs(2)=(InputName="EdgeContrast",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_5.MaterialExpressionScalarParameter_5'"))
      Inputs(3)=(InputName="EdgeSharpness",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_6.MaterialExpressionScalarParameter_6'"))
      Inputs(4)=(InputName="RoundedEdgeGain",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_7.MaterialExpressionScalarParameter_7'"))
      Inputs(5)=(InputName="BreakupAmount",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_8'"))
      Inputs(6)=(InputName="BreakupScale",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_9.MaterialExpressionScalarParameter_9'"))
      Inputs(7)=(InputName="BreakupContrast",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_10.MaterialExpressionScalarParameter_10'"))
      Inputs(8)=(InputName="BreakupSource",Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_25.MaterialExpressionStaticSwitchParameter_25'"))
      Inputs(9)=(InputName="UseBreakupTexFlag",Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_26.MaterialExpressionStaticSwitchParameter_26'"))
      Desc="Camera-stable edge mask from geometry alone โ€” a face-vs-vertex-normal term (crisp sharp edges) max-combined with a curvature term (normal turn per world distance; catches dense round bevels, tessellation-independent) โ€” carved into chips by world-space procedural noise or a supplied grayscale texture. No Time, TSR-safe. Only fires on beveled / smooth-shaded edges."
      MaterialExpressionEditorX=-1180
      MaterialExpressionEditorY=-560
      MaterialExpressionGuid=CB0EB277F803250AE4EEFFB0980AF0D4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCustom'MaterialExpressionCustom_27'"
   NodePosX=-1180
   NodePosY=-560
   NodeGuid=F5C1F84CC66D607AB872D3F9AA2AE89D
   CustomProperties Pin (PinId=7D00848EBAC4CDE58C53AEACBB8A2AA8,PinName="P",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_18 5663E906016CA1E3AAEC42A30188CA10,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5AEAA8C13100E3CA99B2AFB683DB43A1,PinName="Nv",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_19 30BA53555363457E75AD2D2877C32DA1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E830AD088B974181CCA47D8F66DC1B97,PinName="EdgeContrast",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 6F60F03A4774100BB403B6AD54C954FC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=66DB66E9465ECD435CFED9C26894FC69,PinName="EdgeSharpness",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 A008218661069325020E37340821F12D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=34E1DE148A43AD2254C2C3CED3AD4EBB,PinName="RoundedEdgeGain",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 5A4005FB600E5190391D791ABD7906B1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C92738F7ED92AB8CDD30F3BFE71E5C16,PinName="BreakupAmount",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 D71B92B783111D66159A25992E043F39,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=18DDC509FE3F285D38B5096E9D92BCA5,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_9 84B8F0CD3E25570510EA1B2678460808,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=1FEEBE128BC806C2F28EE0BBA922947D,PinName="BreakupContrast",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 924B442EAEDE1B29D4B3178857ADA8B0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9F0631556DD0E148D79710DCD5D613AD,PinName="BreakupSource",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_25 7C70FC779AE3766FBBE83872E7191B9D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F0F467A6D6F3F5C69367C6F30B520E54,PinName="UseBreakupTexFlag",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_26 B739C985E89E1FEBB72840729432232E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=CA3D5A02AB5B576FEC30FDAE9666BC25,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_28 9B1A166B34DB9606D30368A0A1D483EF,MaterialGraphNode_29 1977C577E251088DBE71DE81AF9283BB,MaterialGraphNode_30 98394BDC08DB47C869F7BD48ECA39DBC,),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.MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_28"
   End Object
   Begin Object Name="MaterialExpressionLinearInterpolate_28"
      A=(Expression="/Script/Engine.MaterialExpressionVectorParameter'MaterialGraphNode_13.MaterialExpressionVectorParameter_13'")
      B=(Expression="/Script/Engine.MaterialExpressionVectorParameter'MaterialGraphNode_14.MaterialExpressionVectorParameter_14'")
      Alpha=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_27.MaterialExpressionCustom_27'")
      MaterialExpressionEditorX=0
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=A82C0539F6F6BD2AC1D84CE778E77F0C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_28'"
   NodePosX=0
   NodePosY=-120
   NodeGuid=C07F8B74D6E3F6AAD1221EA57096D80B
   CustomProperties Pin (PinId=0053C3DD3E335D0AB744E761C3F77648,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_13 2197FC373207EB3945E4E44B93091A58,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=B95D53FF1CB7ECA24A81AB43AD3D6705,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_14 4727055FFA65694E0771582766EC75D7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9B1A166B34DB9606D30368A0A1D483EF,PinName="Alpha",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_27 CA3D5A02AB5B576FEC30FDAE9666BC25,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=230CDE6FDE026F4A297E4B5A827E85C0,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 B79838BE44BA48E25BEDAE398A779A7E,),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.MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_29"
   End Object
   Begin Object Name="MaterialExpressionLinearInterpolate_29"
      A=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_15.MaterialExpressionScalarParameter_15'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_16.MaterialExpressionScalarParameter_16'")
      Alpha=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_27.MaterialExpressionCustom_27'")
      MaterialExpressionEditorX=0
      MaterialExpressionEditorY=160
      MaterialExpressionGuid=4DF94A22A0FA34FDCB16AD2C20B3B109
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_29'"
   NodePosX=0
   NodePosY=160
   NodeGuid=5734B7EE1556F465505ECA0093ACFA67
   CustomProperties Pin (PinId=F3FA5906D85D927777AE3387FABFDB13,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_15 2E911DFF0146D487355050C100F26E5D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=55C55442B3F32069983C8FB54072223B,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_16 2FBA028D505C289A6039DC3F9E0DF254,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=1977C577E251088DBE71DE81AF9283BB,PinName="Alpha",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_27 CA3D5A02AB5B576FEC30FDAE9666BC25,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4476A76CFAE875879A6393128A249C7B,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 805D32540193FCD7F840055BA89055EB,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_30"
   End Object
   Begin Object Name="MaterialExpressionMultiply_30"
      A=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_27.MaterialExpressionCustom_27'")
      B=(Expression="/Script/Engine.MaterialExpressionVectorParameter'MaterialGraphNode_17.MaterialExpressionVectorParameter_17'")
      MaterialExpressionEditorX=0
      MaterialExpressionEditorY=480
      MaterialExpressionGuid=7C619A8E823986F19A5C4C3D51556F4C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_30'"
   NodePosX=0
   NodePosY=480
   NodeGuid=5DAC0C3CCDC4C2794A78382CD70F0086
   CustomProperties Pin (PinId=98394BDC08DB47C869F7BD48ECA39DBC,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_27 CA3D5A02AB5B576FEC30FDAE9666BC25,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BF17E1083DF64B5C890CDC8D39BAC535,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_17 06B429C4E0A1DFAC7A8CE61ABC5B5E58,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5482382F28B590BA8E6DC27176055A9C,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_32 4B78B3654830F23DD47B4CFE6CD55665,),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.MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_31"
   End Object
   Begin Object Name="MaterialExpressionConstant3Vector_31"
      Constant=(R=0,G=0,B=0,A=0)
      MaterialExpressionEditorX=0
      MaterialExpressionEditorY=640
      MaterialExpressionGuid=88714E84F4D333AB7B1E9B56BC9B9808
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_31'"
   NodePosX=0
   NodePosY=640
   NodeGuid=6082BCB6D22C9D028FB406DC3E4A9DBB
   CustomProperties Pin (PinId=0E16DCFCC8870DC58CF6EF56186944E7,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_32 4405379017C2BF7F9E419523FD96FADA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_32"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_32"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_32"
      ParameterName="UseDebugView"
      DefaultValue=True
      Group="04 Debug"
      Desc="On = the detected edges glow in DebugColour (emissive) so you can verify mask placement and camera-stability. Off = no debug emissive; the surface reads purely as the colour + roughness wear. The branch compiles out when off."
      A=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_30.MaterialExpressionMultiply_30'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant3Vector'MaterialGraphNode_31.MaterialExpressionConstant3Vector_31'")
      MaterialExpressionEditorX=240
      MaterialExpressionEditorY=480
      MaterialExpressionGuid=9EAC663BC87323E301C73B2A00F76E0D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_32'"
   NodePosX=240
   NodePosY=480
   NodeGuid=CC202FB7AFE43818391AB34C0253B9F2
   CustomProperties Pin (PinId=4B78B3654830F23DD47B4CFE6CD55665,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_30 5482382F28B590BA8E6DC27176055A9C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4405379017C2BF7F9E419523FD96FADA,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_31 0E16DCFCC8870DC58CF6EF56186944E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=184307968ED8C8A93D3AAA99482366A8,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 223ABD874FE654CD5EAB212B9FD53193,),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.MaterialExpressionSubstrateSlabBSDF Name="MaterialExpressionSubstrateSlabBSDF_33"
   End Object
   Begin Object Name="MaterialExpressionSubstrateSlabBSDF_33"
      SubSurfaceType=MSS_None
      DiffuseAlbedo=(Expression="/Script/Engine.MaterialExpressionLinearInterpolate'MaterialGraphNode_28.MaterialExpressionLinearInterpolate_28'")
      Roughness=(Expression="/Script/Engine.MaterialExpressionLinearInterpolate'MaterialGraphNode_29.MaterialExpressionLinearInterpolate_29'")
      EmissiveColor=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_32.MaterialExpressionStaticSwitchParameter_32'")
      MaterialExpressionEditorX=680
      MaterialExpressionEditorY=-180
      MaterialExpressionGuid=A01DBFB2F0CC656DCC260DF96D7AE4D4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSubstrateSlabBSDF'MaterialExpressionSubstrateSlabBSDF_33'"
   NodePosX=680
   NodePosY=-180
   NodeGuid=6C979B0C546973BEA25B19310521EB80
   CustomProperties Pin (PinId=B79838BE44BA48E25BEDAE398A779A7E,PinName="DiffuseAlbedo",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_28 230CDE6FDE026F4A297E4B5A827E85C0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F547F36E3BF0E9913333CCDF804053CD,PinName="F0",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=73A42EE991A0ADC8529C0E2BCB98F209,PinName="F90",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=805D32540193FCD7F840055BA89055EB,PinName="Roughness",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 4476A76CFAE875879A6393128A249C7B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=6123B6B90737A140E7026A0E70E0068C,PinName="Anisotropy",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=033F860CCB64EB747A683AACF3B56CBF,PinName="Normal",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=7935145D11280D7E7F3D0F330DAEDCEE,PinName="Tangent",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=4AB36E5D9DAD915AA0B946B3EB581DC8,PinName="SSSMFP",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=C68D1DFDA483DAE78F0E5160B50E970D,PinName="SSSMFPScale",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=5708ADC27D68C45AAFF6947B0275029D,PinName="SSSPhaseAnisotropy",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=223ABD874FE654CD5EAB212B9FD53193,PinName="EmissiveColor",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_32 184307968ED8C8A93D3AAA99482366A8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A68AB1343223B11942F85F27F87EDD7E,PinName="SecondRoughness",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=9FBD94C3C7EFE8437EC228069981092E,PinName="SecondRoughnessWeight",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=AA7CA70F2D34046C5352C28F4B61DD61,PinName="FuzzRoughness",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=AF575266EC3E838149520295C7C75B04,PinName="FuzzAmount",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=64B12FB8727B081FBC7C017ED8ED4E65,PinName="FuzzColor",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=F032BE0150560BBD38C34534EBB7C9BF,PinName="GlintDensity",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=8049F072D8423395E86E3D5F1DA19814,PinName="GlintUVs",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=479BAA07EC0AE8F8112DA37829CD8E02,PinName="FrontMaterial",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_Root_34 183101AF15FF5ACF83FC18C235F148A9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Root Name="MaterialGraphNode_Root_34"
   Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   NodePosX=1341
   NodePosY=-140
   NodeGuid=900B57C90F33C3E99F5813CF34F8D135
   CustomProperties Pin (PinId=183101AF15FF5ACF83FC18C235F148A9,PinName="Front Material",PinType.PinCategory="materialinput",PinType.PinSubCategory="struct",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 479BAA07EC0AE8F8112DA37829CD8E02,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Nodes: ScalarParameter (x9), Comment (x5), Constant (x3), StaticSwitchParameter (x3), VectorParameter (x3), LinearInterpolate (x2), Multiply (x2), Constant3Vector, Custom, Material, SubstrateSlabBSDF, TextureCoordinate, TextureSampleParameter2D, VertexNormalWS, WorldPosition

more from @eeveesee all

Laser Grid / Security Barrier

@eeveeUE 5.6+

Cheap Triplanar

@eeveeUE 5.6+

More like this

Caustics (Light Function)

@hazeUE 5.5+

Fog Card

@hazeUE 5.6+

UV Transform - Node Group

@staticUE 5.6+

Procedural Edge Wear

UE 5.6

4
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
yesterday
Published
7 days ago
Nodes
35