
preview · 1 / 3
Description
A node group that kills visible tiling on large surfaces. It samples a texture several times with a per-cell random offset and blends the results, so a repeating texture stops reading as a grid. Great for landscapes, floors, terrain, walls and any big surface where the repeat gives the game away.
material graph
Preview only · open in editor for full material editing
Want this graph on your blog or forum?
source
View T3D source (18 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=540
SizeY=480
Text="Texture Bombing"
CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
MaterialExpressionEditorX=-1300
MaterialExpressionEditorY=-560
MaterialExpressionGuid=A0F44F6ACCB99648D69D248413C63A91
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=-1300
NodePosY=-560
NodeWidth=540
NodeHeight=480
NodeComment="Texture Bombing"
NodeGuid=7FEAB73DE2B8B3BF3C3F2E9BE21F13C1
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=520
SizeY=640
Text="Result → Base Color (or any input)"
CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
MaterialExpressionEditorX=-470
MaterialExpressionEditorY=-60
MaterialExpressionGuid=522887A2119D7363A0FAE4603EC04895
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C1'"
CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
NodePosX=-470
NodePosY=-60
NodeWidth=520
NodeHeight=640
NodeComment="Result → Base Color (or any input)"
NodeGuid=5E7152EA36560018C8DFAFC328197BF6
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_2"
Begin Object Class=/Script/Engine.MaterialExpressionTextureObjectParameter Name="MaterialExpressionTextureObjectParameter_2"
End Object
Begin Object Name="MaterialExpressionTextureObjectParameter_2"
ParameterName="Texture"
Group="Texture Bombing"
SortPriority=0
Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
Desc="Tiling texture to de-tile. Sampled four times per area with random per-cell offsets."
MaterialExpressionEditorX=-1260
MaterialExpressionEditorY=-460
MaterialExpressionGuid=54F1CA6B771D74FA54CEE523B7885C66
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionTextureObjectParameter'MaterialExpressionTextureObjectParameter_2'"
NodePosX=-1260
NodePosY=-460
NodeGuid=FD6EDC1815F7A15EA3D394AC10BA2B48
CustomProperties Pin (PinId=3F91D13E9C4782CFFBA1E7BCDD71A4E7,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=93C7ABB48163E9F2A6E5B268FCFAF425,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=1DB608BD6DC0F562AE86C3CB5D1330D6,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_7 95E80F2948C96E385C21C109C582BAD9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_3"
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_3"
End Object
Begin Object Name="MaterialExpressionScalarParameter_3"
ParameterName="Tiling"
DefaultValue=8
SliderMin=1
SliderMax=64
Group="Texture Bombing"
SortPriority=1
Desc="How many times the texture repeats across the mesh UVs. Higher = more repeats / smaller bombing cells."
MaterialExpressionEditorX=-1260
MaterialExpressionEditorY=-280
MaterialExpressionGuid=41A0860EE546F813978715547FFC6AA9
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_3'"
NodePosX=-1260
NodePosY=-280
NodeGuid=A543DEF0388D79ECC774C126768D826A
CustomProperties Pin (PinId=A876DF9B1C22AAD08EBEE9D5ADB588D7,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 C5706C79B9937E01DCA7A8A2372C7B1F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_4"
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_4"
End Object
Begin Object Name="MaterialExpressionScalarParameter_4"
ParameterName="Randomness"
DefaultValue=1
SliderMin=0
SliderMax=1
Group="Texture Bombing"
SortPriority=2
Desc="Strength of the per-cell random offset. 0 = plain tiling, 1 = fully randomised. Lower it if blended transitions look ghosted on high-contrast textures."
MaterialExpressionEditorX=-1260
MaterialExpressionEditorY=-100
MaterialExpressionGuid=849D6EB56C3989A2578FED3459CE952F
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_4'"
NodePosX=-1260
NodePosY=-100
NodeGuid=87D7708B9AE8301BB84F59F7EBE24ABE
CustomProperties Pin (PinId=4E43DE97EF1FA16C07D253F00F47EA40,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_7 E4337DB18C0C04EDA674A6D27755E703,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_5"
Begin Object Class=/Script/Engine.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_5"
End Object
Begin Object Name="MaterialExpressionTextureCoordinate_5"
CoordinateIndex=0
UTiling=1
VTiling=1
MaterialExpressionEditorX=-1260
MaterialExpressionEditorY=160
MaterialExpressionGuid=BF6CBC9FFCA6056A60F902A9892696FF
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_5'"
NodePosX=-1260
NodePosY=160
NodeGuid=DD13300B63B159B4D40565058A6EE203
CustomProperties Pin (PinId=94990DF8F736F27951A58CC4F8D86FE4,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 8F1B02AF5D3AA87EC1372C4777447BDE,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_6"
End Object
Begin Object Name="MaterialExpressionMultiply_6"
A=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_5.MaterialExpressionTextureCoordinate_5'")
B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_3.MaterialExpressionScalarParameter_3'")
MaterialExpressionEditorX=-900
MaterialExpressionEditorY=200
MaterialExpressionGuid=AACD87A9EDDC12F5A98E070129BCB6DE
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_6'"
NodePosX=-900
NodePosY=200
NodeGuid=056CC0047875A373E3F3FCBE61602320
CustomProperties Pin (PinId=8F1B02AF5D3AA87EC1372C4777447BDE,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_5 94990DF8F736F27951A58CC4F8D86FE4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=C5706C79B9937E01DCA7A8A2372C7B1F,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_3 A876DF9B1C22AAD08EBEE9D5ADB588D7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=14C4D9EBCB88BE5B5109403ED6FA1733,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_7 F9DAFBCF7FCDF13BFAA2388FFAE8F8DA,),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_7"
Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_7"
End Object
Begin Object Name="MaterialExpressionCustom_7"
Code="// 4-tap stochastic texture bombing: hides tiling by sampling with a\r\n// per-cell random offset and bilinearly blending the four nearest cells.\r\nfloat2 cell = floor(UV);\r\nfloat2 f = frac(UV);\r\nfloat2 w = f * f * (3.0 - 2.0 * f);\r\nfloat3 col = 0;\r\n[unroll] for (int j = 0; j < 2; j++)\r\n[unroll] for (int i = 0; i < 2; i++)\r\n{\r\n float2 corner = cell + float2(i, j);\r\n float2 rnd = frac(sin(float2(dot(corner, float2(127.1, 311.7)), dot(corner, float2(269.5, 183.3)))) * 43758.5453);\r\n float wt = (i ? w.x : 1.0 - w.x) * (j ? w.y : 1.0 - w.y);\r\n col += Texture2DSample(Tex, TexSampler, UV + rnd * Randomness).rgb * wt;\r\n}\r\nreturn col;\r\n"
OutputType=CMOT_Float3
Description="TextureBombing"
ShowCode=True
bShowOutputNameOnPin=True
Inputs(0)=(InputName="UV",Input=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_6.MaterialExpressionMultiply_6'"))
Inputs(1)=(InputName="Tex",Input=(Expression="/Script/Engine.MaterialExpressionTextureObjectParameter'MaterialGraphNode_2.MaterialExpressionTextureObjectParameter_2'"))
Inputs(2)=(InputName="Randomness",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_4.MaterialExpressionScalarParameter_4'"))
Desc="Stochastic 4-tap texture bombing — per-cell random offset + bilinear blend to break visible tiling. Outputs RGB."
MaterialExpressionEditorX=-420
MaterialExpressionEditorY=40
MaterialExpressionGuid=8AD5E3889A2E8B20B0CE9EE8E283CBF2
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionCustom'MaterialExpressionCustom_7'"
NodePosX=-420
NodePosY=40
NodeGuid=79994A72615289CFC07AA3E965E6CF72
CustomProperties Pin (PinId=F9DAFBCF7FCDF13BFAA2388FFAE8F8DA,PinName="UV",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 14C4D9EBCB88BE5B5109403ED6FA1733,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=95E80F2948C96E385C21C109C582BAD9,PinName="Tex",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_2 1DB608BD6DC0F562AE86C3CB5D1330D6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=E4337DB18C0C04EDA674A6D27755E703,PinName="Randomness",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_4 4E43DE97EF1FA16C07D253F00F47EA40,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=A22EC200462C8B36539AA47F9FD9F275,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_Root_8 A60536E96E1FE4D6F5C73E0C83FC1388,),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_8"
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
NodePosX=250
NodePosY=-132
NodeGuid=2E09E23A5566A0D8103BAA6E66449F07
CustomProperties Pin (PinId=A60536E96E1FE4D6F5C73E0C83FC1388,PinName="Base Color",PinType.PinCategory="materialinput",PinType.PinSubCategory="rgba",PinType.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_7 A22EC200462C8B36539AA47F9FD9F275,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Nodes: Comment (x2), ScalarParameter (x2), Custom, Material, Multiply, TextureCoordinate, TextureObjectParameter
More like this
license
CC0 1.0: Public Domain
Public domain: use it however you like, no credit required.
dependencies
Zero dependencies
Pastes and works in any UE 5.3+ project. No textures, no material functions, no MPCs.
ue compatibility
UE 5.3UE 5.4UE 5.5UE 5.6UE 5.7
Details
- Last update
- 11 days ago
- Published
- 11 days ago
- Nodes
- 9
0 comments
Sign in to join the discussion.
No comments yet. Be the first.