
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.
Preview only ยท open in editor for full material editing
Want this graph on your blog or forum?
View T3D source (98 KB)expandcollapse
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 like this
CC0 1.0: Public Domain
Public domain: use it however you like, no credit required.
Zero dependencies
Pastes and works in any UE 5.3+ project. No textures, no material functions, no MPCs.
Details
- Last update
- yesterday
- Published
- 7 days ago
- Nodes
- 35
0 comments
Sign in to join the discussion.
No comments yet. Be the first.