tag:blogger.com,1999:blog-31404281380739693132024-03-21T21:55:50.380+01:003D Modeling & TexturingOliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.comBlogger69125tag:blogger.com,1999:blog-3140428138073969313.post-78395154758032657882014-12-19T13:55:00.001+01:002014-12-19T13:55:30.640+01:00[Unreal Engine 4] 4.7 Shader Files ChangelistBelow you can find a list of all .usf shader files that have been changed for Unreal Engine 4.7.<br />
<br />
Most of these changes are based on the following engine additions/modifications:<br />
<ul>
<li>TwoSidedFoliage lighting model</li>
<li>SV_Position is now available in the pixel shader (in previous engine versions<br />the screen position was derived from world position to save an interpolator) </li>
<li>Dithered LOD transitions for instanced meshes </li>
<li>Distance Field Shadowing improvements </li>
<li>Metal API related improvements</li>
</ul>
<br />
<blockquote class="tr_bq">
<i>BasePassForForwardShadingPixelShader<br />BasePassPixelShader<br />Common<br />Definitions<br />DepthOnlyPixelShader<br />DistanceFieldLightingShared<br />DistanceFieldShadowing<br />DistanceFieldSurfaceCacheLighting<br />DistanceFieldSurfaceCacheLightingCompute<br />DistortAccumulatePS<br />HitProxyPixelShader<br />LightmapCommon<br />LightMapDensityShader<br />LocalVertexFactory<br />LocalVertexFactoryCommon<br />MaterialTemplate<br />MonteCarlo<br />ParticleGPUSpriteVertexFactory<br />ParticleSpriteVertexFactory<br />PostProcessMaterialShaders<br />PostProcessMotionBlur<br />PostProcessSubsurface<br />PostProcessUpscale<br />ReflectionEnvironmentComputeShaders<br />ReflectionEnvironmentShaders<br />SeparableSSS<br />ShaderVersion<br />ShadowDepthCommon<br />ShadowDepthPixelShader<br />ShadowProjectionCommon<br />ShadowProjectionPixelShader<br />SimpleElementPixelShader<br />SkyLighting<br />SkyLightingShared<br />TiledDeferredLightShaders<br />TranslucentShadowDepthShaders<br />VelocityShader<br />VertexFactoryCommon<br />VisualizeTexture</i></blockquote>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com1tag:blogger.com,1999:blog-3140428138073969313.post-66987259317085243172014-12-05T23:19:00.001+01:002014-12-05T23:37:53.241+01:00[UE4 Material] Graphing Functions<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled3b6uwh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled3b6uwh.jpg" height="320" width="320" /></a></div>
<br />
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.<br />
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.<br />
<br />
<br />
In order to actually draw the graphs I'm using a method suggested by Iñigo Quílez:<br />
http://www.iquilezles.org/www/articles/distance/distance.htm<br />
<br />
The shader code described isn't very complex but requires the derivatives to be computed.<br />
So in total there are 4 things required for graphing a function in the material editor:<br />
<ol>
<li style="text-align: left;">A function.<br />
Any kind of function will work but the elements need to be reordered so one <br />side of the equation is zero. E.g. <span style="font-family: "Courier New",Courier,monospace; font-size: 16px;">y=x²</span> will become <span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: 16px;">0=x²-y</span><span style="font-family: inherit;">.</span></span></li>
<li style="text-align: left;">Derivatives of the function.<br />
It's recommended to to manually do the differentiation. However if the math<br />
is out of reach you can use finite differences instead.</li>
<li style="text-align: left;">A coordinate system.<br />Usually this will be the UVs, screen coordinates or the worldposition.</li>
<li style="text-align: left;">A grid.<br />This is optionally but helps to read the graph. I'd suggest to draw the x/y-axis at the very least.</li>
</ol>
<br />
<br />
<br />
<b>Material Setup</b><br />
<br />
I'm starting off with a rather simple function:<br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: 16px;">0 = x³-y²</span></span><br />
<br />
The derivatives of this function are as follows:<br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: 16px;">d/dx = 3*x²</span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: 16px;">d/dy = -2*y</span></span><br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled11tuby.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled11tuby.png" height="252" width="400" /></a></div>
<br />
<br />
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.<br />
Keep in mind that this might increase the instruction count a lot, depending on the functions complexity.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled2f9usm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled2f9usm.png" height="223" width="400" /></a></div>
<br />
<br />
<br />
With the function and its derivatives available we can now draw the graph:<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled8ofure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled8ofure.png" height="287" width="400" /></a></div>
<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled7oxu9d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled7oxu9d.png" height="231" width="400" /></a></div>
<br />
<br />
For a real grid with multiple sub-lines use this setup instead:<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled66tujh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled66tujh.png" height="191" width="400" /></a></div>
<br />
<br />
<br />
Putting it all together<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/untitled9rljvv.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/untitled9rljvv.png" height="225" width="400" /></a></div>
<br />
To replicate this network of nodes just copy and paste the code below to your own material:<br />
<pre style="background-color: #222222; border: 1px dashed #999999; color: white; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 250px; line-height: 14px; overflow: auto; padding: 5px; width: 75%;"><code>
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
</code></pre>
<br />
<br />
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com1tag:blogger.com,1999:blog-3140428138073969313.post-43899505974556771502014-12-02T12:37:00.000+01:002014-12-02T14:03:00.068+01:00[UE4 Quick Tip] Removing Frac ArtifactsSo with the (new) possibility to sample textures in a custom node it's also possible again to remove any kind of artifacts caused by non-continuous UVs (e.g. texture cropping/frac coords, polar coords etc...)<br />
<br />
Given a texture object (Tex), mapping coordinates (UV) and non-frac coordinates (UV1) this is the HLSL code:<br />
<pre style="background-color: white; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 24px; line-height: 16px; overflow: auto; padding: 5px; width: 75%;"><code><b><span style="color: blue;">return</span></b> Tex.<span style="color: #3d85c6;">SampleGrad</span>(TexSampler,UV,<span style="color: #3d85c6;">ddx</span>(UV1),<span style="color: #3d85c6;">ddy</span>(UV1));</code>
</pre>
<br />
Using SampleGrad is 10 instructions cheaper than the 'ComputeMipLevel' material function and also preserves anisotropic filtering, so that's a double win.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ue4_customnodegraddekox.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ue4_customnodegraddekox.png" height="336" width="640" /></a></div>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com1tag:blogger.com,1999:blog-3140428138073969313.post-64686362613219762312014-12-01T11:57:00.002+01:002014-12-02T12:37:17.346+01:00[UE4 Quick Tip] Sampling Textures in Custom NodesWith Unreal Engine 4.6 it's finally possible to sample a texture in a custom node without clumsy workarounds.<br />
<br />
Given a texture object (Tex) and some coordinates (UV) this line of code will regularly sample a texture:<br />
<br />
<pre style="background-color: white; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 24px; line-height: 16px; overflow: auto; padding: 5px; width: 75%;"><code><b><span style="color: blue;">return</span></b> Tex.<span style="color: #3d85c6;">Sample</span>(TexSampler,UV);</code>
</pre>
<br />
<br />
Other sampling types like 'SampleGrad', 'SampleBias' or 'SampleLevel' should work just as fine.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ue4_customnodetexture8qjgp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ue4_customnodetexture8qjgp.png" height="206" width="400" /></a></div>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com1tag:blogger.com,1999:blog-3140428138073969313.post-10548195736967803572014-11-25T12:50:00.001+01:002014-11-25T13:00:08.945+01:00[UE4 Quick Tip] Increase Tessellation LimitBy default UE4 limits the tessellation factor to 8. This has been done for performance reasons since certain GPUs struggle a lot with high amounts of subdivision and owning an old AMD DX11 graphics card myself I can completely see where they are coming from.<br />
If you want to increase the tessellation factor anyway take a look at these shader file<span style="font-family: inherit;">s</span><br />
<br />
<i><span style="font-family: inherit;">\Unreal Engine\4.x\Engine\Shaders\Tessellation.usf</span></i><br />
<i><span style="font-family: inherit;">\Unreal Engine\4.x\Engine\Shaders\PNTriangles.us</span>f</i><br />
<br />
and search for the 'MaxTessFactor' variable.<br />
<pre style="background-color: white; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 200px; line-height: 16px; overflow: auto; padding: 5px; width: 75%;"><code>
<span style="color: #38761d;">//@todo: This should be vectorized and done in the MainHull shader.</span>
<span style="color: #3d85c6;">float4</span> CompositeTessellationFactors = TessellationMultipliers * CalculateCompositeTessellationFactors(WorldPostion0,WorldPostion1,WorldPostion2);
<span style="color: lime;"><span style="color: #38761d;">// Limit the tessellation factor to <= 8. The multiplies and saturates handle any potential NANs/INFs in CompositeTessellationFactors.</span>
</span><b><span style="color: #3d85c6;">float4</span> MaxTessFactor = <span style="color: orange;">8.0f;</span></b>
<span style="color: #3d85c6;">float4</span> InvMaxTessFactor = <span style="color: orange;">1.0f</span> / MaxTessFactor;
</code><code><span style="color: lime;"><span style="color: #38761d;">// clamp at 1 to prevent triangle to disappear with</span></span></code><code>
CompositeTessellationFactors = <span style="color: #3d85c6;">max</span>(<span style="color: orange;">1</span>, MaxTessFactor * <span style="color: #3d85c6;">saturate</span>(CompositeTessellationFactors * InvMaxTessFactor));</code></pre>
<br />
Changing this value will cause a full (material) shader recompilation so it'll take some time when you open the editor the first time.Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-86498056659043871482014-08-24T15:35:00.000+02:002014-08-24T15:40:04.590+02:00[Unreal Engine 4] Improving Screen Space ReflectionsIf you ever felt the need to adjust or improve the built-in screen space reflections of UE4 take a look at the <i>ScreenSpaceReflections.usf</i> shader file.<br />
It's located in this directory: \Unreal Engine\4.x\Engine\Shaders\<br />
<br />
In the SSR shader file search for this part of the code. The line number varies a bit with each engine version, but it should be somewhere around 340-350.
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">#if SSR_QUALITY == 1</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumSteps = 8;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumRays = 1;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">#elif SSR_QUALITY == 2</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumSteps = 16;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumRays = 1;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">#elif SSR_QUALITY == 3</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumSteps = 8;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumRays = 4;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">#else // SSR_QUALITY == 4</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumSteps = 12;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">const int NumRays = 12;</span><br />
<span style="font-family: "Courier New",Courier,monospace;">#endif
</span></blockquote>
There are 3 quality levels with 2 parameters which define the quality of reflections.<br />
<br />
<span style="font-family: inherit;"><b>NumSteps</b> - Number of steps. This defines the accuracy of reflections and causes a reasonable performance impact.</span><br />
<span style="font-family: inherit;">For any value above 32 you will hardly notice a difference</span><br />
<b>NumRays</b> - Number of rays. Using more rays takes away the noise of reflections but is rather expensive.<br />
<br />
The default settings are a bit strange since the number of steps drops from 16 back to 8 at quality level 3. My recommendation would be to set NumSteps to 16 for high quality. This comes at a little performance impact. You might also lower NumRays by 1 at the same time to gain back the lost FPS.<br />
<br />
Here's a set of screenshots to demonstrate various value combinations as well as their impact on performance.<br />
<br />
NumSteps=8 / NumRays=1<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0008_8s1r2qjgy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0008_8s1r2qjgy.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=16 / NumRays=1<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0007_16s1rjzjd3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0007_16s1rjzjd3.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=16 / NumRays=2<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0006_16s2rcpkby.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0006_16s2rcpkby.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=8 / NumRays=4<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0005_8s4r36j6n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0005_8s4r36j6n.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=16 / NumRays=4<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0004_16s4rdjk1y.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0004_16s4rdjk1y.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=16 / NumRays=8<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0002_16s8r2tjrg.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0002_16s8r2tjrg.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=32 / NumRays=4<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0003_32s4redkpw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0003_32s4redkpw.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=32 / NumRays=8<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0001_32s8rxxkjo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0001_32s8rxxkjo.jpg" height="180" width="320" /></a></div>
<br />
NumSteps=32 / NumRays=32<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ssr_0000_32s32rqgjks.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ssr_0000_32s32rqgjks.jpg" height="180" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com2tag:blogger.com,1999:blog-3140428138073969313.post-71748151407590798982014-08-23T23:48:00.005+02:002014-08-23T23:48:57.923+02:00[UE3/UE4] Ocean Waves NormalsUsing the world position offset (aka vertex shader) is a popular way of creating large scale ocean waves in unreal engine 3/4. The drawback is that any kind of deformed geometry won't affect the shading at all. That's why you need to manually calculate the new normals inside the material.<br />
To do so it is necessary to calculate the derivatives of the same function which is used to form the ocean waves. The derivatives with respect to x and y are equivalent to the red and green channel of a normal map. Given these 2 components it is possible to calculate the missing 3rd component to get the final per pixel normals.<br />
I'm well aware that there are many ways of implementing ocean motion but I decided to only cover one approach with 2 sub-types, directional waves and circular waves.<br />
In a realistic ocean material you would usually combine multiple waves of different size, speed, direction/position, which also means you would need to duplicate the material graphs shown in this tutorial. Personally I wouldn't calculate the normal for more than 3-4 waves to keep the overall material complexity at a moedrate level. <br />
<br />
<i>The material setups below will only work properly if "Tangent Space Normal" is unchecked in the material properties. This is due to the fact that all calculations are done in world space which also means the generated normals are in world space. If you like to combine these normals with a normal map you would need to do transformation from world to tangent space first.</i><br />
<br />
<br />
<b>Directional Waves</b><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/oceannormals01fe1kgk.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/oceannormals01fe1kgk.jpg" height="150" width="200" /></a></div>
<br />
Directional waves are based on the dot product between the world position of each pixel and a world space direction vector. This dot product gets added to the time and then fed into a sine node to move the vertices along the z-axis.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/oceannormals01dfhki5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/oceannormals01dfhki5.jpg" height="141" width="400" /></a></div>
<br />
<br />
Generating normals for directional waves is rather easy. The sine node is being replaced by cosine and then multiplied by the direction vectors' x- and y-component.<br />
In the example below you can also see that the normal intensity is automatically calculated by comparing the length and height of a wave.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/oceannormals01e70jx3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/oceannormals01e70jx3.jpg" height="216" width="400" /></a></div>
<br />
<br />
<br />
<b>Circular Waves</b><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/oceannormals01cn6juc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/oceannormals01cn6juc.jpg" height="150" width="200" /></a></div>
<br />
Circular waves are defined by an origin point and the distance between this origin and the world position. Similar to the directional wave setup this distance is added to time and then fed into a sine node.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/oceannormals01a45kui.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/oceannormals01a45kui.jpg" height="117" width="400" /></a></div>
<br />
<br />
The material setup for calculating the derivatives for circular waves is a bit more complex, because the distance node involves a square root.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/oceannormals01b38jx9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/oceannormals01b38jx9.jpg" height="168" width="400" /></a></div>
<br />
<br />
<br />
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com3tag:blogger.com,1999:blog-3140428138073969313.post-26712471097833301182014-08-23T09:30:00.002+02:002014-08-23T09:31:29.579+02:00[Unreal Engine 4] Custom Ambient Cubemap Post ProcessWhen posting a <a href="http://oliverm-h.blogspot.de/2014/04/ue4-quick-tip-environment-maps-as-post.html">quick tip about this topic</a> several weeks ago, I wasn't very specific about how to setup the material at all... so here's the missing addendum.<br />
<br />
When comparing the screenshots below you can clearly tell that my simplified version is not physically accurate, as it's missing a fesnel effect which would strengthen reflections at extreme angles. In addition it doesn't take MaterialAO and Specularity into account.<br />
You can however add these missing features if you need them. For further reference you might want to take a look at the PostProcessAmbient.usf shader file to see how epic did it.<br />
<br />
<br />
Material<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ambientcubemapmat01v1kct.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ambientcubemapmat01v1kct.png" height="204" width="640" /></a></div>
<br />
<br />
<br />
Direct Light Only<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ambientcubemap01ufrpk.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ambientcubemap01ufrpk.jpg" height="240" width="320" /></a></div>
<br />
<br />
Built-in Ambient Cubemap PP<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ambientcubemap03w3qnl.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ambientcubemap03w3qnl.jpg" height="240" width="320" /></a></div>
<br />
<br />
Custom Ambient Cubemap PP<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ambientcubemap02a8qts.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ambientcubemap02a8qts.jpg" height="240" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-20949579569476912612014-08-07T15:31:00.002+02:002014-10-30T09:42:47.259+01:00[Unreal Engine 4] Automated Terrain TexturingIn this post I'm going through some material setups to auto-texture a landscape. This can be very handy for landscapes sculpted inside the editor or for any kind of prototyping. Personally I've been using this technique for quickly testing many different landscapes coming from an external terrain generation software.<br />
<br />
<br />
For the automated texturing I'm using 2 common methods: blending textures based on slope and blending based on height.<br />
<br />
<br />
<b>Slope Blending</b><br />
<br />
Slope blending is based on the blue channel of the world space normals.<br />
For the material setup below keep in mind that the 'Angle' parameter has a range of 0-1 which translates to 0°-90°.<br />
0.25 as in this example means Texture B would show up for areas where the slope of the terrain is 77,5° (<i>=1-0.25)*90</i>) or more, Texture A would be mapped to areas with a slope ranging from 0° to 77,5°.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_mat01burcvr.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_mat01burcvr.png" height="128" width="400" /></a></div>
<br />
<br />
<b><br /></b>
<b>Height Blending</b><br />
<br />
Height blending is based on the blue channel of the absolute world position. The 'Height' and 'HeightFalloff' parameters are world space values.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_mat01cgier0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_mat01cgier0.png" height="151" width="400" /></a></div>
<br />
<br />
<br />
<b>Combining Both Methods</b><br />
<br />
For some more advanced texture blending you might want to combine both approaches.<br />
<br />
1.) In this example I want to blend grass and rocks based on slope. However I don't want the grass to show up on top of the mountains, so I'm using an additional height blend as well.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_mat01d1cd00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_mat01d1cd00.png" height="177" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotex1a52f5m.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotex1a52f5m.jpg" height="247" width="320" /></a></div>
<br />
<br />
<br />
<br />
2.) Another example would be some snow on top of the mountains. Using only a height blend would look pretty unnatural, that's why I'm adding a slope blend which gives a more realistic look.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_mat01ewvcmc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_mat01ewvcmc.png" height="166" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotex2aokfgc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotex2aokfgc.jpg" height="247" width="320" /></a></div>
<br />
<br />
<b>Example</b><br />
<br />
My basic material is blending between 2 types of grass (height blending) and 2 types of rock (slope blending).<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_mat02zoka6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_mat02zoka6.jpg" height="165" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_02h5l3o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_02h5l3o.jpg" height="180" width="320" /></a>
<a href="http://abload.de/img/autotexterrain_01ulyv5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_01ulyv5.jpg" height="180" width="320" /></a></div>
<br />
<br />
For the advanced material I've added an additional height blend for some sand when there is supposed to be a lake or ocean and a snow blend (height+slope combined):<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/autotexterrain_mat0192ap9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_mat0192ap9.png" height="272" width="320" /></a>
<a href="http://abload.de/img/autotexterrain_037iald.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/autotexterrain_037iald.jpg" height="225" width="400" /></a></div>
<br />
<br />
<br />
<br />
<b>Download</b><br />
<br />
Well, no download here... all you need to do is copy and paste the code below to your material to get the same nodes as in the advanced example:<br />
<br />
<pre style="background-color: #222222; border: 1px dashed #999999; color: white; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; height: 250px; line-height: 14px; overflow: auto; padding: 5px; width: 75%;"><code>
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_200"
Begin Object Class=EdGraphPin Name="EdGraphPin_3617"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3616"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3615"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3614"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_21"
End Object
Begin Object Name="EdGraphPin_3617"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_Root_2.EdGraphPin_3591"'
End Object
Begin Object Name="EdGraphPin_3616"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_282.EdGraphPin_3810"'
End Object
Begin Object Name="EdGraphPin_3615"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_251.EdGraphPin_3735"'
End Object
Begin Object Name="EdGraphPin_3614"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_201.EdGraphPin_3621"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_21"
A=(Expression=MaterialExpressionLinearInterpolate'"MaterialGraphNode_201.MaterialExpressionLinearInterpolate_22"')
B=(Expression=MaterialExpressionConstant3Vector'"MaterialGraphNode_251.MaterialExpressionConstant3Vector_26"')
Alpha=(Expression=MaterialExpressionPower'"MaterialGraphNode_282.MaterialExpressionPower_14"')
MaterialExpressionEditorX=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_21'
Pins(0)=EdGraphPin'EdGraphPin_3614'
Pins(1)=EdGraphPin'EdGraphPin_3615'
Pins(2)=EdGraphPin'EdGraphPin_3616'
Pins(3)=EdGraphPin'EdGraphPin_3617'
NodePosX=-176
NodeGuid=685B85D844CE0652C97A3C99BF97174B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_201"
Begin Object Class=EdGraphPin Name="EdGraphPin_3621"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3620"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3619"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3618"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_22"
End Object
Begin Object Name="EdGraphPin_3621"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_200.EdGraphPin_3614"'
End Object
Begin Object Name="EdGraphPin_3620"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_225.EdGraphPin_3676"'
End Object
Begin Object Name="EdGraphPin_3619"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_222.EdGraphPin_3669"'
End Object
Begin Object Name="EdGraphPin_3618"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_202.EdGraphPin_3625"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_22"
A=(Expression=MaterialExpressionLinearInterpolate'"MaterialGraphNode_202.MaterialExpressionLinearInterpolate_23"')
B=(Expression=MaterialExpressionConstant3Vector'"MaterialGraphNode_222.MaterialExpressionConstant3Vector_23"')
Alpha=(Expression=MaterialExpressionPower'"MaterialGraphNode_225.MaterialExpressionPower_13"')
MaterialExpressionEditorX=-368
MaterialExpressionEditorY=-192
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_22'
Pins(0)=EdGraphPin'EdGraphPin_3618'
Pins(1)=EdGraphPin'EdGraphPin_3619'
Pins(2)=EdGraphPin'EdGraphPin_3620'
Pins(3)=EdGraphPin'EdGraphPin_3621'
NodePosX=-368
NodePosY=-192
NodeGuid=C9D116674874B161A0AAD398E16B88A2
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_202"
Begin Object Class=EdGraphPin Name="EdGraphPin_3625"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3624"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3623"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3622"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_23"
End Object
Begin Object Name="EdGraphPin_3625"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_201.EdGraphPin_3618"'
End Object
Begin Object Name="EdGraphPin_3624"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_249.EdGraphPin_3733"'
End Object
Begin Object Name="EdGraphPin_3623"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_223.EdGraphPin_3670"'
End Object
Begin Object Name="EdGraphPin_3622"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_248.EdGraphPin_3730"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_23"
A=(Expression=MaterialExpressionLinearInterpolate'"MaterialGraphNode_248.MaterialExpressionLinearInterpolate_24"')
B=(Expression=MaterialExpressionConstant3Vector'"MaterialGraphNode_223.MaterialExpressionConstant3Vector_24"')
Alpha=(Expression=MaterialExpressionMaterialFunctionCall'"MaterialGraphNode_249.MaterialExpressionMaterialFunctionCall_5"')
ConstB=0.500000
MaterialExpressionEditorX=-544
MaterialExpressionEditorY=-400
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_23'
Pins(0)=EdGraphPin'EdGraphPin_3622'
Pins(1)=EdGraphPin'EdGraphPin_3623'
Pins(2)=EdGraphPin'EdGraphPin_3624'
Pins(3)=EdGraphPin'EdGraphPin_3625'
NodePosX=-544
NodePosY=-400
NodeGuid=590CB4DE4B6E2BEBEB68BA9F73082B62
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_203"
Begin Object Class=EdGraphPin Name="EdGraphPin_3626"
End Object
Begin Object Class=MaterialExpressionVertexNormalWS Name="MaterialExpressionVertexNormalWS_14"
End Object
Begin Object Name="EdGraphPin_3626"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_204.EdGraphPin_3627"'
End Object
Begin Object Name="MaterialExpressionVertexNormalWS_14"
MaterialExpressionEditorX=-1760
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionVertexNormalWS'MaterialExpressionVertexNormalWS_14'
Pins(0)=EdGraphPin'EdGraphPin_3626'
NodePosX=-1760
NodePosY=-416
NodeGuid=DD13FC2B4A737B625FDB48ABFB56A05B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_204"
Begin Object Class=EdGraphPin Name="EdGraphPin_3628"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3627"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_30"
End Object
Begin Object Name="EdGraphPin_3628"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_205.EdGraphPin_3629"'
End Object
Begin Object Name="EdGraphPin_3627"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_203.EdGraphPin_3626"'
End Object
Begin Object Name="MaterialExpressionComponentMask_30"
Input=(Expression=MaterialExpressionVertexNormalWS'"MaterialGraphNode_203.MaterialExpressionVertexNormalWS_14"')
B=True
MaterialExpressionEditorX=-1584
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_30'
Pins(0)=EdGraphPin'EdGraphPin_3627'
Pins(1)=EdGraphPin'EdGraphPin_3628'
NodePosX=-1584
NodePosY=-416
NodeGuid=46238FCF49A64AE15B0FB199C65598A4
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_205"
Begin Object Class=EdGraphPin Name="EdGraphPin_3631"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3630"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3629"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_39"
End Object
Begin Object Name="EdGraphPin_3631"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_208.EdGraphPin_3638"'
End Object
Begin Object Name="EdGraphPin_3630"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_210.EdGraphPin_3644"'
End Object
Begin Object Name="EdGraphPin_3629"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_204.EdGraphPin_3628"'
End Object
Begin Object Name="MaterialExpressionSubtract_39"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_204.MaterialExpressionComponentMask_30"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_210.MaterialExpressionScalarParameter_50"')
ConstB=0.500000
MaterialExpressionEditorX=-1472
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_39'
Pins(0)=EdGraphPin'EdGraphPin_3629'
Pins(1)=EdGraphPin'EdGraphPin_3630'
Pins(2)=EdGraphPin'EdGraphPin_3631'
NodePosX=-1472
NodePosY=-416
NodeGuid=FACC47FE4059E4B4B8AAB98E3B5EE43E
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_206"
Begin Object Class=EdGraphPin Name="EdGraphPin_3634"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3633"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3632"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_31"
End Object
Begin Object Name="EdGraphPin_3634"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_219.EdGraphPin_3664"'
End Object
Begin Object Name="EdGraphPin_3633"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_207.EdGraphPin_3637"'
End Object
Begin Object Name="EdGraphPin_3632"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_208.EdGraphPin_3641"'
End Object
Begin Object Name="MaterialExpressionMultiply_31"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_208.MaterialExpressionClamp_31"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_207.MaterialExpressionDivide_39"')
ConstB=2.000000
MaterialExpressionEditorX=-1168
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_31'
Pins(0)=EdGraphPin'EdGraphPin_3632'
Pins(1)=EdGraphPin'EdGraphPin_3633'
Pins(2)=EdGraphPin'EdGraphPin_3634'
NodePosX=-1168
NodePosY=-416
NodeGuid=5B32F5014DBAEEA0E69C27B3C051A0BF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_207"
Begin Object Class=EdGraphPin Name="EdGraphPin_3637"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3636"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3635"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_39"
End Object
Begin Object Name="EdGraphPin_3637"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_206.EdGraphPin_3633"'
End Object
Begin Object Name="EdGraphPin_3636"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_209.EdGraphPin_3643"'
End Object
Begin Object Name="EdGraphPin_3635"
PinName="A"
PinType=(PinCategory="optional")
End Object
Begin Object Name="MaterialExpressionDivide_39"
B=(Expression=MaterialExpressionOneMinus'"MaterialGraphNode_209.MaterialExpressionOneMinus_21"')
MaterialExpressionEditorX=-1472
MaterialExpressionEditorY=-320
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_39'
Pins(0)=EdGraphPin'EdGraphPin_3635'
Pins(1)=EdGraphPin'EdGraphPin_3636'
Pins(2)=EdGraphPin'EdGraphPin_3637'
NodePosX=-1472
NodePosY=-320
NodeGuid=C709A9694402502ADA529EB3B34DF8FA
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_208"
Begin Object Class=EdGraphPin Name="EdGraphPin_3641"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3640"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3639"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3638"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_31"
End Object
Begin Object Name="EdGraphPin_3641"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_206.EdGraphPin_3632"'
End Object
Begin Object Name="EdGraphPin_3640"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3639"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3638"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_205.EdGraphPin_3631"'
End Object
Begin Object Name="MaterialExpressionClamp_31"
Input=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_205.MaterialExpressionSubtract_39"')
MaterialExpressionEditorX=-1360
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_31'
Pins(0)=EdGraphPin'EdGraphPin_3638'
Pins(1)=EdGraphPin'EdGraphPin_3639'
Pins(2)=EdGraphPin'EdGraphPin_3640'
Pins(3)=EdGraphPin'EdGraphPin_3641'
NodePosX=-1360
NodePosY=-416
NodeGuid=25C578CD4C20DDEC7C9137BC7F875A88
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_209"
Begin Object Class=EdGraphPin Name="EdGraphPin_3643"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3642"
End Object
Begin Object Class=MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_21"
End Object
Begin Object Name="EdGraphPin_3643"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_207.EdGraphPin_3636"'
End Object
Begin Object Name="EdGraphPin_3642"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_210.EdGraphPin_3644"'
End Object
Begin Object Name="MaterialExpressionOneMinus_21"
Input=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_210.MaterialExpressionScalarParameter_50"')
MaterialExpressionEditorX=-1568
MaterialExpressionEditorY=-304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionOneMinus'MaterialExpressionOneMinus_21'
Pins(0)=EdGraphPin'EdGraphPin_3642'
Pins(1)=EdGraphPin'EdGraphPin_3643'
NodePosX=-1568
NodePosY=-304
NodeGuid=CD21FB1C4CDC941E4D4330A599582345
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_210"
Begin Object Class=EdGraphPin Name="EdGraphPin_3644"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_50"
End Object
Begin Object Name="EdGraphPin_3644"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_205.EdGraphPin_3630"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_209.EdGraphPin_3642"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_50"
DefaultValue=0.500000
ParameterName="Angle_01"
ExpressionGUID=4551FE154817876FEC73A8A3981C1380
MaterialExpressionEditorX=-1712
MaterialExpressionEditorY=-336
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_50'
Pins(0)=EdGraphPin'EdGraphPin_3644'
NodePosX=-1712
NodePosY=-336
bCanRenameNode=True
NodeGuid=A7669FBD43E9CDC41A441C9E675E7A24
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_211"
Begin Object Class=EdGraphPin Name="EdGraphPin_3645"
End Object
Begin Object Class=MaterialExpressionVertexNormalWS Name="MaterialExpressionVertexNormalWS_15"
End Object
Begin Object Name="EdGraphPin_3645"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_212.EdGraphPin_3646"'
End Object
Begin Object Name="MaterialExpressionVertexNormalWS_15"
MaterialExpressionEditorX=-1728
MaterialExpressionEditorY=-192
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionVertexNormalWS'MaterialExpressionVertexNormalWS_15'
Pins(0)=EdGraphPin'EdGraphPin_3645'
NodePosX=-1728
NodePosY=-192
NodeGuid=B83897C04557D220C7886882DFDD17FF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_212"
Begin Object Class=EdGraphPin Name="EdGraphPin_3647"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3646"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_31"
End Object
Begin Object Name="EdGraphPin_3647"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_213.EdGraphPin_3648"'
End Object
Begin Object Name="EdGraphPin_3646"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_211.EdGraphPin_3645"'
End Object
Begin Object Name="MaterialExpressionComponentMask_31"
Input=(Expression=MaterialExpressionVertexNormalWS'"MaterialGraphNode_211.MaterialExpressionVertexNormalWS_15"')
B=True
MaterialExpressionEditorX=-1568
MaterialExpressionEditorY=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_31'
Pins(0)=EdGraphPin'EdGraphPin_3646'
Pins(1)=EdGraphPin'EdGraphPin_3647'
NodePosX=-1568
NodePosY=-176
NodeGuid=6529C7294AB1B5A79995049250D46015
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_213"
Begin Object Class=EdGraphPin Name="EdGraphPin_3650"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3649"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3648"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_40"
End Object
Begin Object Name="EdGraphPin_3650"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_216.EdGraphPin_3657"'
End Object
Begin Object Name="EdGraphPin_3649"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_218.EdGraphPin_3663"'
End Object
Begin Object Name="EdGraphPin_3648"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_212.EdGraphPin_3647"'
End Object
Begin Object Name="MaterialExpressionSubtract_40"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_212.MaterialExpressionComponentMask_31"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_218.MaterialExpressionScalarParameter_51"')
ConstB=0.500000
MaterialExpressionEditorX=-1456
MaterialExpressionEditorY=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_40'
Pins(0)=EdGraphPin'EdGraphPin_3648'
Pins(1)=EdGraphPin'EdGraphPin_3649'
Pins(2)=EdGraphPin'EdGraphPin_3650'
NodePosX=-1456
NodePosY=-176
NodeGuid=AC17506540C2EC0813DAD6B472840269
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_214"
Begin Object Class=EdGraphPin Name="EdGraphPin_3653"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3652"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3651"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_32"
End Object
Begin Object Name="EdGraphPin_3653"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_220.EdGraphPin_3666"'
End Object
Begin Object Name="EdGraphPin_3652"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_215.EdGraphPin_3656"'
End Object
Begin Object Name="EdGraphPin_3651"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_216.EdGraphPin_3660"'
End Object
Begin Object Name="MaterialExpressionMultiply_32"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_216.MaterialExpressionClamp_32"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_215.MaterialExpressionDivide_40"')
ConstB=2.000000
MaterialExpressionEditorX=-1152
MaterialExpressionEditorY=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_32'
Pins(0)=EdGraphPin'EdGraphPin_3651'
Pins(1)=EdGraphPin'EdGraphPin_3652'
Pins(2)=EdGraphPin'EdGraphPin_3653'
NodePosX=-1152
NodePosY=-176
NodeGuid=122BF31C429711E5139476B21CE801DE
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_215"
Begin Object Class=EdGraphPin Name="EdGraphPin_3656"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3655"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3654"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_40"
End Object
Begin Object Name="EdGraphPin_3656"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_214.EdGraphPin_3652"'
End Object
Begin Object Name="EdGraphPin_3655"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_217.EdGraphPin_3662"'
End Object
Begin Object Name="EdGraphPin_3654"
PinName="A"
PinType=(PinCategory="optional")
End Object
Begin Object Name="MaterialExpressionDivide_40"
B=(Expression=MaterialExpressionOneMinus'"MaterialGraphNode_217.MaterialExpressionOneMinus_22"')
MaterialExpressionEditorX=-1456
MaterialExpressionEditorY=-80
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_40'
Pins(0)=EdGraphPin'EdGraphPin_3654'
Pins(1)=EdGraphPin'EdGraphPin_3655'
Pins(2)=EdGraphPin'EdGraphPin_3656'
NodePosX=-1456
NodePosY=-80
NodeGuid=E4C8594C451E84DD76ADA78301C2565F
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_216"
Begin Object Class=EdGraphPin Name="EdGraphPin_3660"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3659"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3658"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3657"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_32"
End Object
Begin Object Name="EdGraphPin_3660"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_214.EdGraphPin_3651"'
End Object
Begin Object Name="EdGraphPin_3659"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3658"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3657"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_213.EdGraphPin_3650"'
End Object
Begin Object Name="MaterialExpressionClamp_32"
Input=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_213.MaterialExpressionSubtract_40"')
MaterialExpressionEditorX=-1344
MaterialExpressionEditorY=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_32'
Pins(0)=EdGraphPin'EdGraphPin_3657'
Pins(1)=EdGraphPin'EdGraphPin_3658'
Pins(2)=EdGraphPin'EdGraphPin_3659'
Pins(3)=EdGraphPin'EdGraphPin_3660'
NodePosX=-1344
NodePosY=-176
NodeGuid=00F4E17B400A8A73B23A139FD1A83CEB
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_217"
Begin Object Class=EdGraphPin Name="EdGraphPin_3662"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3661"
End Object
Begin Object Class=MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_22"
End Object
Begin Object Name="EdGraphPin_3662"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_215.EdGraphPin_3655"'
End Object
Begin Object Name="EdGraphPin_3661"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_218.EdGraphPin_3663"'
End Object
Begin Object Name="MaterialExpressionOneMinus_22"
Input=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_218.MaterialExpressionScalarParameter_51"')
MaterialExpressionEditorX=-1552
MaterialExpressionEditorY=-64
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionOneMinus'MaterialExpressionOneMinus_22'
Pins(0)=EdGraphPin'EdGraphPin_3661'
Pins(1)=EdGraphPin'EdGraphPin_3662'
NodePosX=-1552
NodePosY=-64
NodeGuid=9B6806534F02EC1DC77FA4A0A9011275
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_218"
Begin Object Class=EdGraphPin Name="EdGraphPin_3663"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_51"
End Object
Begin Object Name="EdGraphPin_3663"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_213.EdGraphPin_3649"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_217.EdGraphPin_3661"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_51"
DefaultValue=0.250000
ParameterName="Angle_02"
ExpressionGUID=E1ADFEF34ACFD9EB972B03B20229CB34
MaterialExpressionEditorX=-1696
MaterialExpressionEditorY=-96
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_51'
Pins(0)=EdGraphPin'EdGraphPin_3663'
NodePosX=-1696
NodePosY=-96
bCanRenameNode=True
NodeGuid=5E4287194D9FC7C2B3316B98E53EC160
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_219"
Begin Object Class=EdGraphPin Name="EdGraphPin_3665"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3664"
End Object
Begin Object Class=MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_23"
End Object
Begin Object Name="EdGraphPin_3665"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_224.EdGraphPin_3671"'
End Object
Begin Object Name="EdGraphPin_3664"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_206.EdGraphPin_3634"'
End Object
Begin Object Name="MaterialExpressionOneMinus_23"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_206.MaterialExpressionMultiply_31"')
MaterialExpressionEditorX=-1072
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionOneMinus'MaterialExpressionOneMinus_23'
Pins(0)=EdGraphPin'EdGraphPin_3664'
Pins(1)=EdGraphPin'EdGraphPin_3665'
NodePosX=-1072
NodePosY=-416
NodeGuid=066F88624F2514EC80B5269A2DFD5BD0
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_220"
Begin Object Class=EdGraphPin Name="EdGraphPin_3667"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3666"
End Object
Begin Object Class=MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_24"
End Object
Begin Object Name="EdGraphPin_3667"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_225.EdGraphPin_3674"'
End Object
Begin Object Name="EdGraphPin_3666"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_214.EdGraphPin_3653"'
End Object
Begin Object Name="MaterialExpressionOneMinus_24"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_214.MaterialExpressionMultiply_32"')
MaterialExpressionEditorX=-1056
MaterialExpressionEditorY=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionOneMinus'MaterialExpressionOneMinus_24'
Pins(0)=EdGraphPin'EdGraphPin_3666'
Pins(1)=EdGraphPin'EdGraphPin_3667'
NodePosX=-1056
NodePosY=-176
NodeGuid=E47C052D429FFCA21C009C85A3B6C83F
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_221"
Begin Object Class=EdGraphPin Name="EdGraphPin_3668"
End Object
Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_22"
End Object
Begin Object Name="EdGraphPin_3668"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_248.EdGraphPin_3728"'
End Object
Begin Object Name="MaterialExpressionConstant3Vector_22"
Constant=(R=0.047405,G=0.095000,B=0.015675,A=0.000000)
MaterialExpressionEditorX=-1216
MaterialExpressionEditorY=-560
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Desc="Grass_02"
End Object
MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_22'
Pins(0)=EdGraphPin'EdGraphPin_3668'
NodePosX=-1216
NodePosY=-560
NodeComment="Grass_02"
NodeGuid=0969D2B0492469E94036E58652F265FE
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_222"
Begin Object Class=EdGraphPin Name="EdGraphPin_3669"
End Object
Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_23"
End Object
Begin Object Name="EdGraphPin_3669"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_201.EdGraphPin_3619"'
End Object
Begin Object Name="MaterialExpressionConstant3Vector_23"
Constant=(R=0.380000,G=0.380000,B=0.380000,A=0.000000)
MaterialExpressionEditorX=-560
MaterialExpressionEditorY=-144
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Desc="Rock_02"
End Object
MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_23'
Pins(0)=EdGraphPin'EdGraphPin_3669'
NodePosX=-560
NodePosY=-144
NodeComment="Rock_02"
NodeGuid=BFF7B582403BEB385783B18AE84396E0
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_223"
Begin Object Class=EdGraphPin Name="EdGraphPin_3670"
End Object
Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_24"
End Object
Begin Object Name="EdGraphPin_3670"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_202.EdGraphPin_3623"'
End Object
Begin Object Name="MaterialExpressionConstant3Vector_24"
Constant=(R=0.087570,G=0.090000,B=0.065700,A=0.000000)
MaterialExpressionEditorX=-752
MaterialExpressionEditorY=-368
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Desc="Rock_01"
End Object
MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_24'
Pins(0)=EdGraphPin'EdGraphPin_3670'
NodePosX=-752
NodePosY=-368
NodeComment="Rock_01"
NodeGuid=4DE99B3444870DEC488DCF894DFF0A67
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_224"
Begin Object Class=EdGraphPin Name="EdGraphPin_3673"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3672"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3671"
End Object
Begin Object Class=MaterialExpressionPower Name="MaterialExpressionPower_12"
End Object
Begin Object Name="EdGraphPin_3673"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_249.EdGraphPin_3731"'
End Object
Begin Object Name="EdGraphPin_3672"
PinName="Exp"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_226.EdGraphPin_3677"'
End Object
Begin Object Name="EdGraphPin_3671"
PinName="Base"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_219.EdGraphPin_3665"'
End Object
Begin Object Name="MaterialExpressionPower_12"
Base=(Expression=MaterialExpressionOneMinus'"MaterialGraphNode_219.MaterialExpressionOneMinus_23"')
Exponent=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_226.MaterialExpressionScalarParameter_52"')
MaterialExpressionEditorX=-976
MaterialExpressionEditorY=-416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionPower'MaterialExpressionPower_12'
Pins(0)=EdGraphPin'EdGraphPin_3671'
Pins(1)=EdGraphPin'EdGraphPin_3672'
Pins(2)=EdGraphPin'EdGraphPin_3673'
NodePosX=-976
NodePosY=-416
NodeGuid=DB8CAACF49C1DE9502444EA3281B35FC
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_225"
Begin Object Class=EdGraphPin Name="EdGraphPin_3676"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3675"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3674"
End Object
Begin Object Class=MaterialExpressionPower Name="MaterialExpressionPower_13"
End Object
Begin Object Name="EdGraphPin_3676"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_201.EdGraphPin_3620"'
End Object
Begin Object Name="EdGraphPin_3675"
PinName="Exp"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_250.EdGraphPin_3734"'
End Object
Begin Object Name="EdGraphPin_3674"
PinName="Base"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_220.EdGraphPin_3667"'
End Object
Begin Object Name="MaterialExpressionPower_13"
Base=(Expression=MaterialExpressionOneMinus'"MaterialGraphNode_220.MaterialExpressionOneMinus_24"')
Exponent=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_250.MaterialExpressionScalarParameter_57"')
MaterialExpressionEditorX=-976
MaterialExpressionEditorY=-176
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionPower'MaterialExpressionPower_13'
Pins(0)=EdGraphPin'EdGraphPin_3674'
Pins(1)=EdGraphPin'EdGraphPin_3675'
Pins(2)=EdGraphPin'EdGraphPin_3676'
NodePosX=-976
NodePosY=-176
NodeGuid=B886E5964F1BD2910CFBFA97E21DE1DA
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_226"
Begin Object Class=EdGraphPin Name="EdGraphPin_3677"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_52"
End Object
Begin Object Name="EdGraphPin_3677"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_224.EdGraphPin_3672"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_52"
DefaultValue=4.000000
ParameterName="Hardness_01"
ExpressionGUID=412EAB724DDEAB5272C68B944ED22B2F
MaterialExpressionEditorX=-1136
MaterialExpressionEditorY=-320
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_52'
Pins(0)=EdGraphPin'EdGraphPin_3677'
NodePosX=-1136
NodePosY=-320
bCanRenameNode=True
NodeGuid=E32245EC431AB189DE02A5B342ECFEC1
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_227"
Begin Object Class=EdGraphPin Name="EdGraphPin_3678"
End Object
Begin Object Class=MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_14"
End Object
Begin Object Name="EdGraphPin_3678"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_228.EdGraphPin_3679"'
End Object
Begin Object Name="MaterialExpressionWorldPosition_14"
MaterialExpressionEditorX=-1728
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_14'
Pins(0)=EdGraphPin'EdGraphPin_3678'
NodePosX=-1728
NodePosY=32
NodeGuid=F0AD71DE4DBE66FDAA1AF29A4F0B480D
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_228"
Begin Object Class=EdGraphPin Name="EdGraphPin_3680"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3679"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_32"
End Object
Begin Object Name="EdGraphPin_3680"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_231.EdGraphPin_3683"'
End Object
Begin Object Name="EdGraphPin_3679"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_227.EdGraphPin_3678"'
End Object
Begin Object Name="MaterialExpressionComponentMask_32"
Input=(Expression=MaterialExpressionWorldPosition'"MaterialGraphNode_227.MaterialExpressionWorldPosition_14"')
B=True
MaterialExpressionEditorX=-1520
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_32'
Pins(0)=EdGraphPin'EdGraphPin_3679'
Pins(1)=EdGraphPin'EdGraphPin_3680'
NodePosX=-1520
NodePosY=32
NodeGuid=3760DAA349F7C3E4B572D2A3DA9FFC28
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_229"
Begin Object Class=EdGraphPin Name="EdGraphPin_3681"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_53"
End Object
Begin Object Name="EdGraphPin_3681"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_233.EdGraphPin_3689"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_234.EdGraphPin_3693"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_53"
DefaultValue=4096.000000
ParameterName="HeightFalloff_02"
ExpressionGUID=2CB58F574B992AABF1FB2686F04BD615
MaterialExpressionEditorX=-1824
MaterialExpressionEditorY=144
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_53'
Pins(0)=EdGraphPin'EdGraphPin_3681'
NodePosX=-1824
NodePosY=144
bCanRenameNode=True
NodeGuid=1C910FE64D2EFA5AB280DB9610D5EDCA
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_230"
Begin Object Class=EdGraphPin Name="EdGraphPin_3682"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_54"
End Object
Begin Object Name="EdGraphPin_3682"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_232.EdGraphPin_3686"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_54"
DefaultValue=3072.000000
ParameterName="Height_02"
ExpressionGUID=6B81D03C4F97587FBD0796A2FAB80CE2
MaterialExpressionEditorX=-1664
MaterialExpressionEditorY=112
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_54'
Pins(0)=EdGraphPin'EdGraphPin_3682'
NodePosX=-1664
NodePosY=112
bCanRenameNode=True
NodeGuid=D2C031A54C55CB5815A8A698BB039C54
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_231"
Begin Object Class=EdGraphPin Name="EdGraphPin_3685"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3684"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3683"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_41"
End Object
Begin Object Name="EdGraphPin_3685"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_234.EdGraphPin_3692"'
End Object
Begin Object Name="EdGraphPin_3684"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_232.EdGraphPin_3688"'
End Object
Begin Object Name="EdGraphPin_3683"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_228.EdGraphPin_3680"'
End Object
Begin Object Name="MaterialExpressionSubtract_41"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_228.MaterialExpressionComponentMask_32"')
B=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_232.MaterialExpressionSubtract_42"')
MaterialExpressionEditorX=-1392
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_41'
Pins(0)=EdGraphPin'EdGraphPin_3683'
Pins(1)=EdGraphPin'EdGraphPin_3684'
Pins(2)=EdGraphPin'EdGraphPin_3685'
NodePosX=-1392
NodePosY=32
NodeGuid=6E2DA8724928551C55E11086D7C17A88
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_232"
Begin Object Class=EdGraphPin Name="EdGraphPin_3688"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3687"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3686"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_42"
End Object
Begin Object Name="EdGraphPin_3688"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_231.EdGraphPin_3684"'
End Object
Begin Object Name="EdGraphPin_3687"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_233.EdGraphPin_3691"'
End Object
Begin Object Name="EdGraphPin_3686"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_230.EdGraphPin_3682"'
End Object
Begin Object Name="MaterialExpressionSubtract_42"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_230.MaterialExpressionScalarParameter_54"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_233.MaterialExpressionDivide_41"')
MaterialExpressionEditorX=-1520
MaterialExpressionEditorY=128
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_42'
Pins(0)=EdGraphPin'EdGraphPin_3686'
Pins(1)=EdGraphPin'EdGraphPin_3687'
Pins(2)=EdGraphPin'EdGraphPin_3688'
NodePosX=-1520
NodePosY=128
NodeGuid=3EACB8104C7909D79DC47E9B1F0D1D6A
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_233"
Begin Object Class=EdGraphPin Name="EdGraphPin_3691"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3690"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3689"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_41"
End Object
Begin Object Name="EdGraphPin_3691"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_232.EdGraphPin_3687"'
End Object
Begin Object Name="EdGraphPin_3690"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3689"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_229.EdGraphPin_3681"'
End Object
Begin Object Name="MaterialExpressionDivide_41"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_229.MaterialExpressionScalarParameter_53"')
MaterialExpressionEditorX=-1648
MaterialExpressionEditorY=192
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_41'
Pins(0)=EdGraphPin'EdGraphPin_3689'
Pins(1)=EdGraphPin'EdGraphPin_3690'
Pins(2)=EdGraphPin'EdGraphPin_3691'
NodePosX=-1648
NodePosY=192
NodeGuid=E827C8E641A490E8CA2A1492732F5D75
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_234"
Begin Object Class=EdGraphPin Name="EdGraphPin_3694"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3693"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3692"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_42"
End Object
Begin Object Name="EdGraphPin_3694"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_235.EdGraphPin_3695"'
End Object
Begin Object Name="EdGraphPin_3693"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_229.EdGraphPin_3681"'
End Object
Begin Object Name="EdGraphPin_3692"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_231.EdGraphPin_3685"'
End Object
Begin Object Name="MaterialExpressionDivide_42"
A=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_231.MaterialExpressionSubtract_41"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_229.MaterialExpressionScalarParameter_53"')
MaterialExpressionEditorX=-1280
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_42'
Pins(0)=EdGraphPin'EdGraphPin_3692'
Pins(1)=EdGraphPin'EdGraphPin_3693'
Pins(2)=EdGraphPin'EdGraphPin_3694'
NodePosX=-1280
NodePosY=32
NodeGuid=4B5B42AE4B9E276D6DC054B21B1FE06B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_235"
Begin Object Class=EdGraphPin Name="EdGraphPin_3698"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3697"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3696"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3695"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_33"
End Object
Begin Object Name="EdGraphPin_3698"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_236.EdGraphPin_3699"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_236.EdGraphPin_3700"'
End Object
Begin Object Name="EdGraphPin_3697"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3696"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3695"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_234.EdGraphPin_3694"'
End Object
Begin Object Name="MaterialExpressionClamp_33"
Input=(Expression=MaterialExpressionDivide'"MaterialGraphNode_234.MaterialExpressionDivide_42"')
MaterialExpressionEditorX=-1184
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_33'
Pins(0)=EdGraphPin'EdGraphPin_3695'
Pins(1)=EdGraphPin'EdGraphPin_3696'
Pins(2)=EdGraphPin'EdGraphPin_3697'
Pins(3)=EdGraphPin'EdGraphPin_3698'
NodePosX=-1184
NodePosY=32
NodeGuid=7C7CF79E4DEA71ECD916ED9EB4A1EF18
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_236"
Begin Object Class=EdGraphPin Name="EdGraphPin_3701"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3700"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3699"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_33"
End Object
Begin Object Name="EdGraphPin_3701"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_249.EdGraphPin_3732"'
End Object
Begin Object Name="EdGraphPin_3700"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_235.EdGraphPin_3698"'
End Object
Begin Object Name="EdGraphPin_3699"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_235.EdGraphPin_3698"'
End Object
Begin Object Name="MaterialExpressionMultiply_33"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_235.MaterialExpressionClamp_33"')
B=(Expression=MaterialExpressionClamp'"MaterialGraphNode_235.MaterialExpressionClamp_33"')
MaterialExpressionEditorX=-976
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_33'
Pins(0)=EdGraphPin'EdGraphPin_3699'
Pins(1)=EdGraphPin'EdGraphPin_3700'
Pins(2)=EdGraphPin'EdGraphPin_3701'
NodePosX=-976
NodePosY=32
NodeGuid=A97F383D496A9E1D6088AB9F1FFC69ED
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_237"
Begin Object Class=EdGraphPin Name="EdGraphPin_3702"
End Object
Begin Object Class=MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_15"
End Object
Begin Object Name="EdGraphPin_3702"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_238.EdGraphPin_3703"'
End Object
Begin Object Name="MaterialExpressionWorldPosition_15"
MaterialExpressionEditorX=-1760
MaterialExpressionEditorY=-704
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_15'
Pins(0)=EdGraphPin'EdGraphPin_3702'
NodePosX=-1760
NodePosY=-704
NodeGuid=3427F1F643C951B8C0176D932EC62574
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_238"
Begin Object Class=EdGraphPin Name="EdGraphPin_3704"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3703"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_33"
End Object
Begin Object Name="EdGraphPin_3704"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_241.EdGraphPin_3707"'
End Object
Begin Object Name="EdGraphPin_3703"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_237.EdGraphPin_3702"'
End Object
Begin Object Name="MaterialExpressionComponentMask_33"
Input=(Expression=MaterialExpressionWorldPosition'"MaterialGraphNode_237.MaterialExpressionWorldPosition_15"')
B=True
MaterialExpressionEditorX=-1552
MaterialExpressionEditorY=-704
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_33'
Pins(0)=EdGraphPin'EdGraphPin_3703'
Pins(1)=EdGraphPin'EdGraphPin_3704'
NodePosX=-1552
NodePosY=-704
NodeGuid=27DA58D749D886A70C37ADA15F888738
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_239"
Begin Object Class=EdGraphPin Name="EdGraphPin_3705"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_55"
End Object
Begin Object Name="EdGraphPin_3705"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_243.EdGraphPin_3713"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_244.EdGraphPin_3717"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_55"
DefaultValue=1024.000000
ParameterName="HeightFalloff_01"
ExpressionGUID=80AB991643DDB3B75DE964BF61B26B88
MaterialExpressionEditorX=-1856
MaterialExpressionEditorY=-592
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_55'
Pins(0)=EdGraphPin'EdGraphPin_3705'
NodePosX=-1856
NodePosY=-592
bCanRenameNode=True
NodeGuid=9A5066AE41E39EEF782B419D733B6A28
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_240"
Begin Object Class=EdGraphPin Name="EdGraphPin_3706"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_56"
End Object
Begin Object Name="EdGraphPin_3706"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_242.EdGraphPin_3710"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_56"
DefaultValue=2048.000000
ParameterName="Height_01"
ExpressionGUID=B5CDC0344520049AFDEC3DB66B8F9B31
MaterialExpressionEditorX=-1696
MaterialExpressionEditorY=-624
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_56'
Pins(0)=EdGraphPin'EdGraphPin_3706'
NodePosX=-1696
NodePosY=-624
bCanRenameNode=True
NodeGuid=99E0BF0E4DCA6421407FDEA8DA288504
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_241"
Begin Object Class=EdGraphPin Name="EdGraphPin_3709"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3708"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3707"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_43"
End Object
Begin Object Name="EdGraphPin_3709"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_244.EdGraphPin_3716"'
End Object
Begin Object Name="EdGraphPin_3708"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_242.EdGraphPin_3712"'
End Object
Begin Object Name="EdGraphPin_3707"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_238.EdGraphPin_3704"'
End Object
Begin Object Name="MaterialExpressionSubtract_43"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_238.MaterialExpressionComponentMask_33"')
B=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_242.MaterialExpressionSubtract_44"')
MaterialExpressionEditorX=-1424
MaterialExpressionEditorY=-704
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_43'
Pins(0)=EdGraphPin'EdGraphPin_3707'
Pins(1)=EdGraphPin'EdGraphPin_3708'
Pins(2)=EdGraphPin'EdGraphPin_3709'
NodePosX=-1424
NodePosY=-704
NodeGuid=95756A954B21BEFEF248BF9A048AC946
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_242"
Begin Object Class=EdGraphPin Name="EdGraphPin_3712"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3711"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3710"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_44"
End Object
Begin Object Name="EdGraphPin_3712"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_241.EdGraphPin_3708"'
End Object
Begin Object Name="EdGraphPin_3711"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_243.EdGraphPin_3715"'
End Object
Begin Object Name="EdGraphPin_3710"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_240.EdGraphPin_3706"'
End Object
Begin Object Name="MaterialExpressionSubtract_44"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_240.MaterialExpressionScalarParameter_56"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_243.MaterialExpressionDivide_43"')
MaterialExpressionEditorX=-1552
MaterialExpressionEditorY=-608
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_44'
Pins(0)=EdGraphPin'EdGraphPin_3710'
Pins(1)=EdGraphPin'EdGraphPin_3711'
Pins(2)=EdGraphPin'EdGraphPin_3712'
NodePosX=-1552
NodePosY=-608
NodeGuid=526F8EFA40235BD2E8C59F841325413A
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_243"
Begin Object Class=EdGraphPin Name="EdGraphPin_3715"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3714"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3713"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_43"
End Object
Begin Object Name="EdGraphPin_3715"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_242.EdGraphPin_3711"'
End Object
Begin Object Name="EdGraphPin_3714"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3713"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_239.EdGraphPin_3705"'
End Object
Begin Object Name="MaterialExpressionDivide_43"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_239.MaterialExpressionScalarParameter_55"')
MaterialExpressionEditorX=-1680
MaterialExpressionEditorY=-544
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_43'
Pins(0)=EdGraphPin'EdGraphPin_3713'
Pins(1)=EdGraphPin'EdGraphPin_3714'
Pins(2)=EdGraphPin'EdGraphPin_3715'
NodePosX=-1680
NodePosY=-544
NodeGuid=7183623A45A681737488E0BC13854336
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_244"
Begin Object Class=EdGraphPin Name="EdGraphPin_3718"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3717"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3716"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_44"
End Object
Begin Object Name="EdGraphPin_3718"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_245.EdGraphPin_3719"'
End Object
Begin Object Name="EdGraphPin_3717"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_239.EdGraphPin_3705"'
End Object
Begin Object Name="EdGraphPin_3716"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_241.EdGraphPin_3709"'
End Object
Begin Object Name="MaterialExpressionDivide_44"
A=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_241.MaterialExpressionSubtract_43"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_239.MaterialExpressionScalarParameter_55"')
MaterialExpressionEditorX=-1312
MaterialExpressionEditorY=-704
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_44'
Pins(0)=EdGraphPin'EdGraphPin_3716'
Pins(1)=EdGraphPin'EdGraphPin_3717'
Pins(2)=EdGraphPin'EdGraphPin_3718'
NodePosX=-1312
NodePosY=-704
NodeGuid=DAD0EB4C4F95B6B7746EB48FF7677C32
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_245"
Begin Object Class=EdGraphPin Name="EdGraphPin_3722"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3721"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3720"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3719"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_34"
End Object
Begin Object Name="EdGraphPin_3722"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_246.EdGraphPin_3723"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_246.EdGraphPin_3724"'
End Object
Begin Object Name="EdGraphPin_3721"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3720"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3719"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_244.EdGraphPin_3718"'
End Object
Begin Object Name="MaterialExpressionClamp_34"
Input=(Expression=MaterialExpressionDivide'"MaterialGraphNode_244.MaterialExpressionDivide_44"')
MaterialExpressionEditorX=-1216
MaterialExpressionEditorY=-704
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_34'
Pins(0)=EdGraphPin'EdGraphPin_3719'
Pins(1)=EdGraphPin'EdGraphPin_3720'
Pins(2)=EdGraphPin'EdGraphPin_3721'
Pins(3)=EdGraphPin'EdGraphPin_3722'
NodePosX=-1216
NodePosY=-704
NodeGuid=C5F6D7FA4F719C51F9D2E1A615B58EB6
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_246"
Begin Object Class=EdGraphPin Name="EdGraphPin_3725"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3724"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3723"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_34"
End Object
Begin Object Name="EdGraphPin_3725"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_248.EdGraphPin_3729"'
End Object
Begin Object Name="EdGraphPin_3724"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_245.EdGraphPin_3722"'
End Object
Begin Object Name="EdGraphPin_3723"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_245.EdGraphPin_3722"'
End Object
Begin Object Name="MaterialExpressionMultiply_34"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_245.MaterialExpressionClamp_34"')
B=(Expression=MaterialExpressionClamp'"MaterialGraphNode_245.MaterialExpressionClamp_34"')
MaterialExpressionEditorX=-1008
MaterialExpressionEditorY=-704
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_34'
Pins(0)=EdGraphPin'EdGraphPin_3723'
Pins(1)=EdGraphPin'EdGraphPin_3724'
Pins(2)=EdGraphPin'EdGraphPin_3725'
NodePosX=-1008
NodePosY=-704
NodeGuid=B248EB0E481FC1CDA313C19342D82AA9
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_247"
Begin Object Class=EdGraphPin Name="EdGraphPin_3726"
End Object
Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_25"
End Object
Begin Object Name="EdGraphPin_3726"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_263.EdGraphPin_3762"'
End Object
Begin Object Name="MaterialExpressionConstant3Vector_25"
Constant=(R=0.020904,G=0.110000,B=0.018700,A=0.000000)
MaterialExpressionEditorX=-1232
MaterialExpressionEditorY=-848
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Desc="Grass_01"
End Object
MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_25'
Pins(0)=EdGraphPin'EdGraphPin_3726'
NodePosX=-1232
NodePosY=-848
NodeComment="Grass_01"
NodeGuid=8415A76C46467C3EB7606AA84279BE90
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_248"
Begin Object Class=EdGraphPin Name="EdGraphPin_3730"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3729"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3728"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3727"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_24"
End Object
Begin Object Name="EdGraphPin_3730"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_202.EdGraphPin_3622"'
End Object
Begin Object Name="EdGraphPin_3729"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_246.EdGraphPin_3725"'
End Object
Begin Object Name="EdGraphPin_3728"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_221.EdGraphPin_3668"'
End Object
Begin Object Name="EdGraphPin_3727"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_263.EdGraphPin_3764"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_24"
A=(Expression=MaterialExpressionLinearInterpolate'"MaterialGraphNode_263.MaterialExpressionLinearInterpolate_25"')
B=(Expression=MaterialExpressionConstant3Vector'"MaterialGraphNode_221.MaterialExpressionConstant3Vector_22"')
Alpha=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_246.MaterialExpressionMultiply_34"')
MaterialExpressionEditorX=-816
MaterialExpressionEditorY=-608
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_24'
Pins(0)=EdGraphPin'EdGraphPin_3727'
Pins(1)=EdGraphPin'EdGraphPin_3728'
Pins(2)=EdGraphPin'EdGraphPin_3729'
Pins(3)=EdGraphPin'EdGraphPin_3730'
NodePosX=-816
NodePosY=-608
NodeGuid=B69B7694402D6699A98CF7B42A0A558D
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_249"
Begin Object Class=EdGraphPin Name="EdGraphPin_3733"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3732"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3731"
End Object
Begin Object Class=MaterialExpressionMaterialFunctionCall Name="MaterialExpressionMaterialFunctionCall_5"
End Object
Begin Object Name="EdGraphPin_3733"
PinName="Result"
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_202.EdGraphPin_3624"'
End Object
Begin Object Name="EdGraphPin_3732"
PinName="Base (V3)"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_236.EdGraphPin_3701"'
End Object
Begin Object Name="EdGraphPin_3731"
PinName="Blend (V3)"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_224.EdGraphPin_3673"'
End Object
Begin Object Name="MaterialExpressionMaterialFunctionCall_5"
MaterialFunction=MaterialFunction'/Engine/Functions/Engine_MaterialFunctions03/Blends/Blend_Lighten.Blend_Lighten'
FunctionInputs(0)=(ExpressionInputId=A591DEF24B8DE9173A27AE80DCEF3259,Input=(Expression=MaterialExpressionPower'"MaterialGraphNode_224.MaterialExpressionPower_12"',InputName="Blend"))
FunctionInputs(1)=(ExpressionInputId=A2AC794848506B955B2643B4D7D5E64E,Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_236.MaterialExpressionMultiply_33"',InputName="Base"))
FunctionOutputs(0)=(ExpressionOutputId=085286B14E9452E3918853BB8CB1AB7D,Output=(OutputName="Result"))
MaterialExpressionEditorX=-768
MaterialExpressionEditorY=-208
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Outputs(0)=(OutputName="Result")
End Object
MaterialExpression=MaterialExpressionMaterialFunctionCall'MaterialExpressionMaterialFunctionCall_5'
Pins(0)=EdGraphPin'EdGraphPin_3731'
Pins(1)=EdGraphPin'EdGraphPin_3732'
Pins(2)=EdGraphPin'EdGraphPin_3733'
NodePosX=-768
NodePosY=-208
NodeGuid=D0FBF62C4190EADA814426B784C62251
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_250"
Begin Object Class=EdGraphPin Name="EdGraphPin_3734"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_57"
End Object
Begin Object Name="EdGraphPin_3734"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_225.EdGraphPin_3675"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_57"
DefaultValue=4.000000
ParameterName="Hardness_02"
ExpressionGUID=5A3302D048FE7112F7D1A5AF79644FE1
MaterialExpressionEditorX=-1136
MaterialExpressionEditorY=-80
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_57'
Pins(0)=EdGraphPin'EdGraphPin_3734'
NodePosX=-1136
NodePosY=-80
bCanRenameNode=True
NodeGuid=64FE653947ED40BA7E1CD58ABA0D637B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_251"
Begin Object Class=EdGraphPin Name="EdGraphPin_3735"
End Object
Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_26"
End Object
Begin Object Name="EdGraphPin_3735"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_200.EdGraphPin_3615"'
End Object
Begin Object Name="MaterialExpressionConstant3Vector_26"
Constant=(R=0.770000,G=0.770000,B=0.770000,A=0.000000)
MaterialExpressionEditorX=-352
MaterialExpressionEditorY=32
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Desc="Snow"
End Object
MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_26'
Pins(0)=EdGraphPin'EdGraphPin_3735'
NodePosX=-352
NodePosY=32
NodeComment="Snow"
NodeGuid=BF6CA6E14F8EB00A25A0EDA722544F24
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_252"
Begin Object Class=EdGraphPin Name="EdGraphPin_3736"
End Object
Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_27"
End Object
Begin Object Name="EdGraphPin_3736"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_263.EdGraphPin_3761"'
End Object
Begin Object Name="MaterialExpressionConstant3Vector_27"
Constant=(R=0.165000,G=0.143344,B=0.078375,A=0.000000)
MaterialExpressionEditorX=-1232
MaterialExpressionEditorY=-1104
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
Desc="Sand"
End Object
MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_27'
Pins(0)=EdGraphPin'EdGraphPin_3736'
NodePosX=-1232
NodePosY=-1104
NodeComment="Sand"
NodeGuid=7B05252241914BF93A819A8AF685F6AA
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_253"
Begin Object Class=EdGraphPin Name="EdGraphPin_3737"
End Object
Begin Object Class=MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_16"
End Object
Begin Object Name="EdGraphPin_3737"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_254.EdGraphPin_3738"'
End Object
Begin Object Name="MaterialExpressionWorldPosition_16"
MaterialExpressionEditorX=-1920
MaterialExpressionEditorY=-960
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_16'
Pins(0)=EdGraphPin'EdGraphPin_3737'
NodePosX=-1920
NodePosY=-960
NodeGuid=A46965DE479169D6142D34A317C92660
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_254"
Begin Object Class=EdGraphPin Name="EdGraphPin_3739"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3738"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_34"
End Object
Begin Object Name="EdGraphPin_3739"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_257.EdGraphPin_3742"'
End Object
Begin Object Name="EdGraphPin_3738"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_253.EdGraphPin_3737"'
End Object
Begin Object Name="MaterialExpressionComponentMask_34"
Input=(Expression=MaterialExpressionWorldPosition'"MaterialGraphNode_253.MaterialExpressionWorldPosition_16"')
B=True
MaterialExpressionEditorX=-1712
MaterialExpressionEditorY=-960
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_34'
Pins(0)=EdGraphPin'EdGraphPin_3738'
Pins(1)=EdGraphPin'EdGraphPin_3739'
NodePosX=-1712
NodePosY=-960
NodeGuid=63DC26DF476C4F4D7A580EBC7D36E8BC
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_255"
Begin Object Class=EdGraphPin Name="EdGraphPin_3740"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_58"
End Object
Begin Object Name="EdGraphPin_3740"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_259.EdGraphPin_3748"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_260.EdGraphPin_3752"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_58"
DefaultValue=1024.000000
ParameterName="HeightFalloff_00"
ExpressionGUID=264872FF451663C4913A28A86C655124
MaterialExpressionEditorX=-2016
MaterialExpressionEditorY=-848
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_58'
Pins(0)=EdGraphPin'EdGraphPin_3740'
NodePosX=-2016
NodePosY=-848
bCanRenameNode=True
NodeGuid=8FAF091E4EF0C77D04FCEF8A560EA9A0
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_256"
Begin Object Class=EdGraphPin Name="EdGraphPin_3741"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_59"
End Object
Begin Object Name="EdGraphPin_3741"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_258.EdGraphPin_3745"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_59"
DefaultValue=-2048.000000
ParameterName="Height_00"
ExpressionGUID=8ACF0445482BD0F530B14FA810456206
MaterialExpressionEditorX=-1856
MaterialExpressionEditorY=-880
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_59'
Pins(0)=EdGraphPin'EdGraphPin_3741'
NodePosX=-1856
NodePosY=-880
bCanRenameNode=True
NodeGuid=3E02A3FA49EE2938F60245BC0512C8C4
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_257"
Begin Object Class=EdGraphPin Name="EdGraphPin_3744"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3743"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3742"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_45"
End Object
Begin Object Name="EdGraphPin_3744"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_260.EdGraphPin_3751"'
End Object
Begin Object Name="EdGraphPin_3743"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_258.EdGraphPin_3747"'
End Object
Begin Object Name="EdGraphPin_3742"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_254.EdGraphPin_3739"'
End Object
Begin Object Name="MaterialExpressionSubtract_45"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_254.MaterialExpressionComponentMask_34"')
B=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_258.MaterialExpressionSubtract_46"')
MaterialExpressionEditorX=-1584
MaterialExpressionEditorY=-960
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_45'
Pins(0)=EdGraphPin'EdGraphPin_3742'
Pins(1)=EdGraphPin'EdGraphPin_3743'
Pins(2)=EdGraphPin'EdGraphPin_3744'
NodePosX=-1584
NodePosY=-960
NodeGuid=0AE090594F687DDA6BDA7BB59D8DF416
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_258"
Begin Object Class=EdGraphPin Name="EdGraphPin_3747"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3746"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3745"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_46"
End Object
Begin Object Name="EdGraphPin_3747"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_257.EdGraphPin_3743"'
End Object
Begin Object Name="EdGraphPin_3746"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_259.EdGraphPin_3750"'
End Object
Begin Object Name="EdGraphPin_3745"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_256.EdGraphPin_3741"'
End Object
Begin Object Name="MaterialExpressionSubtract_46"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_256.MaterialExpressionScalarParameter_59"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_259.MaterialExpressionDivide_45"')
MaterialExpressionEditorX=-1712
MaterialExpressionEditorY=-864
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_46'
Pins(0)=EdGraphPin'EdGraphPin_3745'
Pins(1)=EdGraphPin'EdGraphPin_3746'
Pins(2)=EdGraphPin'EdGraphPin_3747'
NodePosX=-1712
NodePosY=-864
NodeGuid=54CE522646A56874D4F9ABB21B425690
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_259"
Begin Object Class=EdGraphPin Name="EdGraphPin_3750"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3749"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3748"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_45"
End Object
Begin Object Name="EdGraphPin_3750"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_258.EdGraphPin_3746"'
End Object
Begin Object Name="EdGraphPin_3749"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3748"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_255.EdGraphPin_3740"'
End Object
Begin Object Name="MaterialExpressionDivide_45"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_255.MaterialExpressionScalarParameter_58"')
MaterialExpressionEditorX=-1840
MaterialExpressionEditorY=-800
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_45'
Pins(0)=EdGraphPin'EdGraphPin_3748'
Pins(1)=EdGraphPin'EdGraphPin_3749'
Pins(2)=EdGraphPin'EdGraphPin_3750'
NodePosX=-1840
NodePosY=-800
NodeGuid=5BA5135F42A61CA98205BCA823177E2D
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_260"
Begin Object Class=EdGraphPin Name="EdGraphPin_3753"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3752"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3751"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_46"
End Object
Begin Object Name="EdGraphPin_3753"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_261.EdGraphPin_3754"'
End Object
Begin Object Name="EdGraphPin_3752"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_255.EdGraphPin_3740"'
End Object
Begin Object Name="EdGraphPin_3751"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_257.EdGraphPin_3744"'
End Object
Begin Object Name="MaterialExpressionDivide_46"
A=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_257.MaterialExpressionSubtract_45"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_255.MaterialExpressionScalarParameter_58"')
MaterialExpressionEditorX=-1472
MaterialExpressionEditorY=-960
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_46'
Pins(0)=EdGraphPin'EdGraphPin_3751'
Pins(1)=EdGraphPin'EdGraphPin_3752'
Pins(2)=EdGraphPin'EdGraphPin_3753'
NodePosX=-1472
NodePosY=-960
NodeGuid=B2A44D364D5B278D0633CB836BDDB57D
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_261"
Begin Object Class=EdGraphPin Name="EdGraphPin_3757"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3756"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3755"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3754"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_35"
End Object
Begin Object Name="EdGraphPin_3757"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_262.EdGraphPin_3758"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_262.EdGraphPin_3759"'
End Object
Begin Object Name="EdGraphPin_3756"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3755"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3754"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_260.EdGraphPin_3753"'
End Object
Begin Object Name="MaterialExpressionClamp_35"
Input=(Expression=MaterialExpressionDivide'"MaterialGraphNode_260.MaterialExpressionDivide_46"')
MaterialExpressionEditorX=-1376
MaterialExpressionEditorY=-960
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_35'
Pins(0)=EdGraphPin'EdGraphPin_3754'
Pins(1)=EdGraphPin'EdGraphPin_3755'
Pins(2)=EdGraphPin'EdGraphPin_3756'
Pins(3)=EdGraphPin'EdGraphPin_3757'
NodePosX=-1376
NodePosY=-960
NodeGuid=694A74C8454B2F2CB264B5944F697715
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_262"
Begin Object Class=EdGraphPin Name="EdGraphPin_3760"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3759"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3758"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_35"
End Object
Begin Object Name="EdGraphPin_3760"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_263.EdGraphPin_3763"'
End Object
Begin Object Name="EdGraphPin_3759"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_261.EdGraphPin_3757"'
End Object
Begin Object Name="EdGraphPin_3758"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_261.EdGraphPin_3757"'
End Object
Begin Object Name="MaterialExpressionMultiply_35"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_261.MaterialExpressionClamp_35"')
B=(Expression=MaterialExpressionClamp'"MaterialGraphNode_261.MaterialExpressionClamp_35"')
MaterialExpressionEditorX=-1168
MaterialExpressionEditorY=-960
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_35'
Pins(0)=EdGraphPin'EdGraphPin_3758'
Pins(1)=EdGraphPin'EdGraphPin_3759'
Pins(2)=EdGraphPin'EdGraphPin_3760'
NodePosX=-1168
NodePosY=-960
NodeGuid=980B18444C47A716A17C4482EEA9251B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_263"
Begin Object Class=EdGraphPin Name="EdGraphPin_3764"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3763"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3762"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3761"
End Object
Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_25"
End Object
Begin Object Name="EdGraphPin_3764"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_248.EdGraphPin_3727"'
End Object
Begin Object Name="EdGraphPin_3763"
PinName="Alpha"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_262.EdGraphPin_3760"'
End Object
Begin Object Name="EdGraphPin_3762"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_247.EdGraphPin_3726"'
End Object
Begin Object Name="EdGraphPin_3761"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_252.EdGraphPin_3736"'
End Object
Begin Object Name="MaterialExpressionLinearInterpolate_25"
A=(Expression=MaterialExpressionConstant3Vector'"MaterialGraphNode_252.MaterialExpressionConstant3Vector_27"')
B=(Expression=MaterialExpressionConstant3Vector'"MaterialGraphNode_247.MaterialExpressionConstant3Vector_25"')
Alpha=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_262.MaterialExpressionMultiply_35"')
MaterialExpressionEditorX=-1024
MaterialExpressionEditorY=-976
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_25'
Pins(0)=EdGraphPin'EdGraphPin_3761'
Pins(1)=EdGraphPin'EdGraphPin_3762'
Pins(2)=EdGraphPin'EdGraphPin_3763'
Pins(3)=EdGraphPin'EdGraphPin_3764'
NodePosX=-1024
NodePosY=-976
NodeGuid=3116937149772D6BF1167C927CE5D0C5
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_264"
Begin Object Class=EdGraphPin Name="EdGraphPin_3765"
End Object
Begin Object Class=MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_17"
End Object
Begin Object Name="EdGraphPin_3765"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_265.EdGraphPin_3766"'
End Object
Begin Object Name="MaterialExpressionWorldPosition_17"
MaterialExpressionEditorX=-1648
MaterialExpressionEditorY=304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_17'
Pins(0)=EdGraphPin'EdGraphPin_3765'
NodePosX=-1648
NodePosY=304
NodeGuid=381AB9D8470653495FD036A9607E380C
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_265"
Begin Object Class=EdGraphPin Name="EdGraphPin_3767"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3766"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_35"
End Object
Begin Object Name="EdGraphPin_3767"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_268.EdGraphPin_3770"'
End Object
Begin Object Name="EdGraphPin_3766"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_264.EdGraphPin_3765"'
End Object
Begin Object Name="MaterialExpressionComponentMask_35"
Input=(Expression=MaterialExpressionWorldPosition'"MaterialGraphNode_264.MaterialExpressionWorldPosition_17"')
B=True
MaterialExpressionEditorX=-1440
MaterialExpressionEditorY=304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_35'
Pins(0)=EdGraphPin'EdGraphPin_3766'
Pins(1)=EdGraphPin'EdGraphPin_3767'
NodePosX=-1440
NodePosY=304
NodeGuid=083E8D6F4E00B5E862406C8D23D12593
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_266"
Begin Object Class=EdGraphPin Name="EdGraphPin_3768"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_60"
End Object
Begin Object Name="EdGraphPin_3768"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_270.EdGraphPin_3776"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_271.EdGraphPin_3780"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_60"
DefaultValue=16384.000000
ParameterName="HeightFalloff_03"
ExpressionGUID=8C181FD14F4B5A4075CC1C89FAAA57E0
MaterialExpressionEditorX=-1760
MaterialExpressionEditorY=416
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_60'
Pins(0)=EdGraphPin'EdGraphPin_3768'
NodePosX=-1760
NodePosY=416
bCanRenameNode=True
NodeGuid=5E55FF08406F298080EE26A7D0BC1C28
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_267"
Begin Object Class=EdGraphPin Name="EdGraphPin_3769"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_61"
End Object
Begin Object Name="EdGraphPin_3769"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_269.EdGraphPin_3773"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_61"
DefaultValue=4096.000000
ParameterName="Height_03"
ExpressionGUID=ABD6E951410BF7CBA4FA00B65C6B689A
MaterialExpressionEditorX=-1584
MaterialExpressionEditorY=384
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_61'
Pins(0)=EdGraphPin'EdGraphPin_3769'
NodePosX=-1584
NodePosY=384
bCanRenameNode=True
NodeGuid=FE3D611E4DC40FE3B0E71E90D26F19DF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_268"
Begin Object Class=EdGraphPin Name="EdGraphPin_3772"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3771"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3770"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_47"
End Object
Begin Object Name="EdGraphPin_3772"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_271.EdGraphPin_3779"'
End Object
Begin Object Name="EdGraphPin_3771"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_269.EdGraphPin_3775"'
End Object
Begin Object Name="EdGraphPin_3770"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_265.EdGraphPin_3767"'
End Object
Begin Object Name="MaterialExpressionSubtract_47"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_265.MaterialExpressionComponentMask_35"')
B=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_269.MaterialExpressionSubtract_48"')
MaterialExpressionEditorX=-1312
MaterialExpressionEditorY=304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_47'
Pins(0)=EdGraphPin'EdGraphPin_3770'
Pins(1)=EdGraphPin'EdGraphPin_3771'
Pins(2)=EdGraphPin'EdGraphPin_3772'
NodePosX=-1312
NodePosY=304
NodeGuid=0A7BB05E48DEE07F29051EB3E3640A1B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_269"
Begin Object Class=EdGraphPin Name="EdGraphPin_3775"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3774"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3773"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_48"
End Object
Begin Object Name="EdGraphPin_3775"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_268.EdGraphPin_3771"'
End Object
Begin Object Name="EdGraphPin_3774"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_270.EdGraphPin_3778"'
End Object
Begin Object Name="EdGraphPin_3773"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_267.EdGraphPin_3769"'
End Object
Begin Object Name="MaterialExpressionSubtract_48"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_267.MaterialExpressionScalarParameter_61"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_270.MaterialExpressionDivide_47"')
MaterialExpressionEditorX=-1440
MaterialExpressionEditorY=400
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_48'
Pins(0)=EdGraphPin'EdGraphPin_3773'
Pins(1)=EdGraphPin'EdGraphPin_3774'
Pins(2)=EdGraphPin'EdGraphPin_3775'
NodePosX=-1440
NodePosY=400
NodeGuid=E11CC5A44A682ABE4166B886246051D3
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_270"
Begin Object Class=EdGraphPin Name="EdGraphPin_3778"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3777"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3776"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_47"
End Object
Begin Object Name="EdGraphPin_3778"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_269.EdGraphPin_3774"'
End Object
Begin Object Name="EdGraphPin_3777"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3776"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_266.EdGraphPin_3768"'
End Object
Begin Object Name="MaterialExpressionDivide_47"
A=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_266.MaterialExpressionScalarParameter_60"')
MaterialExpressionEditorX=-1568
MaterialExpressionEditorY=464
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_47'
Pins(0)=EdGraphPin'EdGraphPin_3776'
Pins(1)=EdGraphPin'EdGraphPin_3777'
Pins(2)=EdGraphPin'EdGraphPin_3778'
NodePosX=-1568
NodePosY=464
NodeGuid=E27F99C948FE580D57C090902BEA9819
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_271"
Begin Object Class=EdGraphPin Name="EdGraphPin_3781"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3780"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3779"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_48"
End Object
Begin Object Name="EdGraphPin_3781"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_272.EdGraphPin_3782"'
End Object
Begin Object Name="EdGraphPin_3780"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_266.EdGraphPin_3768"'
End Object
Begin Object Name="EdGraphPin_3779"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_268.EdGraphPin_3772"'
End Object
Begin Object Name="MaterialExpressionDivide_48"
A=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_268.MaterialExpressionSubtract_47"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_266.MaterialExpressionScalarParameter_60"')
MaterialExpressionEditorX=-1200
MaterialExpressionEditorY=304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_48'
Pins(0)=EdGraphPin'EdGraphPin_3779'
Pins(1)=EdGraphPin'EdGraphPin_3780'
Pins(2)=EdGraphPin'EdGraphPin_3781'
NodePosX=-1200
NodePosY=304
NodeGuid=A83471EF4FE6B8CB735A9FB71FF44295
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_272"
Begin Object Class=EdGraphPin Name="EdGraphPin_3785"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3784"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3783"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3782"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_36"
End Object
Begin Object Name="EdGraphPin_3785"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_273.EdGraphPin_3786"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_273.EdGraphPin_3787"'
End Object
Begin Object Name="EdGraphPin_3784"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3783"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3782"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_271.EdGraphPin_3781"'
End Object
Begin Object Name="MaterialExpressionClamp_36"
Input=(Expression=MaterialExpressionDivide'"MaterialGraphNode_271.MaterialExpressionDivide_48"')
MaterialExpressionEditorX=-1104
MaterialExpressionEditorY=304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_36'
Pins(0)=EdGraphPin'EdGraphPin_3782'
Pins(1)=EdGraphPin'EdGraphPin_3783'
Pins(2)=EdGraphPin'EdGraphPin_3784'
Pins(3)=EdGraphPin'EdGraphPin_3785'
NodePosX=-1104
NodePosY=304
NodeGuid=370601FC44CC82BEA07B6C8D98DAFBB5
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_273"
Begin Object Class=EdGraphPin Name="EdGraphPin_3788"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3787"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3786"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_36"
End Object
Begin Object Name="EdGraphPin_3788"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_285.EdGraphPin_3815"'
End Object
Begin Object Name="EdGraphPin_3787"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_272.EdGraphPin_3785"'
End Object
Begin Object Name="EdGraphPin_3786"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_272.EdGraphPin_3785"'
End Object
Begin Object Name="MaterialExpressionMultiply_36"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_272.MaterialExpressionClamp_36"')
B=(Expression=MaterialExpressionClamp'"MaterialGraphNode_272.MaterialExpressionClamp_36"')
MaterialExpressionEditorX=-896
MaterialExpressionEditorY=304
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_36'
Pins(0)=EdGraphPin'EdGraphPin_3786'
Pins(1)=EdGraphPin'EdGraphPin_3787'
Pins(2)=EdGraphPin'EdGraphPin_3788'
NodePosX=-896
NodePosY=304
NodeGuid=FC1553324E6695CDF6A165AB5F36808A
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_274"
Begin Object Class=EdGraphPin Name="EdGraphPin_3789"
End Object
Begin Object Class=MaterialExpressionVertexNormalWS Name="MaterialExpressionVertexNormalWS_16"
End Object
Begin Object Name="EdGraphPin_3789"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_275.EdGraphPin_3790"'
End Object
Begin Object Name="MaterialExpressionVertexNormalWS_16"
MaterialExpressionEditorX=-1648
MaterialExpressionEditorY=544
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionVertexNormalWS'MaterialExpressionVertexNormalWS_16'
Pins(0)=EdGraphPin'EdGraphPin_3789'
NodePosX=-1648
NodePosY=544
NodeGuid=6D111784496834516CB7F4949635C01F
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_275"
Begin Object Class=EdGraphPin Name="EdGraphPin_3791"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3790"
End Object
Begin Object Class=MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_36"
End Object
Begin Object Name="EdGraphPin_3791"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_276.EdGraphPin_3792"'
End Object
Begin Object Name="EdGraphPin_3790"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_274.EdGraphPin_3789"'
End Object
Begin Object Name="MaterialExpressionComponentMask_36"
Input=(Expression=MaterialExpressionVertexNormalWS'"MaterialGraphNode_274.MaterialExpressionVertexNormalWS_16"')
B=True
MaterialExpressionEditorX=-1488
MaterialExpressionEditorY=560
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionComponentMask'MaterialExpressionComponentMask_36'
Pins(0)=EdGraphPin'EdGraphPin_3790'
Pins(1)=EdGraphPin'EdGraphPin_3791'
NodePosX=-1488
NodePosY=560
NodeGuid=93D274C4460A9AD6272522B12EA85B86
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_276"
Begin Object Class=EdGraphPin Name="EdGraphPin_3794"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3793"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3792"
End Object
Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_49"
End Object
Begin Object Name="EdGraphPin_3794"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_279.EdGraphPin_3801"'
End Object
Begin Object Name="EdGraphPin_3793"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_281.EdGraphPin_3807"'
End Object
Begin Object Name="EdGraphPin_3792"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_275.EdGraphPin_3791"'
End Object
Begin Object Name="MaterialExpressionSubtract_49"
A=(Expression=MaterialExpressionComponentMask'"MaterialGraphNode_275.MaterialExpressionComponentMask_36"')
B=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_281.MaterialExpressionScalarParameter_62"')
ConstB=0.500000
MaterialExpressionEditorX=-1376
MaterialExpressionEditorY=560
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_49'
Pins(0)=EdGraphPin'EdGraphPin_3792'
Pins(1)=EdGraphPin'EdGraphPin_3793'
Pins(2)=EdGraphPin'EdGraphPin_3794'
NodePosX=-1376
NodePosY=560
NodeGuid=C0EE538D42EE733A2AB11F96DBFBA03C
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_277"
Begin Object Class=EdGraphPin Name="EdGraphPin_3797"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3796"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3795"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_37"
End Object
Begin Object Name="EdGraphPin_3797"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_284.EdGraphPin_3812"'
End Object
Begin Object Name="EdGraphPin_3796"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_278.EdGraphPin_3800"'
End Object
Begin Object Name="EdGraphPin_3795"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_279.EdGraphPin_3804"'
End Object
Begin Object Name="MaterialExpressionMultiply_37"
A=(Expression=MaterialExpressionClamp'"MaterialGraphNode_279.MaterialExpressionClamp_37"')
B=(Expression=MaterialExpressionDivide'"MaterialGraphNode_278.MaterialExpressionDivide_49"')
ConstB=2.000000
MaterialExpressionEditorX=-1072
MaterialExpressionEditorY=560
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_37'
Pins(0)=EdGraphPin'EdGraphPin_3795'
Pins(1)=EdGraphPin'EdGraphPin_3796'
Pins(2)=EdGraphPin'EdGraphPin_3797'
NodePosX=-1072
NodePosY=560
NodeGuid=4A97CDA94AB79195B57CACBD5FC7B7DA
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_278"
Begin Object Class=EdGraphPin Name="EdGraphPin_3800"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3799"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3798"
End Object
Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_49"
End Object
Begin Object Name="EdGraphPin_3800"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_277.EdGraphPin_3796"'
End Object
Begin Object Name="EdGraphPin_3799"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_280.EdGraphPin_3806"'
End Object
Begin Object Name="EdGraphPin_3798"
PinName="A"
PinType=(PinCategory="optional")
End Object
Begin Object Name="MaterialExpressionDivide_49"
B=(Expression=MaterialExpressionOneMinus'"MaterialGraphNode_280.MaterialExpressionOneMinus_25"')
MaterialExpressionEditorX=-1376
MaterialExpressionEditorY=656
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_49'
Pins(0)=EdGraphPin'EdGraphPin_3798'
Pins(1)=EdGraphPin'EdGraphPin_3799'
Pins(2)=EdGraphPin'EdGraphPin_3800'
NodePosX=-1376
NodePosY=656
NodeGuid=3935A6EB4DD75737DED7FDA24080C383
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_279"
Begin Object Class=EdGraphPin Name="EdGraphPin_3804"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3803"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3802"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3801"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_37"
End Object
Begin Object Name="EdGraphPin_3804"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_277.EdGraphPin_3795"'
End Object
Begin Object Name="EdGraphPin_3803"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3802"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3801"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_276.EdGraphPin_3794"'
End Object
Begin Object Name="MaterialExpressionClamp_37"
Input=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_276.MaterialExpressionSubtract_49"')
MaterialExpressionEditorX=-1264
MaterialExpressionEditorY=560
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_37'
Pins(0)=EdGraphPin'EdGraphPin_3801'
Pins(1)=EdGraphPin'EdGraphPin_3802'
Pins(2)=EdGraphPin'EdGraphPin_3803'
Pins(3)=EdGraphPin'EdGraphPin_3804'
NodePosX=-1264
NodePosY=560
NodeGuid=D0F6507F4FC97DFAD8E3E5834516C0F3
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_280"
Begin Object Class=EdGraphPin Name="EdGraphPin_3806"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3805"
End Object
Begin Object Class=MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_25"
End Object
Begin Object Name="EdGraphPin_3806"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_278.EdGraphPin_3799"'
End Object
Begin Object Name="EdGraphPin_3805"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_281.EdGraphPin_3807"'
End Object
Begin Object Name="MaterialExpressionOneMinus_25"
Input=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_281.MaterialExpressionScalarParameter_62"')
MaterialExpressionEditorX=-1472
MaterialExpressionEditorY=672
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionOneMinus'MaterialExpressionOneMinus_25'
Pins(0)=EdGraphPin'EdGraphPin_3805'
Pins(1)=EdGraphPin'EdGraphPin_3806'
NodePosX=-1472
NodePosY=672
NodeGuid=49563DD54BAB57A2862498A04CCE5414
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_281"
Begin Object Class=EdGraphPin Name="EdGraphPin_3807"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_62"
End Object
Begin Object Name="EdGraphPin_3807"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_276.EdGraphPin_3793"'
LinkedTo(1)=EdGraphPin'"MaterialGraphNode_280.EdGraphPin_3805"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_62"
DefaultValue=0.375000
ParameterName="Angle_03"
ExpressionGUID=271EFA4B48714E135BB01FBC83C8E0E2
MaterialExpressionEditorX=-1616
MaterialExpressionEditorY=640
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_62'
Pins(0)=EdGraphPin'EdGraphPin_3807'
NodePosX=-1616
NodePosY=640
bCanRenameNode=True
NodeGuid=CE8272A34B05EF59556CC59052AFAED5
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_282"
Begin Object Class=EdGraphPin Name="EdGraphPin_3810"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3809"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3808"
End Object
Begin Object Class=MaterialExpressionPower Name="MaterialExpressionPower_14"
End Object
Begin Object Name="EdGraphPin_3810"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_200.EdGraphPin_3616"'
End Object
Begin Object Name="EdGraphPin_3809"
PinName="Exp"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_283.EdGraphPin_3811"'
End Object
Begin Object Name="EdGraphPin_3808"
PinName="Base"
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_286.EdGraphPin_3821"'
End Object
Begin Object Name="MaterialExpressionPower_14"
Base=(Expression=MaterialExpressionClamp'"MaterialGraphNode_286.MaterialExpressionClamp_38"')
Exponent=(Expression=MaterialExpressionScalarParameter'"MaterialGraphNode_283.MaterialExpressionScalarParameter_63"')
MaterialExpressionEditorX=-464
MaterialExpressionEditorY=352
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionPower'MaterialExpressionPower_14'
Pins(0)=EdGraphPin'EdGraphPin_3808'
Pins(1)=EdGraphPin'EdGraphPin_3809'
Pins(2)=EdGraphPin'EdGraphPin_3810'
NodePosX=-464
NodePosY=352
NodeGuid=5F100704426DD742496E6C8CDF582D74
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_283"
Begin Object Class=EdGraphPin Name="EdGraphPin_3811"
End Object
Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_63"
End Object
Begin Object Name="EdGraphPin_3811"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_282.EdGraphPin_3809"'
End Object
Begin Object Name="MaterialExpressionScalarParameter_63"
DefaultValue=8.000000
ParameterName="Hardness_03"
ExpressionGUID=2779932E49A5D652362A6A8D0E45B2BE
MaterialExpressionEditorX=-624
MaterialExpressionEditorY=464
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_63'
Pins(0)=EdGraphPin'EdGraphPin_3811'
NodePosX=-624
NodePosY=464
bCanRenameNode=True
NodeGuid=FF926BF34664CC13A1287F92CD7CC36B
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_284"
Begin Object Class=EdGraphPin Name="EdGraphPin_3814"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3813"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3812"
End Object
Begin Object Class=MaterialExpressionAdd Name="MaterialExpressionAdd_3"
End Object
Begin Object Name="EdGraphPin_3814"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_285.EdGraphPin_3816"'
End Object
Begin Object Name="EdGraphPin_3813"
PinName="B"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3812"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_277.EdGraphPin_3797"'
End Object
Begin Object Name="MaterialExpressionAdd_3"
A=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_277.MaterialExpressionMultiply_37"')
MaterialExpressionEditorX=-960
MaterialExpressionEditorY=560
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionAdd'MaterialExpressionAdd_3'
Pins(0)=EdGraphPin'EdGraphPin_3812'
Pins(1)=EdGraphPin'EdGraphPin_3813'
Pins(2)=EdGraphPin'EdGraphPin_3814'
NodePosX=-960
NodePosY=560
NodeGuid=B92DACBF40AAD8860F72F5ACF513724C
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_285"
Begin Object Class=EdGraphPin Name="EdGraphPin_3817"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3816"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3815"
End Object
Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_38"
End Object
Begin Object Name="EdGraphPin_3817"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_286.EdGraphPin_3818"'
End Object
Begin Object Name="EdGraphPin_3816"
PinName="B"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_284.EdGraphPin_3814"'
End Object
Begin Object Name="EdGraphPin_3815"
PinName="A"
PinType=(PinCategory="optional")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_273.EdGraphPin_3788"'
End Object
Begin Object Name="MaterialExpressionMultiply_38"
A=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_273.MaterialExpressionMultiply_36"')
B=(Expression=MaterialExpressionAdd'"MaterialGraphNode_284.MaterialExpressionAdd_3"')
MaterialExpressionEditorX=-768
MaterialExpressionEditorY=352
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_38'
Pins(0)=EdGraphPin'EdGraphPin_3815'
Pins(1)=EdGraphPin'EdGraphPin_3816'
Pins(2)=EdGraphPin'EdGraphPin_3817'
NodePosX=-768
NodePosY=352
NodeGuid=BF7C7BEE42202210229E58A227A1E060
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_286"
Begin Object Class=EdGraphPin Name="EdGraphPin_3821"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3820"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3819"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_3818"
End Object
Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_38"
End Object
Begin Object Name="EdGraphPin_3821"
PinName="Output"
PinFriendlyName=" "
Direction=EGPD_Output
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_282.EdGraphPin_3808"'
End Object
Begin Object Name="EdGraphPin_3820"
PinName="Max"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3819"
PinName="Min"
PinType=(PinCategory="optional")
End Object
Begin Object Name="EdGraphPin_3818"
PinName="Input"
PinFriendlyName=" "
PinType=(PinCategory="required")
LinkedTo(0)=EdGraphPin'"MaterialGraphNode_285.EdGraphPin_3817"'
End Object
Begin Object Name="MaterialExpressionClamp_38"
Input=(Expression=MaterialExpressionMultiply'"MaterialGraphNode_285.MaterialExpressionMultiply_38"')
MaterialExpressionEditorX=-672
MaterialExpressionEditorY=352
Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_2'
End Object
MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_38'
Pins(0)=EdGraphPin'EdGraphPin_3818'
Pins(1)=EdGraphPin'EdGraphPin_3819'
Pins(2)=EdGraphPin'EdGraphPin_3820'
Pins(3)=EdGraphPin'EdGraphPin_3821'
NodePosX=-672
NodePosY=352
NodeGuid=33DCE5444722F7B12CB53DBD1F6A509C
End Object
</code></pre>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com21tag:blogger.com,1999:blog-3140428138073969313.post-2526999778868676562014-08-03T15:58:00.000+02:002014-08-04T18:21:28.361+02:00[Unreal Engine 4] Localized Post-Process EffectsOne of the new features of UE4 (in comparison to UE3) is that you can access the world position of a pixel via post processing. I just realized that this makes it possible to limit post process effects to a specific areas of a level. Still you can see the effect from far away, which means the camera/player won't need to actually enter this specific area - obviously that's the main advantage over a separate post process volume.<br />
<br />
For this tutorial I decided to describe 2 types of these "volumes" in a volume, spheres and boxes. The material graphs shown output a greyscale image which you can use to Lerp between the original scene color and a post process effect of your choice. In my example that's a simple scene desaturation.<br />
<br />
<br />
<b>Sphere</b><br />
<br />
This is the material for a sphere shape. using 3 parameters to define the sphere position, size(radius) and transition hardness.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/localpp_01m0lln.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_01m0lln.png" height="166" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/localpp_0003_sphere1aml4w.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_0003_sphere1aml4w.jpg" height="148" width="200" /></a>
<a href="http://abload.de/img/localpp_0002_sphere2iib0o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_0002_sphere2iib0o.jpg" height="149" width="200" /></a></div>
<br />
<br />
<b>Box</b><br />
<br />
For a box shape there are 2 different ways of setting up the material. The first one is similar to the sphere setup, defining the box shape by a center point and the (half) length of all 3 sides.<br />
<br />
The second one defines the box by 2 opposing corner points. Think of these as the lower, front, left and the upper, rear, right vertices of a box. Please note that the softness parameter needs to be a pretty large value to take any effect, e.g. 2^16.<br />
<br />
Setup #1 <br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/localpp_03rtx16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_03rtx16.png" height="152" width="400" /></a></div>
<br />
Setup #2 <br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/localpp_02lvlmy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_02lvlmy.png" height="163" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/localpp_0001_box1p6bea.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_0001_box1p6bea.jpg" height="148" width="200" /></a>
<a href="http://abload.de/img/localpp_0000_box2amlif.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/localpp_0000_box2amlif.jpg" height="149" width="200" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com6tag:blogger.com,1999:blog-3140428138073969313.post-35330668033890378142014-08-01T23:31:00.002+02:002014-08-01T23:31:33.103+02:00[UE3/UE4] Landscape Grass BlendingAuthoring grass and landscape textures to blend nicely can be pretty tough at times. This is where automated methods come in handy. <br />
<br />
For the following material to work you'll need some kind of a terrain base color texture which is then being sampled in the grass material. The most important part is to make it match the actual landscape size, scale and location.<br />
Once this is done you might find various ways to alter the grass color based on the underlying terrain. In this example I'm using a simple vertical gradient to blend between both textures. <br />
<br />
<b><br /></b>
<b>Material</b><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/landscapegrassblend011brzy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/landscapegrassblend011brzy.png" height="254" width="640" /></a></div>
<br />
<br />
<br />
<b>Comparison</b><br />
<br />
Regular Grass Material<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/landscapegrassblend02h8qn9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/landscapegrassblend02h8qn9.jpg" height="238" width="320" /></a></div>
<br />
<br />
Terrain Blending Grass Material<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/landscapegrassblend02hip5j.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/landscapegrassblend02hip5j.jpg" height="239" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com10tag:blogger.com,1999:blog-3140428138073969313.post-90506130637528120472014-08-01T16:18:00.001+02:002014-08-01T16:18:56.071+02:00[UE3/UE4] Generate Cavity from NormalsWhen someone over at the unreal forums asked for a way to generate cavity maps in the material editor I thought this might be interesting and quickly put together the following material.<br />
The basic idea is to offset the normal maps green and red channel in two directions and compar both samples. <br />
In order to save some instructions I decided not to use the overlay blend mode to apply the cavity map. Instead I'm biasing the cavity maps color range to make white the mid color and simply multiply this result by the diffuse map.<br />
<br />
<br />
<br />
<b>Material Setup</b><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/generatecavity_01boxyvv.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/generatecavity_01boxyvv.png" height="273" width="640" /></a></div>
<br />
<br />
<br />
<b>Results</b><br />
<br />
Base Diffuse<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/cavity_0000_basee8a3h.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/cavity_0000_basee8a3h.jpg" height="320" width="319" /></a></div>
<br />
<br />
Generated Cavity with 1 Texel Offset<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/cavity_0001_gencav8sygl.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/cavity_0001_gencav8sygl.jpg" height="320" width="319" /></a></div>
<br />
<br />
Generated Cavity with 0.5 Texel Offset <br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/cavity_0002_gencav05mfau0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/cavity_0002_gencav05mfau0.jpg" height="320" width="319" /></a></div>
<br />
xNormal reference, generated offline<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/cavity_0003_offcavqrxpe.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/cavity_0003_offcavqrxpe.jpg" height="320" width="319" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-29335778128894166382014-04-01T17:41:00.001+02:002014-08-23T09:12:09.809+02:00[UE4 Quick Tip] Environment Maps as a Post ProcessIn unreal engine 4 you can use ambient cubemaps which are applied as a post process. This is nice, espacially for dynamically lit scenes, but by using your own post process material you can create a huge variety of effects with full manual control.<br />
<br />
Using an ambient cubemap in a post process effect is pretty similar to sampling a cubemap in a regular material, except that you'll need to use the G-Buffer world normals for calculating the reflection vector. To avoid issues with the sky(dome) you can simply fade out the effect based on scene depth.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/ambientmappp_0049yu0a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/ambientmappp_0049yu0a.jpg" height="134" width="320" /></a></div>
<br />
<br />
<br />
The most important part is probably blending the ambient map with the already rendered scene. There are many ways of doing this, things you could take into account: scene brightness, metalness, roughness (sampling different MipMaps) etc. I won't go into detail here, just keep in mind that simply adding the ambient map to the scene color won't do the job.Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-10900211794873665582014-03-25T17:42:00.001+01:002014-03-25T17:42:19.634+01:00[Unreal Engine 4] Tangent Spaces TestA quick test on synced tangents in UE4. I've been using Handplane to generate TS normals from a given low poly mesh and object space normal map.<br />
The test mesh has no hard edges / one smoothing group with several 90° angles so there are plenty of strong gradients in the normal map.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/synctest01obj_blendero4u95.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/synctest01obj_blendero4u95.png" height="200" width="200" /></a></div>
<br />
<br />
<br />
<br />
<br />
Max preset<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/synctang__0003_maxhxus9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/synctang__0003_maxhxus9.jpg" height="187" width="320" /></a></div>
<br />
<br />
Maya preset<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/synctang__0002_mayax4ue7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/synctang__0002_mayax4ue7.jpg" height="187" width="320" /></a></div>
<br />
<br />
Unreal Engine 3 preset<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/synctang__0001_unrealh0uze.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/synctang__0001_unrealh0uze.jpg" height="187" width="320" /></a></div>
<div style="text-align: left;">
<br /></div>
<br />
<br />
Blender / Mikktspace<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/synctang__0000_blendelkuhn.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/synctang__0000_blendelkuhn.jpg" height="187" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-51274327553867834852014-03-23T22:31:00.000+01:002014-03-23T22:31:24.523+01:00[Unreal Engine 4] Post ProcessingPost processing in UE4 is probably going to be very interesting. I haven't done any serious testing for now but having access the whole G-Buffer offers a wide range of opportunities.<br />
<br />
<br />
Here's a quick example of a fairly simply edge detect / outline shader, no sobel kernel.<br />
<br />
Depth Only <br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/pp_edge_01mni9d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/pp_edge_01mni9d.png" height="206" width="320" /></a></div>
<br />
<br />
Normals Only <br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/pp_edge_02fri5h.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/pp_edge_02fri5h.png" height="206" width="320" /></a></div>
<br />
<br />
Depth + Normals combined<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/pp_edge_03mheg9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/pp_edge_03mheg9.png" height="206" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/pp_edge_04azenk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/pp_edge_04azenk.png" height="206" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com4tag:blogger.com,1999:blog-3140428138073969313.post-20981666539040503112014-03-21T23:08:00.000+01:002014-03-22T17:32:08.324+01:00[UE4] Manual Distance Based TessellationWhen using a material with tessellation in unreal engine 4, adaptive tessellation is enabled by default. Whilst this screen-space algorithm is doing a solid job there are situations where you might want to manually set the tessellation factor directly or make it de/increase in intervals rather than constantly changing.<i> </i><br />
<br />
<i>To make the following materials work you'll need to uncheck 'Enable Adaptive Tessellation' in the material properties.</i><br />
<br />
<br />
<br />
This is the most simple setup, using 3 parameters - 2 tessellation factors (one for when far away and one for close up) plus the distance in world space. <br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/distancetess001k1k0x.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/distancetess001k1k0x.png" height="96" width="320" /></a></div>
<br />
<br />
<br />
For a smooth transition between both states divide the distance by an additional parameter, this one is also in world space units:<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/distancetess002t6jqe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/distancetess002t6jqe.png" height="90" width="320" /></a></div>
<br />
<br />
<br />
<br />
For a more subtle transition you can scale the amount of displacement by distance as well. Therefore calculate the inverse of the lerp alpha input and multiply that by your World Displacement input.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/distancetess0041dkyj.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/distancetess0041dkyj.png" height="108" width="320" /></a></div>
<br />
<br />
<br />
<br />
In case you need more than 2 states of tessellation you can simply add an additional Lerp.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/distancetess003m3jxl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/distancetess003m3jxl.png" height="79" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-42022739490601766722014-03-21T17:51:00.002+01:002014-03-21T17:51:46.704+01:00[UE4 Quick Tip] DXT1/DXT5 Normal MapsBy default Unreal Engine 4 uses BC5 compression for normal maps which offers a high level of quality. In case you are fine with some lower quality normals (aka blocky artifacts) you can still use DXT1 compression and therefore save half of the texture memory and 4 shader instructions per material. <br />
Using regular DXT1/DXT5 compression for normal maps also makes it possible to use the blue/alpha channel for storing an additional greyscale texture, e.g. height/displacement maps.<br />
<br />
<br />
<b>What to do:</b><br />
1. In the texture properties change the compression setting from TC_NormalMap to TC_Default.<br />
2. In the material, convert your normals from [0...1] to [-1...1] range.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/dxt1normal01wmjkq.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/dxt1normal01wmjkq.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/dxt1normal029fju1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/dxt1normal029fju1.png" height="203" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com1tag:blogger.com,1999:blog-3140428138073969313.post-76149249366946598082014-01-30T17:47:00.001+01:002014-01-31T08:33:14.679+01:00[UDK] Studies Room / Library Environment<br />
- all modeling done in Blender<br />
- furniture models have their normal maps baked from high poly geometry using a cage mesh and xNormal<br />
- 2 scene capture actors (512x512px @ 60FPS) <br />
Triangle Count: ~61,000<br />
Texture Memory: 30MB + 28MB lightmaps<br />
<br />
<br />
<br />
Lighting Setup #1
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/labenv_01_11s2o5i.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/labenv_01_11s2o5i.jpg" height="213" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/labenv_01_13dzoll.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/labenv_01_13dzoll.jpg" height="213" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/labenv_01_147dqmm.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/labenv_01_147dqmm.jpg" height="213" width="320" /></a></div>
<br />
<br />
Lighting Setup #2<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/labenv_01_15r2qbs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/labenv_01_15r2qbs.jpg" height="213" width="320" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/labenv_01_163hoje.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/labenv_01_163hoje.jpg" height="213" width="320" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://abload.de/img/labenv_01_173er6h.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://abload.de/img/labenv_01_173er6h.jpg" height="213" width="320" /></a></div>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-79641380128370351702014-01-21T22:12:00.002+01:002014-01-21T22:12:57.116+01:00[UDK/UE3] Distort/Animate UV Texture CoordinatesUsing shader math to modify/distort texture coordinates can make for some nice and simple (or even advanced) effects. The main advantage of this method is its high quality (no texture compression, color banding) without the need to create external texture maps (e.g. flow maps) or to use other methods to alter UVs (e.g. vertex colors).<br />
<br />
<br />
<b>Base Texture</b><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/distortuvmat038buff.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/distortuvmat038buff.jpg" height="198" width="200" /></a></div>
<br />
<br />
<b>Wavy Effect</b><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYCz047b15RQCP4nzDu_SSQ6kZRzGOqY12uaFOkKXtgsqH8NAVzGqNz5BN6Epr8uJqpwXkgPCQyPt7aAbWrI77O9sfe8oVqt7oXoTa4ammz2pe5soKJCxirQ2jDyGJvPdAE2e3sM6H3BKI/s1600/DistortUVMat01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYCz047b15RQCP4nzDu_SSQ6kZRzGOqY12uaFOkKXtgsqH8NAVzGqNz5BN6Epr8uJqpwXkgPCQyPt7aAbWrI77O9sfe8oVqt7oXoTa4ammz2pe5soKJCxirQ2jDyGJvPdAE2e3sM6H3BKI/s1600/DistortUVMat01.png" height="180" width="640" /></a></div>
<br />
<br />
<b>Twirl Effect</b><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmOClPZ51JemrVo1hpG8PbkLPfW2m2Rioesy8d53KkttVJ5zqWDmTxp_t-FVbW8H8FCATtCU8m6knc2oWF0Q5IgjKQveaQtYyVmuVugL5j7r6Yi4sdp812ubg_CpfZaaxhkOwPXMWIYXue/s1600/DistortUVMat02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmOClPZ51JemrVo1hpG8PbkLPfW2m2Rioesy8d53KkttVJ5zqWDmTxp_t-FVbW8H8FCATtCU8m6knc2oWF0Q5IgjKQveaQtYyVmuVugL5j7r6Yi4sdp812ubg_CpfZaaxhkOwPXMWIYXue/s1600/DistortUVMat02.png" height="139" width="640" /></a></div>
<br />
<br />
<br />
Once you got the math done it'll be pretty easy to implement some texture movement/animation.<br />
<br />
You can find 2 GIF examples below:<br />
<a href="http://www.abload.de/img/distortuvs01mlp1p.gif">http://www.abload.de/img/distortuvs01mlp1p.gif</a><br />
<a href="http://www.abload.de/img/distortuvs02rvou4.gif">http://www.abload.de/img/distortuvs02rvou4.gif</a>Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-7171419072205202812014-01-20T16:27:00.000+01:002014-01-20T16:27:02.249+01:00[Recources] Anisotropic Maps<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/anisotropy_01wpo26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/anisotropy_01wpo26.png" height="256" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />
4 anisotropic direction maps, 512x512px .png, use for whatever you want.
Depending on your target application you might want to swap color channels or fill the empty channel with a different base color.<br />
<br />
<a href="http://www.abload.de/img/anisodir01kmozm.png">http://www.abload.de/img/anisodir01kmozm.png</a><br />
<a href="http://www.abload.de/img/anisodir02zar4k.png">http://www.abload.de/img/anisodir02zar4k.png</a><br />
<a href="http://www.abload.de/img/anisodir03mfr63.png">http://www.abload.de/img/anisodir03mfr63.png</a><br />
<a href="http://www.abload.de/img/anisodir04p2r4z.png">http://www.abload.de/img/anisodir04p2r4z.png</a><br />
<br />
<br />
<br />
<br />
<div style="text-align: left;">
<a href="http://www.abload.de/img/anisodir01kmozm.png" imageanchor="1"><img border="0" src="http://www.abload.de/img/anisodir01kmozm.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/anisodir02zar4k.png" imageanchor="1"><img border="0" src="http://www.abload.de/img/anisodir02zar4k.png" height="200" width="200" /></a></div>
<div style="text-align: left;">
<a href="http://www.abload.de/img/anisodir03mfr63.png" imageanchor="1"><img border="0" src="http://www.abload.de/img/anisodir03mfr63.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/anisodir04p2r4z.png" imageanchor="1"><img border="0" src="http://www.abload.de/img/anisodir04p2r4z.png" height="200" width="200" /></a></div>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-31564886936527428242014-01-12T10:31:00.001+01:002014-01-12T10:31:49.608+01:00[Blender/UDK] Low Poly Rock FormationsHighpoly sculpted in Blender<br />
Lowpoly manually retopologized<br />
Normal + AO map baked in xNormal using a Cage<br />
Triangle count: ~800-900<br />
<br />
<br />
<b>Blender</b><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/rockformations_004ijq04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/rockformations_004ijq04.jpg" height="180" width="320" /></a></div>
<br />
<br />
<b>UDK</b><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/rockformations_002g1sj8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/rockformations_002g1sj8.jpg" height="180" width="320" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com4tag:blogger.com,1999:blog-3140428138073969313.post-89739798324786743612014-01-11T14:44:00.002+01:002014-04-25T08:59:46.056+02:00[UE3/UDK] Equirectangular Environment MappingEquirectangular Environment Maps can be a nice alternative to cubemaps as they are pretty easy to handle (1 texture vs. 6 cube faces). Another advantage of these maps is that you don't need DX11 for proper MipMaps, so you can easily walk down the MIP chain for some simple IBL setups.<br />
Unfortunately the material requires some trigonometric functions which will add a bunch of instructions.<br />
<br />
<br />
<b>Material Setup</b><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/latlongmat013rl6e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/latlongmat013rl6e.png" height="232" width="640" /></a></div>
<br />
Using this setup you can easily multiply a specular/roughness map by the MIPLevel to control the reflection blurriness by surface roughness.<br />
<br />
<br />
<br />
<br />
<br />
<b>IBL Example GIF (800KB)</b><br />
<br />
<a href="http://www.abload.de/img/latlong01bofgl.gif">http://www.abload.de/img/latlong01bofgl.gif</a>Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-82433225577524645532014-01-07T00:25:00.003+01:002014-01-07T00:25:26.397+01:00[UE3/UDK] Mixing Normal MapsApproaches on mixing/blending normal maps using UE3' material editor.<br />
<br />
<br />
Base Normal Map<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/blendnormals_base1mkubd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_base1mkubd.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/blendnormals_baseksxkn.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_baseksxkn.png" height="200" width="200" /></a></div>
<br />
<br />
Detail Normal Map<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/blendnormals_detail1wiufk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_detail1wiufk.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/blendnormals_detailwol1c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_detailwol1c.png" height="200" width="200" /></a></div>
<br />
<br />
#1 <a href="http://udn.epicgames.com/Three/MaterialBasics.html#Detail%20Normal%20Map">UDN</a> / 52 instructions (47+5)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/blendnormals_udnnjat9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_udnnjat9.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/blendnormals_udn01xru4u.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_udn01xru4u.png" height="209" width="320" /></a></div>
<div style="text-align: left;">
<br /></div>
<br />
<br />
<br />
#2 <a href="http://developer.amd.com/wordpress/media/2012/10/Oat-Wrinkles%28Siggraph07%29.pdf">Whiteout</a> / 53 instructions (47+6)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/blendnormals_whiteout6dbcf.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_whiteout6dbcf.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/blendnormals_whiteoutt2uzd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_whiteoutt2uzd.png" height="163" width="320" /></a></div>
<br />
<br />
<br />
#3 <a href="https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/gdc12/GDC2012_Mastering_DirectX11_with_Unity.pdf">Unity</a> / 55 instructions (47+8)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/blendnormals_unitysrldy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_unitysrldy.png" height="200" width="200" /></a>
<a href="http://www.abload.de/img/blendnormals_unity01lguff.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_unity01lguff.png" height="148" width="320" /></a></div>
<br />
<br />
<br />
#4 <a href="http://blog.selfshadow.com/publications/blending-in-detail/">RNM</a> / 55 instructions (47+8)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/blendnormals_rnmtqye1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_rnmtqye1.png" height="200" width="200" /> </a>
<a href="http://www.abload.de/img/blendnormals_rnm019yu1w.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.abload.de/img/blendnormals_rnm019yu1w.png" height="174" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-43481281101711175102013-11-22T10:39:00.000+01:002013-11-23T13:36:07.985+01:00[UDK Quick Tip] Alpha Channel sRGBJust a quick reminder that alpha channels of a textures won't be stored in sRGB color space. Having linear data is crucial for height or normal maps, however when using the alpha channel for something like a specular map it will just look wrong.<br />
<br />
A quick way to fix this is to do a linear -> sRGB conversion inside the material, by taking the power of 2.2. The downside of this method is an extra 5 instructions. Instead it's good practice to multiply the alpha channel by itself (=taking the power of 2) which is slightly wrong but only adding a single instruction.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/alphachannelsrgb001r4bpe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="http://www.abload.de/img/alphachannelsrgb001r4bpe.png" width="640" /></a></div>
<br />Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0tag:blogger.com,1999:blog-3140428138073969313.post-36285463058843832372013-11-03T15:11:00.001+01:002013-11-07T14:00:34.990+01:00[Blender/UDK] Fire Hydrant ModelLately I've been practicing some Sub-D modeling. The <a href="http://www.polycount.com/forum/showthread.php?t=56014">Polycount thread</a> on that topic was a great resource for recreating <a href="http://www.abload.de/img/subd0097qiqh.png">various shapes</a> to begin with. Afterwards I started to make whole models; this fire hydrant was the first one. The topology/edgeflow is a bit messy where the main cylinder gets extruded and causes some pinching. But it was sufficient to bake a proper normal map for the low poly. The model is also slightly out of proportions since it's too elongated, espacially at the top.<br />
<br />
<br />
High Poly / Wireframe in Blender<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/firehydrant_001hp4jf05.png"><img alt="http://www.abload.de/img/firehydrant_001hp4jf05.png" border="0" height="260" src="http://www.abload.de/img/firehydrant_001hpsirf7y.jpg" width="320" /></a></div>
<br />
<br />
<br />
Textured low poly in Blender (GLSL viewport grab)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/firehydrant_002tpr71.png"><img alt="http://www.abload.de/img/firehydrant_002tpr71.png" border="0" height="320" src="http://www.abload.de/img/firehydrant_002s29r9k.jpg" width="315" /></a></div>
<br />
<br />
<br />
<br />
Textured low poly + LoD model in UDK<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.abload.de/img/firehydrant_003cypu6.png"><img alt="http://www.abload.de/img/firehydrant_003cypu6.png" border="0" height="280" src="http://www.abload.de/img/firehydrant_003s1yoj1.jpg" width="320" /></a></div>
<br />
<br />
<br />Blendswap Download: <a href="http://www.blendswap.com/blends/view/70874">http://www.blendswap.com/blends/view/70874</a><br />
Sketchfab Preview: <a href="https://sketchfab.com/show/96ded07b6ac1434b9225531540fe2bda">https://sketchfab.com/show/96ded07b6ac1434b9225531540fe2bda</a>Oliver M-Hhttp://www.blogger.com/profile/13392631949755039242noreply@blogger.com0