
Description
Procedural underwater caustics that ride on a light.
Drop this material into any Spot or Directional light's Light Function slot and it projects the rippling, focused light you see on a pool floor, a flooded corridor, or an ocean bed animated, seamless, and generated entirely in-shader.
No textures. The caustic web is built from a two-octave animated Voronoi pattern, so it tiles forever, never loops, and ships as one self-contained graph you can paste and read end to end.
Prefer your own art? Flip one switch to bring your own caustic texture
Required setup: create a Material, set Material Domain = Light Function, paste the graph, wire the result into Emissive Color, and assign it to a Spot or Directional light's Light Function Material slot. Tune the light's Light Function Scale for on-ground size. Best on Spot and Directional lights; Point lights project it spherically and read weakly.
Preview only · open in editor for full material editing
Want this graph on your blog or forum?
View T3D source (78 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=520
SizeY=520
Text="01 Pattern"
CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
MaterialExpressionEditorX=-1280
MaterialExpressionEditorY=-620
MaterialExpressionGuid=8768A7512F94D59E400ED9F6A3140B02
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=-1280
NodePosY=-620
NodeWidth=520
NodeHeight=520
NodeComment="01 Pattern"
NodeGuid=4E177998236478C7DA36568750DC9E3F
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=360
Text="02 Motion"
CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
MaterialExpressionEditorX=-1280
MaterialExpressionEditorY=-40
MaterialExpressionGuid=85395BDADC492071ABFD40591F4E44AB
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=-1280
NodePosY=-40
NodeWidth=520
NodeHeight=360
NodeComment="02 Motion"
NodeGuid=ADE7EAB4836784EF5651059CB601A71E
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=520
SizeY=360
Text="03 Look"
CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
MaterialExpressionEditorX=-1280
MaterialExpressionEditorY=380
MaterialExpressionGuid=B5A2B7A394C0156BD487AEFD6802352F
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=-1280
NodePosY=380
NodeWidth=520
NodeHeight=360
NodeComment="03 Look"
NodeGuid=564DE5719FD3276958452B577F95B541
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=1320
SizeY=520
Text="05 Texture (optional source)"
CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
MaterialExpressionEditorX=-328
MaterialExpressionEditorY=317
MaterialExpressionGuid=706E2EA4AF082288C771E073A61DB8B0
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=-328
NodePosY=317
NodeWidth=1320
NodeHeight=520
NodeComment="05 Texture (optional source)"
NodeGuid=221AD208EC0A9CF58394A76031F9DC05
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=560
SizeY=520
Text="Emissive Color"
CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
MaterialExpressionEditorX=560
MaterialExpressionEditorY=-380
MaterialExpressionGuid=50C8321C56C6695C30358A676BEB8140
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=560
NodePosY=-380
NodeWidth=560
NodeHeight=520
NodeComment="Emissive Color"
NodeGuid=AF663BDECE60554C4E2461F67164C861
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="Tiling"
DefaultValue=6
SliderMin=1
SliderMax=32
Group="01 Pattern"
Desc="Caustic cell density across the light's projection. Higher = more, smaller cells. Pair with the light's Light Function Scale for final on-ground size."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=-520
MaterialExpressionGuid=DC249044804E3A08F7AA7BBFF0FB229E
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_5'"
NodePosX=-1240
NodePosY=-520
NodeGuid=CC0B30BA1940259ECDBD31B4CD149D5F
CustomProperties Pin (PinId=8E0FAC13E599BBC284F88B97583BCD75,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_14 271AFED19C98780E44558F69C00FED45,MaterialGraphNode_15 F51AAFE6F25606C64F4CA29B4719EC34,),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="Contrast"
DefaultValue=1.6
SliderMin=0.5
SliderMax=6
Group="01 Pattern"
Desc="Sharpness of the caustic threads. Higher = thinner, harder-edged bright lines; lower = soft glowing bands."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=-360
MaterialExpressionGuid=167AF1833340AED96DC1013A74A0FA1D
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_6'"
NodePosX=-1240
NodePosY=-360
NodeGuid=F7D2A441098F7BA4D638F88DE7AFC2A8
CustomProperties Pin (PinId=737DE26B1C2555424CA8D601FA432C98,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_14 31449E20D06467DDB7D5A728577D3F06,MaterialGraphNode_25 DB3D999D5EE3CE3A43508D8BF5461E06,),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="LayerBlend"
DefaultValue=0
SliderMin=0
SliderMax=1
Group="01 Pattern"
Desc="Cross-fade between the two caustic octaves. 0 = Min (crisp interlocking web), 1 = Add (brighter, softer overlap)."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=-200
MaterialExpressionGuid=15BE3C63BA46BBECF8EAF708827A9915
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_7'"
NodePosX=-1240
NodePosY=-200
NodeGuid=E924629B7F2A8011EB1BEDB3EF88CA6A
CustomProperties Pin (PinId=22D7ABEF8E5D7150F52507C681ADA974,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_14 4E93FCF3D579F1760EE8EAB571E6288D,),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="FlowSpeed"
DefaultValue=0.15
SliderMin=0
SliderMax=1
Group="02 Motion"
Desc="How fast the caustic cells drift and shimmer. The two octaves move in opposite directions so the pattern never reads as a single sliding texture."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=60
MaterialExpressionGuid=02188F824BEF45607584DA7264F08645
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_8'"
NodePosX=-1240
NodePosY=60
NodeGuid=5B84310EC2E3BDB40F51403B3869DF97
CustomProperties Pin (PinId=822923B6E3CD86D9B103DC434CC1BEF4,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_14 08554DA906E0BEE77EBF8A6E7C0C67F5,MaterialGraphNode_18 075476D02ABF7F3957409F764281A491,MaterialGraphNode_19 6C170F389184D06053BFF8C8BA7FC80F,),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="WarpAmount"
DefaultValue=0.12
SliderMin=0
SliderMax=0.5
Group="02 Motion"
Desc="Organic domain warp that bends the caustic threads into curved, refracted-looking shapes. 0 = straight grid-like cells."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=220
MaterialExpressionGuid=5EF94AE95F94CED8CC5DB4ED10F948D9
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_9'"
NodePosX=-1240
NodePosY=220
NodeGuid=9DB8D37BA97521AE631B79C1C31DE374
CustomProperties Pin (PinId=06FFD748C1A8DBF05235FA229218ECE5,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_14 5EE274E982CCB10066C28F3BD692EF51,),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="ChromaticAberration"
DefaultValue=0
SliderMin=0
SliderMax=1
Group="03 Look"
Desc="Rainbow fringe along the caustic edges from the water surface splitting the light. Subtle values (0.1-0.3) read best; 0 = pure white caustics."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=480
MaterialExpressionGuid=2C9490E54DC592E4E9EBE6CC4AAAD90B
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_10'"
NodePosX=-1240
NodePosY=480
NodeGuid=ADA5F2D044579C27E9E627F10EDDA6B8
CustomProperties Pin (PinId=0A113A9353318C0293FE926B1C283EFF,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_14 A99CB2A54703270D6E9A49B0E5E86B77,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_11"
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_11"
End Object
Begin Object Name="MaterialExpressionScalarParameter_11"
ParameterName="EdgeFalloff"
DefaultValue=0
SliderMin=0
SliderMax=1
Group="03 Look"
Desc="Radial vignette that fades the caustics toward the edge of the projection — useful to hide the hard rim of a spot light's cone. 0 = full, even coverage."
MaterialExpressionEditorX=-1240
MaterialExpressionEditorY=640
MaterialExpressionGuid=470A001F5C076F454BFF5E16F9940329
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_11'"
NodePosX=-1240
NodePosY=640
NodeGuid=1C013AD9F7A2AE564873BD2635190BB8
CustomProperties Pin (PinId=B5110D17B36931736CB3BB5B588C1A00,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_14 B4531562FB5BF2941C6C96AA9B338C1E,),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.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_12"
End Object
Begin Object Name="MaterialExpressionTextureCoordinate_12"
CoordinateIndex=0
UTiling=1
VTiling=1
MaterialExpressionEditorX=-600
MaterialExpressionEditorY=-360
MaterialExpressionGuid=4EF94E8DB0D6AFC2CE2B990F3DDB474F
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_12'"
NodePosX=-600
NodePosY=-360
NodeGuid=753FC75C379A7F29BD08EC8C55E86C3B
CustomProperties Pin (PinId=D8C5AB253C2C43D0C83F70CE8608F7B8,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_14 0E988401D7ED0E5A657F89465917A06D,MaterialGraphNode_15 B0CBE6397DF2721FC98F280458E96DF9,),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.MaterialExpressionTime Name="MaterialExpressionTime_13"
End Object
Begin Object Name="MaterialExpressionTime_13"
MaterialExpressionEditorX=-600
MaterialExpressionEditorY=-180
MaterialExpressionGuid=8417181CB7227B0D68C3924F3770EA24
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionTime'MaterialExpressionTime_13'"
NodePosX=-600
NodePosY=-180
NodeGuid=C8C7398AEA093AF074A56C129EF0B0BD
CustomProperties Pin (PinId=AC21DA15721726DD3D8AB772919D4365,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_14 021638C538A299DB9C83AD764323A804,),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_14"
Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_14"
End Object
Begin Object Name="MaterialExpressionCustom_14"
Code="// Animated Voronoi border-web caustics, two octaves + chromatic split. Returns RGB caustic mask 0..1.\r\n#define HASH2(P) frac(sin(float2(dot((P),float2(127.1,311.7)),dot((P),float2(269.5,183.3))))*43758.5453)\r\n\r\n// organic domain warp so the threads curve like refracted light\r\nfloat2 wuv = UV*(Tiling*0.5) + Time*0.2;\r\nfloat2 baseUV = UV*Tiling + float2(sin(wuv.x*3.1+wuv.y*1.7), cos(wuv.x*1.9-wuv.y*2.3))*WarpAmount;\r\n\r\nfloat t = Time*FlowSpeed;\r\nfloat2 ca = float2(Chromatic,-Chromatic)*0.15;\r\nfloat3 outRGB = 0;\r\n\r\n[unroll] for (int ci=0; ci<3; ci++)\r\n{\r\n float2 off = (ci==0)?ca:((ci==2)?-ca:(float2)0); // R / B tap offset, G centred\r\n float web = 0;\r\n\r\n [unroll] for (int L=0; L<2; L++)\r\n {\r\n float scale = (L==0)?1.0:1.7;\r\n float lt = (L==0)? t : (-t*1.3); // octaves drift opposite ways\r\n float bw = (L==0)?0.18:0.14;\r\n float2 p = (baseUV+off)*scale + L*5.2;\r\n\r\n float2 ip = floor(p), fp = frac(p);\r\n float f1=8.0, f2=8.0;\r\n [unroll] for (int j=-1;j<=1;j++)\r\n [unroll] for (int i=-1;i<=1;i++)\r\n {\r\n float2 g = float2(i,j);\r\n float2 o = HASH2(ip+g);\r\n o = 0.5+0.5*sin(lt+6.2831*o); // drift each cell point smoothly (TSR-safe, no per-frame reseed)\r\n float2 rv = g+o-fp;\r\n float d = dot(rv,rv);\r\n if (d<f1){f2=f1;f1=d;} else if (d<f2){f2=d;}\r\n }\r\n float ew = 1.0-smoothstep(0.0,bw,sqrt(f2)-sqrt(f1)); // bright thread along equidistant cell borders\r\n web = (L==0)?ew:lerp(min(web,ew),saturate(web+ew),LayerBlend);\r\n }\r\n outRGB[ci] = pow(saturate(web),max(Contrast,0.01));\r\n}\r\n\r\n// radial vignette for spot projection; EdgeFalloff 0 = full coverage\r\nfloat rr = length(UV-0.5)*2.0;\r\nfloat edge = lerp(1.0, saturate(1.0-(rr-(1.0-EdgeFalloff))/max(EdgeFalloff,1e-3)), step(1e-4,EdgeFalloff));\r\nreturn outRGB*edge;\r\n"
OutputType=CMOT_Float3
Description="Caustics_Engine"
ShowCode=True
bShowOutputNameOnPin=True
Inputs(0)=(InputName="UV",Input=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_12.MaterialExpressionTextureCoordinate_12'"))
Inputs(1)=(InputName="Time",Input=(Expression="/Script/Engine.MaterialExpressionTime'MaterialGraphNode_13.MaterialExpressionTime_13'"))
Inputs(2)=(InputName="Tiling",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_5.MaterialExpressionScalarParameter_5'"))
Inputs(3)=(InputName="Contrast",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_6.MaterialExpressionScalarParameter_6'"))
Inputs(4)=(InputName="LayerBlend",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_7.MaterialExpressionScalarParameter_7'"))
Inputs(5)=(InputName="FlowSpeed",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_8'"))
Inputs(6)=(InputName="WarpAmount",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_9.MaterialExpressionScalarParameter_9'"))
Inputs(7)=(InputName="Chromatic",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_10.MaterialExpressionScalarParameter_10'"))
Inputs(8)=(InputName="EdgeFalloff",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_11.MaterialExpressionScalarParameter_11'"))
Desc="Procedural caustics engine: two-octave animated Voronoi border-web, Min/Add layer blend, domain warp, chromatic split and radial falloff. Outputs an RGB caustic mask (0..1). No textures, no UVs beyond TexCoord0."
MaterialExpressionEditorX=-163
MaterialExpressionEditorY=-597
MaterialExpressionGuid=84BDD4439335542A469ECF6505807CBF
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionCustom'MaterialExpressionCustom_14'"
NodePosX=-163
NodePosY=-597
NodeGuid=005CEF6FBEC6018E6BE46587F603B7E1
CustomProperties Pin (PinId=0E988401D7ED0E5A657F89465917A06D,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_12 D8C5AB253C2C43D0C83F70CE8608F7B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=021638C538A299DB9C83AD764323A804,PinName="Time",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 AC21DA15721726DD3D8AB772919D4365,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=271AFED19C98780E44558F69C00FED45,PinName="Tiling",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 8E0FAC13E599BBC284F88B97583BCD75,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=31449E20D06467DDB7D5A728577D3F06,PinName="Contrast",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 737DE26B1C2555424CA8D601FA432C98,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=4E93FCF3D579F1760EE8EAB571E6288D,PinName="LayerBlend",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 22D7ABEF8E5D7150F52507C681ADA974,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=08554DA906E0BEE77EBF8A6E7C0C67F5,PinName="FlowSpeed",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 822923B6E3CD86D9B103DC434CC1BEF4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=5EE274E982CCB10066C28F3BD692EF51,PinName="WarpAmount",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 06FFD748C1A8DBF05235FA229218ECE5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=A99CB2A54703270D6E9A49B0E5E86B77,PinName="Chromatic",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 0A113A9353318C0293FE926B1C283EFF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=B4531562FB5BF2941C6C96AA9B338C1E,PinName="EdgeFalloff",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 B5110D17B36931736CB3BB5B588C1A00,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=245299AE9E75EA99E72D58177B8D2862,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 973A01DCB2596B4AD191C00BBE5A834E,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_15"
End Object
Begin Object Name="MaterialExpressionMultiply_15"
A=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_12.MaterialExpressionTextureCoordinate_12'")
B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_5.MaterialExpressionScalarParameter_5'")
MaterialExpressionEditorX=-268
MaterialExpressionEditorY=397
MaterialExpressionGuid=2D2703D0FC0270987335E8CA02BA2A87
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_15'"
NodePosX=-268
NodePosY=397
NodeGuid=31AD15A942BB121BE747058591B1AEEA
CustomProperties Pin (PinId=B0CBE6397DF2721FC98F280458E96DF9,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_12 D8C5AB253C2C43D0C83F70CE8608F7B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=F51AAFE6F25606C64F4CA29B4719EC34,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_5 8E0FAC13E599BBC284F88B97583BCD75,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=9E32626121F768410E2E4D739CBFFFF7,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_20 8DB49982A8D9888BBDFCE13DBF086AD6,MaterialGraphNode_21 211E5D2BD0B26F2F94795E4A08B7C76B,),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.MaterialExpressionConstant2Vector Name="MaterialExpressionConstant2Vector_16"
End Object
Begin Object Name="MaterialExpressionConstant2Vector_16"
R=0.6
G=0.35
MaterialExpressionEditorX=-268
MaterialExpressionEditorY=577
MaterialExpressionGuid=EF7385D5DEEA2611101F5E204176A8A6
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionConstant2Vector'MaterialExpressionConstant2Vector_16'"
NodePosX=-268
NodePosY=577
NodeGuid=28C4B610ACE41CEE5476C7AEF751132A
CustomProperties Pin (PinId=C140EB5CD36453705FA08ADE2453754F,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_18 ABA69F4B2EC5E0A6E39C83B4E4D7DFB8,),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.MaterialExpressionConstant2Vector Name="MaterialExpressionConstant2Vector_17"
End Object
Begin Object Name="MaterialExpressionConstant2Vector_17"
R=-0.45
G=0.55
MaterialExpressionEditorX=-268
MaterialExpressionEditorY=717
MaterialExpressionGuid=49C6F1FF9BF122CC8EE77CD69F018615
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionConstant2Vector'MaterialExpressionConstant2Vector_17'"
NodePosX=-268
NodePosY=717
NodeGuid=2C9EFA858E6C0AFCF1E059A645A36DA9
CustomProperties Pin (PinId=F358C1BC959171F9C954C1416043E919,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_19 74327ED4895FB9462A7D7C8F5B737967,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_18"
End Object
Begin Object Name="MaterialExpressionMultiply_18"
A=(Expression="/Script/Engine.MaterialExpressionConstant2Vector'MaterialGraphNode_16.MaterialExpressionConstant2Vector_16'")
B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_8'")
MaterialExpressionEditorX=-88
MaterialExpressionEditorY=577
MaterialExpressionGuid=6A604A03F1C17163CDFA5B941F1900B7
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_18'"
NodePosX=-88
NodePosY=577
NodeGuid=0E6930DCA92B0CAD38ABDE4A3BAAE075
CustomProperties Pin (PinId=ABA69F4B2EC5E0A6E39C83B4E4D7DFB8,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_16 C140EB5CD36453705FA08ADE2453754F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=075476D02ABF7F3957409F764281A491,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_8 822923B6E3CD86D9B103DC434CC1BEF4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=9067CEBADE549D69CE8EC86B2FE54AE8,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_20 C4EE0044947B86BC26DFB9EFB17A0B0C,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_19"
End Object
Begin Object Name="MaterialExpressionMultiply_19"
A=(Expression="/Script/Engine.MaterialExpressionConstant2Vector'MaterialGraphNode_17.MaterialExpressionConstant2Vector_17'")
B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_8'")
MaterialExpressionEditorX=-88
MaterialExpressionEditorY=717
MaterialExpressionGuid=FC7572E65EEFE46ABB4A39BB1C5B0E79
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_19'"
NodePosX=-88
NodePosY=717
NodeGuid=F76E144CEF79E71B428A2E1D247CAAB0
CustomProperties Pin (PinId=74327ED4895FB9462A7D7C8F5B737967,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_17 F358C1BC959171F9C954C1416043E919,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=6C170F389184D06053BFF8C8BA7FC80F,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_8 822923B6E3CD86D9B103DC434CC1BEF4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=D72A0452762C8BD2C4DA2FE946653900,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 E678C0BD92DE3829993BBD02D4BE07F1,),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.MaterialExpressionPanner Name="MaterialExpressionPanner_20"
End Object
Begin Object Name="MaterialExpressionPanner_20"
Coordinate=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_15.MaterialExpressionMultiply_15'")
Speed=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_18.MaterialExpressionMultiply_18'")
MaterialExpressionEditorX=92
MaterialExpressionEditorY=437
MaterialExpressionGuid=237F8617A9542D04C33B1F229BD29702
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionPanner'MaterialExpressionPanner_20'"
NodePosX=92
NodePosY=437
NodeGuid=C5ECAA52334308024D0F3241EE06F7FD
CustomProperties Pin (PinId=8DB49982A8D9888BBDFCE13DBF086AD6,PinName="Coordinate",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 9E32626121F768410E2E4D739CBFFFF7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=88CE5C56388692A9F0CCF0A107D10074,PinName="Time",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=C4EE0044947B86BC26DFB9EFB17A0B0C,PinName="Speed",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 9067CEBADE549D69CE8EC86B2FE54AE8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=D36B6FCCAD9DEC2BA88373FE941D8D2D,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_22 A4859940A27E2CB8D2FC49139CD2AB82,),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.MaterialExpressionPanner Name="MaterialExpressionPanner_21"
End Object
Begin Object Name="MaterialExpressionPanner_21"
Coordinate=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_15.MaterialExpressionMultiply_15'")
Speed=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_19.MaterialExpressionMultiply_19'")
MaterialExpressionEditorX=92
MaterialExpressionEditorY=657
MaterialExpressionGuid=44FEEB3D60FA68615E71E8142D418C06
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionPanner'MaterialExpressionPanner_21'"
NodePosX=92
NodePosY=657
NodeGuid=FD3138AD47DCF16FA9F44BBE7E0F502E
CustomProperties Pin (PinId=211E5D2BD0B26F2F94795E4A08B7C76B,PinName="Coordinate",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 9E32626121F768410E2E4D739CBFFFF7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=F03C896F0E2FEE057B9E6F7E9BA636AB,PinName="Time",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=E678C0BD92DE3829993BBD02D4BE07F1,PinName="Speed",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 D72A0452762C8BD2C4DA2FE946653900,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=04D6E49ED0F9EC6A8135C6A46FBDDD22,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_23 7CC3507683D599EAFAF6A3E140E18E71,),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.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_22"
End Object
Begin Object Name="MaterialExpressionTextureSampleParameter2D_22"
ParameterName="CausticTexture"
Group="05 Texture"
Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
SamplerType=SAMPLERTYPE_SAMPLERTYPE_Color
Desc="Optional caustic texture, used when UseTexture is on. A tiling grayscale caustic map reads best; set its address mode to Wrap. Both panned samples share this one parameter."
Coordinates=(Expression="/Script/Engine.MaterialExpressionPanner'MaterialGraphNode_20.MaterialExpressionPanner_20'")
MaterialExpressionEditorX=292
MaterialExpressionEditorY=397
MaterialExpressionGuid=6031BE28732F3F466698D49617DB9DED
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_22'"
NodePosX=292
NodePosY=397
NodeGuid=B590C66DC0D19C2917D44ED77C0B9B80
CustomProperties Pin (PinId=A4859940A27E2CB8D2FC49139CD2AB82,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_20 D36B6FCCAD9DEC2BA88373FE941D8D2D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=AD05B905C9D6B99595E238E2DDFB662A,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=AEB0FF70830C80182BE8D48C8D26BBF9,PinName="RGB",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_24 A7848843477F763A1EB87625C5E73480,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=E8B9BE0F8C1B64C59C9F36FDB6E9D40F,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=3ADE1669AEF6A4491D8609CEF96ADF23,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=C7EF684C3E07BEF1B838EC6A1EC64A23,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=F8287627299ADDB040DF67EDE059F727,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=F5732666822DB947C6870CBA3C308E47,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_23"
Begin Object Class=/Script/Engine.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_23"
End Object
Begin Object Name="MaterialExpressionTextureSampleParameter2D_23"
ParameterName="CausticTexture"
Group="05 Texture"
Texture=Texture2D'/Engine/EngineResources/DefaultTexture.DefaultTexture'
SamplerType=SAMPLERTYPE_SAMPLERTYPE_Color
Desc="Optional caustic texture, used when UseTexture is on. A tiling grayscale caustic map reads best; set its address mode to Wrap. Both panned samples share this one parameter."
Coordinates=(Expression="/Script/Engine.MaterialExpressionPanner'MaterialGraphNode_21.MaterialExpressionPanner_21'")
MaterialExpressionEditorX=292
MaterialExpressionEditorY=637
MaterialExpressionGuid=EF4F372AB4F3DC8DCF3125613C2A3FF1
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_23'"
NodePosX=292
NodePosY=637
NodeGuid=EDABBED20108CB8200A2055F41284C14
CustomProperties Pin (PinId=7CC3507683D599EAFAF6A3E140E18E71,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 04D6E49ED0F9EC6A8135C6A46FBDDD22,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=78E317242083BC97130F28D64C3FD58D,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=413238DE083235CF809A74D1E566916A,PinName="RGB",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_24 43EAEA57C0EB3689892CF01890969C77,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=C11311130BB092894E1F165F4D5382D3,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=267D80F0AB5C0328FDB643437427162B,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=CA99D2877E9F1D42B35A4E2F0DF787A9,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=01C9572C9FD14CACB6FD535EEAB3DD60,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=E958C94CAC1BA98FCC7CB9FEEF7472AA,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_24"
Begin Object Class=/Script/Engine.MaterialExpressionMin Name="MaterialExpressionMin_24"
End Object
Begin Object Name="MaterialExpressionMin_24"
A=(Expression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_22.MaterialExpressionTextureSampleParameter2D_22'")
B=(Expression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_23.MaterialExpressionTextureSampleParameter2D_23'")
MaterialExpressionEditorX=512
MaterialExpressionEditorY=497
MaterialExpressionGuid=C942D31B640465A11C044FF9D53E2394
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionMin'MaterialExpressionMin_24'"
NodePosX=512
NodePosY=497
NodeGuid=E0D477F1337E61D93B8CB774DC5886DD
CustomProperties Pin (PinId=A7848843477F763A1EB87625C5E73480,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_22 AEB0FF70830C80182BE8D48C8D26BBF9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=43EAEA57C0EB3689892CF01890969C77,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_23 413238DE083235CF809A74D1E566916A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=DB0CBE42497C82C807C1F77FE5523965,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 19F07186DA72825FC302FE882870E280,),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.MaterialExpressionPower Name="MaterialExpressionPower_25"
End Object
Begin Object Name="MaterialExpressionPower_25"
Base=(Expression="/Script/Engine.MaterialExpressionMin'MaterialGraphNode_24.MaterialExpressionMin_24'")
Exponent=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_6.MaterialExpressionScalarParameter_6'")
MaterialExpressionEditorX=672
MaterialExpressionEditorY=517
MaterialExpressionGuid=F143C6428332BF46E486AF81702DD9F3
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionPower'MaterialExpressionPower_25'"
NodePosX=672
NodePosY=517
NodeGuid=3D84E766B6A1F72C548B2F94A8DDA9D7
CustomProperties Pin (PinId=19F07186DA72825FC302FE882870E280,PinName="Base",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_24 DB0CBE42497C82C807C1F77FE5523965,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=DB3D999D5EE3CE3A43508D8BF5461E06,PinName="Exp",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 737DE26B1C2555424CA8D601FA432C98,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=57DA3FD083F981DAB63806C7A342DD46,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 B35788847CB4B8D84E8748C93BAF2C40,),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="UseTexture"
DefaultValue=False
Group="05 Texture"
Desc="Pattern source. Off = procedural Voronoi engine (default, zero textures). On = your own CausticTexture, panned in two directions and combined with Min — a simpler path that is Light Function Atlas-eligible, for running many caustic lights cheaply. Warp, Layer Blend, Chromatic and Edge Falloff apply to the procedural engine only."
A=(Expression="/Script/Engine.MaterialExpressionPower'MaterialGraphNode_25.MaterialExpressionPower_25'")
B=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_14.MaterialExpressionCustom_14'")
MaterialExpressionEditorX=852
MaterialExpressionEditorY=477
MaterialExpressionGuid=325CB812394F4ACF3DEA5B913C5A8E14
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_26'"
NodePosX=852
NodePosY=477
NodeGuid=DC17118E2E3720AA184674537C6E7097
CustomProperties Pin (PinId=B35788847CB4B8D84E8748C93BAF2C40,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_25 57DA3FD083F981DAB63806C7A342DD46,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=973A01DCB2596B4AD191C00BBE5A834E,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_Custom_14 245299AE9E75EA99E72D58177B8D2862,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=977093BD40FCA3E8A7F683F5D04C4487,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 6225EA2B29D326BD20CA26EAA6C35440,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_27"
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_27"
End Object
Begin Object Name="MaterialExpressionScalarParameter_27"
ParameterName="Intensity"
DefaultValue=1.8
SliderMin=0
SliderMax=5
Group="04 Output"
Desc="Light brightness at the caustic peaks. Values above 1 brighten the light where the threads focus. Lives in the Emissive Color frame because it only feeds the output."
MaterialExpressionEditorX=600
MaterialExpressionEditorY=-280
MaterialExpressionGuid=A01D07569051290EC1775C2C565F2CFE
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_27'"
NodePosX=600
NodePosY=-280
NodeGuid=B3DAFE1251D2596F8AF061168388AC46
CustomProperties Pin (PinId=5E63308A84B1866740897133414954B9,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 C17174E138EA4C1C9FEF5C3D1AC1986F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_28"
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_28"
End Object
Begin Object Name="MaterialExpressionScalarParameter_28"
ParameterName="BrightnessFloor"
DefaultValue=0.15
SliderMin=0
SliderMax=1
Group="04 Output"
Desc="Light brightness in the dark cells between threads. Keep above 0 so the light dims rather than fully blacking out. Lives in the Emissive Color frame because it only feeds the output."
MaterialExpressionEditorX=600
MaterialExpressionEditorY=-120
MaterialExpressionGuid=08F692E484F51AA4EEB1D71FA3016AFD
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_28'"
NodePosX=600
NodePosY=-120
NodeGuid=555DFC40F97B11615D78C83B45BD53D8
CustomProperties Pin (PinId=C0349AD8EBD7B845CAC5AD7F17599AEC,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 5501129F84DA3E33A0EA30FDDD280453,),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_28.MaterialExpressionScalarParameter_28'")
B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_27.MaterialExpressionScalarParameter_27'")
Alpha=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_26.MaterialExpressionStaticSwitchParameter_26'")
MaterialExpressionEditorX=900
MaterialExpressionEditorY=-200
MaterialExpressionGuid=33CB534CF2AA0972D7415967357F2490
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
End Object
MaterialExpression="/Script/Engine.MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_29'"
NodePosX=900
NodePosY=-200
NodeGuid=0A7141B45DCB16775A6FC69700598A9E
CustomProperties Pin (PinId=5501129F84DA3E33A0EA30FDDD280453,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_28 C0349AD8EBD7B845CAC5AD7F17599AEC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=C17174E138EA4C1C9FEF5C3D1AC1986F,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_27 5E63308A84B1866740897133414954B9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=6225EA2B29D326BD20CA26EAA6C35440,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_26 977093BD40FCA3E8A7F683F5D04C4487,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
CustomProperties Pin (PinId=CA50C1A699452BBBA1B96028FA5FB094,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_30 61BBC9B65ACD2EA25162E760E35D94A8,),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_30"
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
NodePosX=1260
NodePosY=-160
NodeGuid=98C506E47FF3261F0B0584F71DCAEF01
CustomProperties Pin (PinId=61BBC9B65ACD2EA25162E760E35D94A8,PinName="Emissive 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_29 CA50C1A699452BBBA1B96028FA5FB094,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object
Nodes: ScalarParameter (x9), Comment (x5), Multiply (x3), Constant2Vector (x2), Panner (x2), TextureSampleParameter2D (x2), Custom, LinearInterpolate, Material, Min, Power, StaticSwitchParameter, TextureCoordinate, Time
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
- 3 days ago
- Published
- 3 days ago
- Nodes
- 31
0 comments
Sign in to join the discussion.
No comments yet. Be the first.