Being interested in math and shaders I recently got into shadertoy and made a shader to draw some interesting looking implicit functions. This was fun but it was also just a matter of time until I'd do something similar using Unreal Engine.
So here we go, a tutorial about graphing a mathematical function with the UE3/4 material editor alone. There are no textures involved, everything is just done in the pixel shader.
In order to actually draw the graphs I'm using a method suggested by Iñigo Quílez:
http://www.iquilezles.org/www/articles/distance/distance.htm
The shader code described isn't very complex but requires the derivatives to be computed.
So in total there are 4 things required for graphing a function in the material editor:
- A function.
Any kind of function will work but the elements need to be reordered so one
side of the equation is zero. E.g. y=x² will become 0=x²-y. - Derivatives of the function.
It's recommended to to manually do the differentiation. However if the math
is out of reach you can use finite differences instead. - A coordinate system.
Usually this will be the UVs, screen coordinates or the worldposition. - A grid.
This is optionally but helps to read the graph. I'd suggest to draw the x/y-axis at the very least.
Material Setup
I'm starting off with a rather simple function:
0 = x³-y²
The derivatives of this function are as follows:
d/dx = 3*x²
d/dy = -2*y
The coordinate system is based on the UVs. Since these range from 0-1 for the preview meshes a negative offset of -0.5 is added to the texture coordinates.
If you prefer an automated process over manual differentiation you can use forward differencing to calculate the derivatives. This will calculate the function 2 additional times with a slight offset on the x- and y-axis.
Keep in mind that this might increase the instruction count a lot, depending on the functions complexity.
With the function and its derivatives available we can now draw the graph:
Visalizing the x/y-axis is pretty similar to drawing the graph but much easier at the same time since it's directly based on the absolutes of the coordinates.
For a real grid with multiple sub-lines use this setup instead:
Putting it all together
To replicate this network of nodes just copy and paste the code below to your own material:
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_18"
Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_0"
End Object
Begin Object Name="MaterialExpressionComment_0"
SizeX=1136
SizeY=432
Text="Draw Grid"
MaterialExpressionEditorX=1648
MaterialExpressionEditorY=-3088
MaterialExpressionGuid=28366D4648509726F5EC76959F7B50DC
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_0'
NodePosX=1648
NodePosY=-3088
NodeWidth=1136
NodeHeight=432
NodeComment="Draw Grid"
NodeGuid=4E8F8190439ED514BCF0F8BC84CB8A2A
End Object
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_15"
Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_1"
End Object
Begin Object Name="MaterialExpressionComment_1"
SizeX=880
SizeY=448
Text="Draw Graph"
MaterialExpressionEditorX=1936
MaterialExpressionEditorY=-2640
MaterialExpressionGuid=28366D4648509726F5EC76959F7B50DC
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_1'
NodePosX=1936
NodePosY=-2640
NodeWidth=880
NodeHeight=448
NodeComment="Draw Graph"
NodeGuid=C58F85374D951E9D5D1C24B70B2F0FAF
End Object
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_14"
Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_2"
End Object
Begin Object Name="MaterialExpressionComment_2"
SizeX=304
SizeY=256
Text="Derivatives"
MaterialExpressionEditorX=1616
MaterialExpressionEditorY=-2400
MaterialExpressionGuid=34357E4D47B94A25FCB75C98A5F1DFF2
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_2'
NodePosX=1616
NodePosY=-2400
NodeWidth=304
NodeHeight=256
NodeComment="Derivatives"
NodeGuid=66BEF39E491499A073B65CACDBA5FDE7
End Object
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_13"
Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_3"
End Object
Begin Object Name="MaterialExpressionComment_3"
SizeX=304
SizeY=240
Text="Function"
MaterialExpressionEditorX=1616
MaterialExpressionEditorY=-2640
MaterialExpressionGuid=34357E4D47B94A25FCB75C98A5F1DFF2
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_3'
NodePosX=1616
NodePosY=-2640
NodeWidth=304
NodeHeight=240
NodeComment="Function"
NodeGuid=D39FF62B498950ED364CD4BBA65572F3
End Object
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_11"
Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_4"
End Object
Begin Object Name="MaterialExpressionComment_4"
SizeX=496
SizeY=288
Text="Coordinates"
MaterialExpressionEditorX=1072
MaterialExpressionEditorY=-2576
MaterialExpressionGuid=34357E4D47B94A25FCB75C98A5F1DFF2
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_4'
NodePosX=1072
NodePosY=-2576
NodeWidth=496
NodeHeight=288
NodeComment="Coordinates"
NodeGuid=E12080E642AEC569DA0E5881928508DF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_125"
Begin Object Class=EdGraphPin Name="EdGraphPin_2882"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2881"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2880"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2879"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_0"
End Object
Begin Object Name="EdGraphPin_2882"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_Root_1.EdGraphPin_2858"'
End Object
Begin Object Name="EdGraphPin_2881"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_155.EdGraphPin_2968"'
End Object
Begin Object Name="EdGraphPin_2880"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_177.EdGraphPin_3025"'
End Object
Begin Object Name="EdGraphPin_2879"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_152.EdGraphPin_2952"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_0"
A=(Expression=MaterialExpressionVectorParameter'"MaterialGraphNode_152.MaterialExpressionVectorParameter_0"',Mask=1,MaskR=1,MaskG=1,MaskB=1)
B=(Expression=MaterialExpressionLinearInterpolate'"MaterialGraphNode_177.MaterialExpressionLinearInterpolate_1"')
Alpha=(Expression=MaterialExpressionClamp'"MaterialGraphNode_155.MaterialExpressionClamp_0"')
MaterialExpressionEditorX=2704
MaterialExpressionEditorY=-2576
MaterialExpressionGuid=0FE461CD4018E0D2A455E782335447A1
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_0'
Pins(0)=EdGraphPin'EdGraphPin_2879'
Pins(1)=EdGraphPin'EdGraphPin_2880'
Pins(2)=EdGraphPin'EdGraphPin_2881'
Pins(3)=EdGraphPin'EdGraphPin_2882'
NodePosX=2704
NodePosY=-2576
NodeGuid=7E784A6A4B53ABEF455F33A94EB43483
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_126"
Begin Object Class=EdGraphPin Name="EdGraphPin_2883"
End Object
Begin Object Class=MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_0"
End Object
Begin Object Name="EdGraphPin_2883"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_129.EdGraphPin_2888"'
End Object
Begin Object Name="MaterialExpressionTextureCoordinate_0"
MaterialExpressionEditorX=1088
MaterialExpressionEditorY=-2496
MaterialExpressionGuid=D48CBCE240ED14E64FE19AB97E278261
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_0'
Pins(0)=EdGraphPin'EdGraphPin_2883'
NodePosX=1088
NodePosY=-2496
NodeGuid=3166F4494DB621C757E896970AFC2C10
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_127"
Begin Object Class=EdGraphPin Name="EdGraphPin_2885"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2884"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_0"
End Object
Begin Object Name="EdGraphPin_2885"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_228.EdGraphPin_3163"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_231.EdGraphPin_3172"'
LinkedTo(2)=EdGraphPin'"MaterialGraphNode_231.EdGraphPin_3173"'
End Object
Begin Object Name="EdGraphPin_2884"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_130.EdGraphPin_2893"'
End Object
Begin Object Name="MaterialExpressionComponentMask_0"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_130.MaterialExpressionMultiply_67"')
R=True
MaterialExpressionEditorX=1424
MaterialExpressionEditorY=-2528
MaterialExpressionGuid=931691B4440D3A8CD3120A8BC0D1747C
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
Desc="x"
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_0'
Pins(0)=EdGraphPin'EdGraphPin_2884'
Pins(1)=EdGraphPin'EdGraphPin_2885'
NodePosX=1424
NodePosY=-2528
NodeComment="x"
NodeGuid=DA778AB94E3AF00B99F2A3977BD54316
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_128"
Begin Object Class=EdGraphPin Name="EdGraphPin_2887"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2886"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_1"
End Object
Begin Object Name="EdGraphPin_2887"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_230.EdGraphPin_3169"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_230.EdGraphPin_3170"'
LinkedTo(2)=EdGraphPin'"MaterialGraphNode_233.EdGraphPin_3178"'
End Object
Begin Object Name="EdGraphPin_2886"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_130.EdGraphPin_2893"'
End Object
Begin Object Name="MaterialExpressionComponentMask_1"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_130.MaterialExpressionMultiply_67"')
G=True
MaterialExpressionEditorX=1424
MaterialExpressionEditorY=-2432
MaterialExpressionGuid=931691B4440D3A8CD3120A8BC0D1747C
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
Desc="y"
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_1'
Pins(0)=EdGraphPin'EdGraphPin_2886'
Pins(1)=EdGraphPin'EdGraphPin_2887'
NodePosX=1424
NodePosY=-2432
NodeComment="y"
NodeGuid=CED82EBC4600C64B3E038DAE32F6893F
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_129"
Begin Object Class=EdGraphPin Name="EdGraphPin_2890"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2889"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2888"
End Object
Begin Object Class=MaterialExpressionAdd Name="MaterialExpressionAdd_20"
End Object
Begin Object Name="EdGraphPin_2890"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_130.EdGraphPin_2891"'
End Object
Begin Object Name="EdGraphPin_2889"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_2888"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_126.EdGraphPin_2883"'
End Object
Begin Object Name="MaterialExpressionAdd_20"
A=(Expression=MaterialExpressionTextureCoordinate'"MaterialGraphNode_126.MaterialExpressionTextureCoordinate_0"')
ConstB=-0.500000
MaterialExpressionEditorX=1200
MaterialExpressionEditorY=-2496
MaterialExpressionGuid=316E8CF44D3F8E0798877D9AE21520C8
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionAdd'MaterialExpressionAdd_20'
Pins(0)=EdGraphPin'EdGraphPin_2888'
Pins(1)=EdGraphPin'EdGraphPin_2889'
Pins(2)=EdGraphPin'EdGraphPin_2890'
NodePosX=1200
NodePosY=-2496
NodeGuid=9FFB658E4EF2DABA9B1E3E9BF166D8CF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_130"
Begin Object Class=EdGraphPin Name="EdGraphPin_2893"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2892"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2891"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_67"
End Object
Begin Object Name="EdGraphPin_2893"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_127.EdGraphPin_2884"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_128.EdGraphPin_2886"'
LinkedTo(2)=EdGraphPin'"MaterialGraphNode_181.EdGraphPin_3038"'
End Object
Begin Object Name="EdGraphPin_2892"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_146.EdGraphPin_2939"'
End Object
Begin Object Name="EdGraphPin_2891"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_129.EdGraphPin_2890"'
End Object
Begin Object Name="MaterialExpressionMultiply_67"
A=(Expression=MaterialExpressionAdd'"MaterialGraphNode_129.MaterialExpressionAdd_20"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_146.MaterialExpressionScalarParameter_4"')
MaterialExpressionEditorX=1312
MaterialExpressionEditorY=-2496
MaterialExpressionGuid=81B33D2749940BE52AE8A4A2C8979C24
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_67'
Pins(0)=EdGraphPin'EdGraphPin_2891'
Pins(1)=EdGraphPin'EdGraphPin_2892'
Pins(2)=EdGraphPin'EdGraphPin_2893'
NodePosX=1312
NodePosY=-2496
NodeGuid=69D8D7394F6589A97424439039B13ED6
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_146"
Begin Object Class=EdGraphPin Name="EdGraphPin_2939"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_4"
End Object
Begin Object Name="EdGraphPin_2939"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_130.EdGraphPin_2892"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_4"
DefaultValue=4.000000
ParameterName="Scale"
ExpressionGUID=764808E84C677EEE027C8CA2516F3B57
MaterialExpressionEditorX=1200
MaterialExpressionEditorY=-2400
MaterialExpressionGuid=DAEDC3A346B6E42A4EAFF889B1245C9D
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_4'
Pins(0)=EdGraphPin'EdGraphPin_2939'
NodePosX=1200
NodePosY=-2400
bCanRenameNode=True
NodeGuid=A775221B43EE89B5ED35E181910B4BED
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_147"
Begin Object Class=EdGraphPin Name="EdGraphPin_2941"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2940"
End Object
Begin Object Class=MaterialExpressionAbs Name="MaterialExpressionAbs_0"
End Object
Begin Object Name="EdGraphPin_2941"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_151.EdGraphPin_2949"'
End Object
Begin Object Name="EdGraphPin_2940"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_229.EdGraphPin_3168"'
End Object
Begin Object Name="MaterialExpressionAbs_0"
Input=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_229.MaterialExpressionSubtract_25"')
MaterialExpressionEditorX=1968
MaterialExpressionEditorY=-2592
MaterialExpressionGuid=EF5AFA7740E5B25326B077A05F633124
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionAbs'MaterialExpressionAbs_0'
Pins(0)=EdGraphPin'EdGraphPin_2940'
Pins(1)=EdGraphPin'EdGraphPin_2941'
NodePosX=1968
NodePosY=-2592
ErrorType=1
ErrorMsg="Missing Abs input"
NodeGuid=DE98278C4A71D6EB216CEDA6CADA8FE8
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_148"
Begin Object Class=EdGraphPin Name="EdGraphPin_2944"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2943"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2942"
End Object
Begin Object Class=MaterialExpressionAppendVector Name="MaterialExpressionAppendVector_0"
End Object
Begin Object Name="EdGraphPin_2944"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_149.EdGraphPin_2945"'
End Object
Begin Object Name="EdGraphPin_2943"
PinName="B"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_233.EdGraphPin_3180"'
End Object
Begin Object Name="EdGraphPin_2942"
PinName="A"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_232.EdGraphPin_3177"'
End Object
Begin Object Name="MaterialExpressionAppendVector_0"
A=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_232.MaterialExpressionMultiply_72"')
B=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_233.MaterialExpressionMultiply_73"')
MaterialExpressionEditorX=1968
MaterialExpressionEditorY=-2384
MaterialExpressionGuid=29431FC64BDAC02C8A02208A2D09816E
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionAppendVector'MaterialExpressionAppendVector_0'
Pins(0)=EdGraphPin'EdGraphPin_2942'
Pins(1)=EdGraphPin'EdGraphPin_2943'
Pins(2)=EdGraphPin'EdGraphPin_2944'
NodePosX=1968
NodePosY=-2384
ErrorType=1
ErrorMsg="Missing AppendVector input B"
NodeGuid=230776734BA5355D1187288E62890C2B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_149"
Begin Object Class=EdGraphPin Name="EdGraphPin_2947"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2946"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2945"
End Object
Begin Object Class=MaterialExpressionDistance Name="MaterialExpressionDistance_0"
End Object
Begin Object Name="EdGraphPin_2947"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_151.EdGraphPin_2950"'
End Object
Begin Object Name="EdGraphPin_2946"
PinName="B"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_150.EdGraphPin_2948"'
End Object
Begin Object Name="EdGraphPin_2945"
PinName="A"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_148.EdGraphPin_2944"'
End Object
Begin Object Name="MaterialExpressionDistance_0"
A=(Expression=MaterialExpressionAppendVector'"MaterialGraphNode_148.MaterialExpressionAppendVector_0"')
B=(Expression=MaterialExpressionConstant'"MaterialGraphNode_150.MaterialExpressionConstant_0"')
MaterialExpressionEditorX=2080
MaterialExpressionEditorY=-2368
MaterialExpressionGuid=E4D1D3B642F092600311F8BCD8C49FC5
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionDistance'MaterialExpressionDistance_0'
Pins(0)=EdGraphPin'EdGraphPin_2945'
Pins(1)=EdGraphPin'EdGraphPin_2946'
Pins(2)=EdGraphPin'EdGraphPin_2947'
NodePosX=2080
NodePosY=-2368
NodeGuid=B68E530F4C5871E333E10794515224AB
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_150"
Begin Object Class=EdGraphPin Name="EdGraphPin_2948"
End Object
Begin Object Class=MaterialExpressionConstant Name="MaterialExpressionConstant_0"
End Object
Begin Object Name="EdGraphPin_2948"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_149.EdGraphPin_2946"'
End Object
Begin Object Name="MaterialExpressionConstant_0"
MaterialExpressionEditorX=2000
MaterialExpressionEditorY=-2288
MaterialExpressionGuid=FFBAF88143BD4D8FF509B8950A69C957
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionConstant'MaterialExpressionConstant_0'
Pins(0)=EdGraphPin'EdGraphPin_2948'
NodePosX=2000
NodePosY=-2288
NodeGuid=1295298D4F4524B475E7A3B304695D02
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_151"
Begin Object Class=EdGraphPin Name="EdGraphPin_2951"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2950"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2949"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_0"
End Object
Begin Object Name="EdGraphPin_2951"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_157.EdGraphPin_2970"'
End Object
Begin Object Name="EdGraphPin_2950"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_149.EdGraphPin_2947"'
End Object
Begin Object Name="EdGraphPin_2949"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_147.EdGraphPin_2941"'
End Object
Begin Object Name="MaterialExpressionDivide_0"
A=(Expression=MaterialExpressionAbs'"MaterialGraphNode_147.MaterialExpressionAbs_0"')
B=(Expression=MaterialExpressionDistance'"MaterialGraphNode_149.MaterialExpressionDistance_0"')
MaterialExpressionEditorX=2192
MaterialExpressionEditorY=-2416
MaterialExpressionGuid=EF25D7594AF2E41188CBDBBB9C61CCE4
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_0'
Pins(0)=EdGraphPin'EdGraphPin_2949'
Pins(1)=EdGraphPin'EdGraphPin_2950'
Pins(2)=EdGraphPin'EdGraphPin_2951'
NodePosX=2192
NodePosY=-2416
NodeGuid=40E86F70420EBD3C60BF52BCD8852780
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_152"
Begin Object Class=EdGraphPin Name="EdGraphPin_2956"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2955"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2954"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2953"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2952"
End Object
Begin Object Class=MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_0"
End Object
Begin Object Name="EdGraphPin_2956"
PinName="Output5"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="alpha")
End Object
Begin Object Name="EdGraphPin_2955"
PinName="Output4"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="blue")
End Object
Begin Object Name="EdGraphPin_2954"
PinName="Output3"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="green")
End Object
Begin Object Name="EdGraphPin_2953"
PinName="Output2"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="red")
End Object
Begin Object Name="EdGraphPin_2952"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_125.EdGraphPin_2879"'
End Object
Begin Object Name="MaterialExpressionVectorParameter_0"
DefaultValue=(R=0.000000,G=0.000000,B=1.000000,A=0.000000)
ParameterName="GraphColor"
ExpressionGUID=3B05B40248678D691C7DF398C9136C96
MaterialExpressionEditorX=2496
MaterialExpressionEditorY=-2608
MaterialExpressionGuid=C4D2E4DA49C2EA389D59BA8BF890BE0E
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_0'
Pins(0)=EdGraphPin'EdGraphPin_2952'
Pins(1)=EdGraphPin'EdGraphPin_2953'
Pins(2)=EdGraphPin'EdGraphPin_2954'
Pins(3)=EdGraphPin'EdGraphPin_2955'
Pins(4)=EdGraphPin'EdGraphPin_2956'
NodePosX=2496
NodePosY=-2608
bCanRenameNode=True
NodeGuid=BF8FB03F4861C06657B82193A4979E42
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_154"
Begin Object Class=EdGraphPin Name="EdGraphPin_2964"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2963"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2962"
End Object
Begin Object Class=MaterialExpressionPower Name="MaterialExpressionPower_17"
End Object
Begin Object Name="EdGraphPin_2964"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_155.EdGraphPin_2965"'
End Object
Begin Object Name="EdGraphPin_2963"
PinName="Exp"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_156.EdGraphPin_2969"'
End Object
Begin Object Name="EdGraphPin_2962"
PinName="Base"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_157.EdGraphPin_2972"'
End Object
Begin Object Name="MaterialExpressionPower_17"
Base=(Expression=MaterialExpressionDivide'"MaterialGraphNode_157.MaterialExpressionDivide_1"')
Exponent=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_156.MaterialExpressionScalarParameter_5"')
ConstExponent=8.000000
MaterialExpressionEditorX=2384
MaterialExpressionEditorY=-2416
MaterialExpressionGuid=9BBE35DB4ACC683B0BE1CFA878381DDD
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionPower'MaterialExpressionPower_17'
Pins(0)=EdGraphPin'EdGraphPin_2962'
Pins(1)=EdGraphPin'EdGraphPin_2963'
Pins(2)=EdGraphPin'EdGraphPin_2964'
NodePosX=2384
NodePosY=-2416
NodeGuid=9A37DDA94A9A38AE850953993A5177CD
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_155"
Begin Object Class=EdGraphPin Name="EdGraphPin_2968"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2967"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2966"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2965"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_0"
End Object
Begin Object Name="EdGraphPin_2968"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_125.EdGraphPin_2881"'
End Object
Begin Object Name="EdGraphPin_2967"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_2966"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_2965"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_154.EdGraphPin_2964"'
End Object
Begin Object Name="MaterialExpressionClamp_0"
Input=(Expression=MaterialExpressionPower'"MaterialGraphNode_154.MaterialExpressionPower_17"')
MaterialExpressionEditorX=2496
MaterialExpressionEditorY=-2416
MaterialExpressionGuid=C4A5986649F6FF8525C96EACFEDA5A76
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_0'
Pins(0)=EdGraphPin'EdGraphPin_2965'
Pins(1)=EdGraphPin'EdGraphPin_2966'
Pins(2)=EdGraphPin'EdGraphPin_2967'
Pins(3)=EdGraphPin'EdGraphPin_2968'
NodePosX=2496
NodePosY=-2416
NodeGuid=8840898142D50E1D2D062DA1FD2FC113
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_156"
Begin Object Class=EdGraphPin Name="EdGraphPin_2969"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_5"
End Object
Begin Object Name="EdGraphPin_2969"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_154.EdGraphPin_2963"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_5"
DefaultValue=16.000000
ParameterName="GraphHardness"
ExpressionGUID=077BAAEF40E437EDEE4C34B504BE0099
MaterialExpressionEditorX=2240
MaterialExpressionEditorY=-2320
MaterialExpressionGuid=D4DE27734F7C06862DE0CA88DEF2EE15
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_5'
Pins(0)=EdGraphPin'EdGraphPin_2969'
NodePosX=2240
NodePosY=-2320
bCanRenameNode=True
NodeGuid=2F8B071B47080DD09C541B83A7508C1F
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_157"
Begin Object Class=EdGraphPin Name="EdGraphPin_2972"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2971"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_2970"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_1"
End Object
Begin Object Name="EdGraphPin_2972"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_154.EdGraphPin_2962"'
End Object
Begin Object Name="EdGraphPin_2971"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_158.EdGraphPin_2973"'
End Object
Begin Object Name="EdGraphPin_2970"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_151.EdGraphPin_2951"'
End Object
Begin Object Name="MaterialExpressionDivide_1"
A=(Expression=MaterialExpressionDivide'"MaterialGraphNode_151.MaterialExpressionDivide_0"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_158.MaterialExpressionScalarParameter_6"')
MaterialExpressionEditorX=2288
MaterialExpressionEditorY=-2416
MaterialExpressionGuid=81FB3A604BE8836B362BF3BB8623A27A
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_1'
Pins(0)=EdGraphPin'EdGraphPin_2970'
Pins(1)=EdGraphPin'EdGraphPin_2971'
Pins(2)=EdGraphPin'EdGraphPin_2972'
NodePosX=2288
NodePosY=-2416
NodeGuid=7A2EAE1647DE8A509B69E0BB60455D8B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_158"
Begin Object Class=EdGraphPin Name="EdGraphPin_2973"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_6"
End Object
Begin Object Name="EdGraphPin_2973"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_157.EdGraphPin_2971"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_6"
DefaultValue=0.025000
ParameterName="GraphThickness"
ExpressionGUID=2C0CDBE446700F1D865675B907820982
MaterialExpressionEditorX=2096
MaterialExpressionEditorY=-2272
MaterialExpressionGuid=D4DE27734F7C06862DE0CA88DEF2EE15
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_6'
Pins(0)=EdGraphPin'EdGraphPin_2973'
NodePosX=2096
NodePosY=-2272
bCanRenameNode=True
NodeGuid=6D678A06457E0B2A203174836DE981AF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_174"
Begin Object Class=EdGraphPin Name="EdGraphPin_3017"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3016"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3015"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3014"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3013"
End Object
Begin Object Class=MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_1"
End Object
Begin Object Name="EdGraphPin_3017"
PinName="Output5"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="alpha")
End Object
Begin Object Name="EdGraphPin_3016"
PinName="Output4"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="blue")
End Object
Begin Object Name="EdGraphPin_3015"
PinName="Output3"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="green")
End Object
Begin Object Name="EdGraphPin_3014"
PinName="Output2"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="red")
End Object
Begin Object Name="EdGraphPin_3013"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_177.EdGraphPin_3023"'
End Object
Begin Object Name="MaterialExpressionVectorParameter_1"
DefaultValue=(R=1.000000,G=1.000000,B=1.000000,A=0.000000)
ParameterName="BackgroundColor"
ExpressionGUID=F2500F2F4F5F9A807FDF30ABEB353E35
MaterialExpressionEditorX=2272
MaterialExpressionEditorY=-3040
MaterialExpressionGuid=C4D2E4DA49C2EA389D59BA8BF890BE0E
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_1'
Pins(0)=EdGraphPin'EdGraphPin_3013'
Pins(1)=EdGraphPin'EdGraphPin_3014'
Pins(2)=EdGraphPin'EdGraphPin_3015'
Pins(3)=EdGraphPin'EdGraphPin_3016'
Pins(4)=EdGraphPin'EdGraphPin_3017'
NodePosX=2272
NodePosY=-3040
bCanRenameNode=True
NodeGuid=F2FA72634B1ADAE47A94C0B87272B94E
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_175"
Begin Object Class=EdGraphPin Name="EdGraphPin_3020"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3019"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3018"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_2"
End Object
Begin Object Name="EdGraphPin_3020"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_179.EdGraphPin_3031"'
End Object
Begin Object Name="EdGraphPin_3019"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_188.EdGraphPin_3055"'
End Object
Begin Object Name="EdGraphPin_3018"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_182.EdGraphPin_3042"'
End Object
Begin Object Name="MaterialExpressionDivide_2"
A=(Expression=MaterialExpressionMin'"MaterialGraphNode_182.MaterialExpressionMin_0"')
B=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_188.MaterialExpressionMultiply_69"')
MaterialExpressionEditorX=2208
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=FE189CBE40EAC590BDB2E78DDC0F6827
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_2'
Pins(0)=EdGraphPin'EdGraphPin_3018'
Pins(1)=EdGraphPin'EdGraphPin_3019'
Pins(2)=EdGraphPin'EdGraphPin_3020'
NodePosX=2208
NodePosY=-2848
NodeGuid=6B8FEB634C35631B9956B0AB15312242
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_176"
Begin Object Class=EdGraphPin Name="EdGraphPin_3021"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_7"
End Object
Begin Object Name="EdGraphPin_3021"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_188.EdGraphPin_3054"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_7"
DefaultValue=0.020000
ParameterName="GridThickness"
ExpressionGUID=7570922F4EE222DE27CAA6A05F4C528B
MaterialExpressionEditorX=1952
MaterialExpressionEditorY=-2736
MaterialExpressionGuid=D4DE27734F7C06862DE0CA88DEF2EE15
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_7'
Pins(0)=EdGraphPin'EdGraphPin_3021'
NodePosX=1952
NodePosY=-2736
bCanRenameNode=True
NodeGuid=5171A3B94995E340AC02BDA6D6A5FC9B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_177"
Begin Object Class=EdGraphPin Name="EdGraphPin_3025"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3024"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3023"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3022"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_1"
End Object
Begin Object Name="EdGraphPin_3025"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_125.EdGraphPin_2880"'
End Object
Begin Object Name="EdGraphPin_3024"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_180.EdGraphPin_3037"'
End Object
Begin Object Name="EdGraphPin_3023"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_174.EdGraphPin_3013"'
End Object
Begin Object Name="EdGraphPin_3022"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_178.EdGraphPin_3026"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_1"
A=(Expression=MaterialExpressionVectorParameter'"MaterialGraphNode_178.MaterialExpressionVectorParameter_2"',Mask=1,MaskR=1,MaskG=1,MaskB=1)
B=(Expression=MaterialExpressionVectorParameter'"MaterialGraphNode_174.MaterialExpressionVectorParameter_1"',Mask=1,MaskR=1,MaskG=1,MaskB=1)
Alpha=(Expression=MaterialExpressionClamp'"MaterialGraphNode_180.MaterialExpressionClamp_1"')
MaterialExpressionEditorX=2656
MaterialExpressionEditorY=-2880
MaterialExpressionGuid=D8601F9D4D14FA1AC61FA4AA1B8EA8EB
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_1'
Pins(0)=EdGraphPin'EdGraphPin_3022'
Pins(1)=EdGraphPin'EdGraphPin_3023'
Pins(2)=EdGraphPin'EdGraphPin_3024'
Pins(3)=EdGraphPin'EdGraphPin_3025'
NodePosX=2656
NodePosY=-2880
NodeGuid=2D6922B94D7D626DC7AE268010C8971A
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_178"
Begin Object Class=EdGraphPin Name="EdGraphPin_3030"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3029"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3028"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3027"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3026"
End Object
Begin Object Class=MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_2"
End Object
Begin Object Name="EdGraphPin_3030"
PinName="Output5"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="alpha")
End Object
Begin Object Name="EdGraphPin_3029"
PinName="Output4"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="blue")
End Object
Begin Object Name="EdGraphPin_3028"
PinName="Output3"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="green")
End Object
Begin Object Name="EdGraphPin_3027"
PinName="Output2"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask",PinSubCategory="red")
End Object
Begin Object Name="EdGraphPin_3026"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
PinType=(PinCategory="mask")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_177.EdGraphPin_3022"'
End Object
Begin Object Name="MaterialExpressionVectorParameter_2"
DefaultValue=(R=0.050000,G=0.050000,B=0.050000,A=0.000000)
ParameterName="GridColor"
ExpressionGUID=6F7598714B17835A7A7EBC96C19AF87D
MaterialExpressionEditorX=2432
MaterialExpressionEditorY=-3040
MaterialExpressionGuid=C4D2E4DA49C2EA389D59BA8BF890BE0E
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_2'
Pins(0)=EdGraphPin'EdGraphPin_3026'
Pins(1)=EdGraphPin'EdGraphPin_3027'
Pins(2)=EdGraphPin'EdGraphPin_3028'
Pins(3)=EdGraphPin'EdGraphPin_3029'
Pins(4)=EdGraphPin'EdGraphPin_3030'
NodePosX=2432
NodePosY=-3040
bCanRenameNode=True
NodeGuid=39F1F04F48C6BA410F8CAAB169FAB09A
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_179"
Begin Object Class=EdGraphPin Name="EdGraphPin_3033"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3032"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3031"
End Object
Begin Object Class=MaterialExpressionPower Name="MaterialExpressionPower_18"
End Object
Begin Object Name="EdGraphPin_3033"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_180.EdGraphPin_3034"'
End Object
Begin Object Name="EdGraphPin_3032"
PinName="Exp"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3031"
PinName="Base"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_175.EdGraphPin_3020"'
End Object
Begin Object Name="MaterialExpressionPower_18"
Base=(Expression=MaterialExpressionDivide'"MaterialGraphNode_175.MaterialExpressionDivide_2"')
ConstExponent=32.000000
MaterialExpressionEditorX=2304
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=7C95D85047738524A26547AFD9F50C0C
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionPower'MaterialExpressionPower_18'
Pins(0)=EdGraphPin'EdGraphPin_3031'
Pins(1)=EdGraphPin'EdGraphPin_3032'
Pins(2)=EdGraphPin'EdGraphPin_3033'
NodePosX=2304
NodePosY=-2848
NodeGuid=29944A1E458FD9FEFFC3A3975AE1A963
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_180"
Begin Object Class=EdGraphPin Name="EdGraphPin_3037"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3036"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3035"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3034"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_1"
End Object
Begin Object Name="EdGraphPin_3037"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_177.EdGraphPin_3024"'
End Object
Begin Object Name="EdGraphPin_3036"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3035"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3034"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_179.EdGraphPin_3033"'
End Object
Begin Object Name="MaterialExpressionClamp_1"
Input=(Expression=MaterialExpressionPower'"MaterialGraphNode_179.MaterialExpressionPower_18"')
MaterialExpressionEditorX=2432
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=0926A415429DA808FCA904B8159CB6DF
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_1'
Pins(0)=EdGraphPin'EdGraphPin_3034'
Pins(1)=EdGraphPin'EdGraphPin_3035'
Pins(2)=EdGraphPin'EdGraphPin_3036'
Pins(3)=EdGraphPin'EdGraphPin_3037'
NodePosX=2432
NodePosY=-2848
NodeGuid=98C9DD3C4F0F5CD33AED389E83A2157D
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_181"
Begin Object Class=EdGraphPin Name="EdGraphPin_3039"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3038"
End Object
Begin Object Class=MaterialExpressionAbs Name="MaterialExpressionAbs_1"
End Object
Begin Object Name="EdGraphPin_3039"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_186.EdGraphPin_3049"'
End Object
Begin Object Name="EdGraphPin_3038"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_130.EdGraphPin_2893"'
End Object
Begin Object Name="MaterialExpressionAbs_1"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_130.MaterialExpressionMultiply_67"')
MaterialExpressionEditorX=1680
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=A404819445CCEA8D57CF87BD8C1A3804
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionAbs'MaterialExpressionAbs_1'
Pins(0)=EdGraphPin'EdGraphPin_3038'
Pins(1)=EdGraphPin'EdGraphPin_3039'
NodePosX=1680
NodePosY=-2848
NodeGuid=799899E349F1C806DE091590676B8891
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_182"
Begin Object Class=EdGraphPin Name="EdGraphPin_3042"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3041"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3040"
End Object
Begin Object Class=MaterialExpressionMin Name="MaterialExpressionMin_0"
End Object
Begin Object Name="EdGraphPin_3042"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_175.EdGraphPin_3018"'
End Object
Begin Object Name="EdGraphPin_3041"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_184.EdGraphPin_3046"'
End Object
Begin Object Name="EdGraphPin_3040"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_185.EdGraphPin_3048"'
End Object
Begin Object Name="MaterialExpressionMin_0"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_185.MaterialExpressionComponentMask_3"')
B=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_184.MaterialExpressionComponentMask_2"')
MaterialExpressionEditorX=2112
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=3638CFC6480F0E241D4E0AB7450C1BA6
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionMin'MaterialExpressionMin_0'
Pins(0)=EdGraphPin'EdGraphPin_3040'
Pins(1)=EdGraphPin'EdGraphPin_3041'
Pins(2)=EdGraphPin'EdGraphPin_3042'
NodePosX=2112
NodePosY=-2848
NodeGuid=6B063AC74852788AEFC23E9EFEF2D900
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_183"
Begin Object Class=EdGraphPin Name="EdGraphPin_3044"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3043"
End Object
Begin Object Class=MaterialExpressionFrac Name="MaterialExpressionFrac_0"
End Object
Begin Object Name="EdGraphPin_3044"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_184.EdGraphPin_3045"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_185.EdGraphPin_3047"'
End Object
Begin Object Name="EdGraphPin_3043"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_186.EdGraphPin_3051"'
End Object
Begin Object Name="MaterialExpressionFrac_0"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_186.MaterialExpressionMultiply_68"')
MaterialExpressionEditorX=1888
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=EB22DFCE4F32F8E8821AC4B21D0C7928
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionFrac'MaterialExpressionFrac_0'
Pins(0)=EdGraphPin'EdGraphPin_3043'
Pins(1)=EdGraphPin'EdGraphPin_3044'
NodePosX=1888
NodePosY=-2848
NodeGuid=8975923041889FF738EE3A89C3BF1B64
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_184"
Begin Object Class=EdGraphPin Name="EdGraphPin_3046"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3045"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_2"
End Object
Begin Object Name="EdGraphPin_3046"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_182.EdGraphPin_3041"'
End Object
Begin Object Name="EdGraphPin_3045"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_183.EdGraphPin_3044"'
End Object
Begin Object Name="MaterialExpressionComponentMask_2"
Input=(Expression=MaterialExpressionFrac'"MaterialGraphNode_183.MaterialExpressionFrac_0"')
G=True
MaterialExpressionEditorX=1984
MaterialExpressionEditorY=-2800
MaterialExpressionGuid=10348C6A403D6462792466AECE436EB3
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_2'
Pins(0)=EdGraphPin'EdGraphPin_3045'
Pins(1)=EdGraphPin'EdGraphPin_3046'
NodePosX=1984
NodePosY=-2800
NodeGuid=A2057E7E4147F37C4218C385F09ED7D7
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_185"
Begin Object Class=EdGraphPin Name="EdGraphPin_3048"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3047"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_3"
End Object
Begin Object Name="EdGraphPin_3048"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_182.EdGraphPin_3040"'
End Object
Begin Object Name="EdGraphPin_3047"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_183.EdGraphPin_3044"'
End Object
Begin Object Name="MaterialExpressionComponentMask_3"
Input=(Expression=MaterialExpressionFrac'"MaterialGraphNode_183.MaterialExpressionFrac_0"')
R=True
MaterialExpressionEditorX=1984
MaterialExpressionEditorY=-2864
MaterialExpressionGuid=10348C6A403D6462792466AECE436EB3
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_3'
Pins(0)=EdGraphPin'EdGraphPin_3047'
Pins(1)=EdGraphPin'EdGraphPin_3048'
NodePosX=1984
NodePosY=-2864
NodeGuid=7FE73FAF44E5E60AFFD8BAB3F85CBAB6
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_186"
Begin Object Class=EdGraphPin Name="EdGraphPin_3051"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3050"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3049"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_68"
End Object
Begin Object Name="EdGraphPin_3051"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_183.EdGraphPin_3043"'
End Object
Begin Object Name="EdGraphPin_3050"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_187.EdGraphPin_3052"'
End Object
Begin Object Name="EdGraphPin_3049"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_181.EdGraphPin_3039"'
End Object
Begin Object Name="MaterialExpressionMultiply_68"
A=(Expression=MaterialExpressionAbs'"MaterialGraphNode_181.MaterialExpressionAbs_1"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_187.MaterialExpressionScalarParameter_8"')
MaterialExpressionEditorX=1776
MaterialExpressionEditorY=-2848
MaterialExpressionGuid=9AC74333445B02E6F7BDB89590222A61
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_68'
Pins(0)=EdGraphPin'EdGraphPin_3049'
Pins(1)=EdGraphPin'EdGraphPin_3050'
Pins(2)=EdGraphPin'EdGraphPin_3051'
NodePosX=1776
NodePosY=-2848
NodeGuid=EDB550B046391103E93A469DC3D8127B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_187"
Begin Object Class=EdGraphPin Name="EdGraphPin_3052"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_8"
End Object
Begin Object Name="EdGraphPin_3052"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_186.EdGraphPin_3050"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_188.EdGraphPin_3053"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_8"
DefaultValue=1.000000
ParameterName="Lines"
ExpressionGUID=570E56FE4C0C58D3720E549EF0BB6799
MaterialExpressionEditorX=1664
MaterialExpressionEditorY=-2784
MaterialExpressionGuid=C715F103431A2B03705620B76B79ACE3
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_8'
Pins(0)=EdGraphPin'EdGraphPin_3052'
NodePosX=1664
NodePosY=-2784
bCanRenameNode=True
NodeGuid=B8ABFC45495787783C09CDB1BC7DBD74
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_188"
Begin Object Class=EdGraphPin Name="EdGraphPin_3055"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3054"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3053"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_69"
End Object
Begin Object Name="EdGraphPin_3055"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_175.EdGraphPin_3019"'
End Object
Begin Object Name="EdGraphPin_3054"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_176.EdGraphPin_3021"'
End Object
Begin Object Name="EdGraphPin_3053"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_187.EdGraphPin_3052"'
End Object
Begin Object Name="MaterialExpressionMultiply_69"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_187.MaterialExpressionScalarParameter_8"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_176.MaterialExpressionScalarParameter_7"')
MaterialExpressionEditorX=2096
MaterialExpressionEditorY=-2752
MaterialExpressionGuid=44A53934459B9A71484C0CBF04E99415
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_69'
Pins(0)=EdGraphPin'EdGraphPin_3053'
Pins(1)=EdGraphPin'EdGraphPin_3054'
Pins(2)=EdGraphPin'EdGraphPin_3055'
NodePosX=2096
NodePosY=-2752
NodeGuid=AE14F73D4C682AED4C54C3883E8BCF7D
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_228"
Begin Object Class=EdGraphPin Name="EdGraphPin_3165"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3164"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3163"
End Object
Begin Object Class=MaterialExpressionPower Name="MaterialExpressionPower_19"
End Object
Begin Object Name="EdGraphPin_3165"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_229.EdGraphPin_3166"'
End Object
Begin Object Name="EdGraphPin_3164"
PinName="Exp"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3163"
PinName="Base"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_127.EdGraphPin_2885"'
End Object
Begin Object Name="MaterialExpressionPower_19"
Base=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_127.MaterialExpressionComponentMask_0"')
ConstExponent=3.000000
MaterialExpressionEditorX=1648
MaterialExpressionEditorY=-2592
MaterialExpressionGuid=C9BB52894FCBA253347C8DBBD7C40464
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionPower'MaterialExpressionPower_19'
Pins(0)=EdGraphPin'EdGraphPin_3163'
Pins(1)=EdGraphPin'EdGraphPin_3164'
Pins(2)=EdGraphPin'EdGraphPin_3165'
NodePosX=1648
NodePosY=-2592
ErrorType=1
ErrorMsg="Missing Power Base input"
NodeGuid=4C36DE794027054513FA83860E1D3934
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_229"
Begin Object Class=EdGraphPin Name="EdGraphPin_3168"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3167"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3166"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_25"
End Object
Begin Object Name="EdGraphPin_3168"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_147.EdGraphPin_2940"'
End Object
Begin Object Name="EdGraphPin_3167"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_230.EdGraphPin_3171"'
End Object
Begin Object Name="EdGraphPin_3166"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_228.EdGraphPin_3165"'
End Object
Begin Object Name="MaterialExpressionSubtract_25"
A=(Expression=MaterialExpressionPower'"MaterialGraphNode_228.MaterialExpressionPower_19"')
B=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_230.MaterialExpressionMultiply_70"')
MaterialExpressionEditorX=1792
MaterialExpressionEditorY=-2592
MaterialExpressionGuid=F5781E5E450C6977C64BBE9AB25BFCD5
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_25'
Pins(0)=EdGraphPin'EdGraphPin_3166'
Pins(1)=EdGraphPin'EdGraphPin_3167'
Pins(2)=EdGraphPin'EdGraphPin_3168'
NodePosX=1792
NodePosY=-2592
NodeGuid=D84C03D54FD7C0905B56EFB3D7733B6E
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_230"
Begin Object Class=EdGraphPin Name="EdGraphPin_3171"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3170"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3169"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_70"
End Object
Begin Object Name="EdGraphPin_3171"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_229.EdGraphPin_3167"'
End Object
Begin Object Name="EdGraphPin_3170"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_128.EdGraphPin_2887"'
End Object
Begin Object Name="EdGraphPin_3169"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_128.EdGraphPin_2887"'
End Object
Begin Object Name="MaterialExpressionMultiply_70"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_128.MaterialExpressionComponentMask_1"')
B=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_128.MaterialExpressionComponentMask_1"')
MaterialExpressionEditorX=1648
MaterialExpressionEditorY=-2496
MaterialExpressionGuid=64387C464394450F92A45AA5B57ED8C9
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_70'
Pins(0)=EdGraphPin'EdGraphPin_3169'
Pins(1)=EdGraphPin'EdGraphPin_3170'
Pins(2)=EdGraphPin'EdGraphPin_3171'
NodePosX=1648
NodePosY=-2496
NodeGuid=32BA0F52425AC0BD9735108FAA378DA1
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_231"
Begin Object Class=EdGraphPin Name="EdGraphPin_3174"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3173"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3172"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_71"
End Object
Begin Object Name="EdGraphPin_3174"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_232.EdGraphPin_3175"'
End Object
Begin Object Name="EdGraphPin_3173"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_127.EdGraphPin_2885"'
End Object
Begin Object Name="EdGraphPin_3172"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_127.EdGraphPin_2885"'
End Object
Begin Object Name="MaterialExpressionMultiply_71"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_127.MaterialExpressionComponentMask_0"')
B=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_127.MaterialExpressionComponentMask_0"')
MaterialExpressionEditorX=1648
MaterialExpressionEditorY=-2352
MaterialExpressionGuid=794969A64AAF712A90D282922BC6612F
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_71'
Pins(0)=EdGraphPin'EdGraphPin_3172'
Pins(1)=EdGraphPin'EdGraphPin_3173'
Pins(2)=EdGraphPin'EdGraphPin_3174'
NodePosX=1648
NodePosY=-2352
NodeGuid=A81E460D4A931CE3EA73C8AF35A28E93
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_232"
Begin Object Class=EdGraphPin Name="EdGraphPin_3177"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3176"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3175"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_72"
End Object
Begin Object Name="EdGraphPin_3177"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_148.EdGraphPin_2942"'
End Object
Begin Object Name="EdGraphPin_3176"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3175"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_231.EdGraphPin_3174"'
End Object
Begin Object Name="MaterialExpressionMultiply_72"
A=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_231.MaterialExpressionMultiply_71"')
ConstB=3.000000
MaterialExpressionEditorX=1760
MaterialExpressionEditorY=-2352
MaterialExpressionGuid=841692914149036C955E5FA4003BE1FE
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
Desc="dx"
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_72'
Pins(0)=EdGraphPin'EdGraphPin_3175'
Pins(1)=EdGraphPin'EdGraphPin_3176'
Pins(2)=EdGraphPin'EdGraphPin_3177'
NodePosX=1760
NodePosY=-2352
NodeComment="dx"
NodeGuid=A402966F4ACBB5CE643FA4A0BFCB7F19
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_233"
Begin Object Class=EdGraphPin Name="EdGraphPin_3180"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3179"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3178"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_73"
End Object
Begin Object Name="EdGraphPin_3180"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_148.EdGraphPin_2943"'
End Object
Begin Object Name="EdGraphPin_3179"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3178"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_128.EdGraphPin_2887"'
End Object
Begin Object Name="MaterialExpressionMultiply_73"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_128.MaterialExpressionComponentMask_1"')
ConstB=2.000000
MaterialExpressionEditorX=1760
MaterialExpressionEditorY=-2240
MaterialExpressionGuid=DFDF5FFE4AF2976AE91CFDB7DBA0B74C
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
Desc="dy"
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_73'
Pins(0)=EdGraphPin'EdGraphPin_3178'
Pins(1)=EdGraphPin'EdGraphPin_3179'
Pins(2)=EdGraphPin'EdGraphPin_3180'
NodePosX=1760
NodePosY=-2240
NodeComment="dy"
NodeGuid=F3DB97734F144BC6AF6843B75B1D330C
End Object
Hi Oliver,
ReplyDeleteThank you for sharing this. The approach is really interesting.
I have not implemented it but I took several ideas to develop my own function shader. I needed something like that to check the values of variables in a shader. My shader is limited to bijective functions though.
http://werwackfx.com/index.php/graphictools/ue4-main/ue4-articles/35-shaderwkfunctiondrawer
Best regards