Simplex頂点に任意の乱数を利用できるSimplex Noise Custom Node[UE][UE5]

題名の通りです.
個人的な興味により Simplex Noiseの頂点毎の乱数計算 を差し替えられるCustomNodeを作成したので公開.

Simplex Noise には以下のShadertoyを参考にしています. thanks!
Shader - Shadertoy BETA
(XsX3zB)

前置き

CustomNodeは3段階(コア部分は2段階)で,

  1. 前処理
    • Simplexの頂点情報他を出力
  2. 乱数ノード
    • (ここが任意に差し替え可)
  3. 後処理
    • Simplex頂点の乱数からノイズ出力

という構成です.

使用例としては以下のようになります.

使用例

コピペ用テキスト

マテリアルエディタにうまくコピペできない等の問題がありましたらTwitter等でお知らせください.

前処理CustomNode

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_109"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_0"
   End Object
   Begin Object Name="MaterialExpressionCustom_0"
      Code="\r\n/*\r\n    3D SimplexNoise の前段処理\r\n[Reference materials]\r\nhttps://www.shadertoy.com/view/XsX3zB\r\n\r\n\r\n    input:\r\n            // ノイズ計算座標.\r\n            in_pos\r\n\r\n    output:\r\n            // Simplex(3DではTetrahedron)の頂点座標\r\n            out_simplex_vtx_pos0\r\n            out_simplex_vtx_pos1\r\n            out_simplex_vtx_pos2\r\n            out_simplex_vtx_pos3\r\n            \r\n            // Simplexの頂点へのベクトル. 後段でのGradientNoise計算用.\r\n            out_simplex_d0\r\n            out_simplex_d1\r\n            out_simplex_d2\r\n            out_simplex_d3\r\n\r\n*/\r\n\r\nconst float F3 = 0.33333;\r\nconst float G3 = 0.16667;\r\n// Skew\r\nfloat3 s = floor(in_pos + dot(in_pos, F3));\r\nfloat3 x = in_pos - s + dot(s, G3);\r\n//\r\nfloat3 e = step(0.0, x - x.yzx);\r\nfloat3 i1 = e * (1.0 - e.zxy);\r\nfloat3 i2 = 1.0 - e.zxy*(1.0-e);\r\n\r\n//\r\nfloat3 x1 = x - i1 + G3;\r\nfloat3 x2 = x - i2 + 2.0 * G3;\r\nfloat3 x3 = x - 1.0 + 3.0*G3;\r\n\r\nout_simplex_vtx_pos0 = s;\r\nout_simplex_vtx_pos1 = s + i1;\r\nout_simplex_vtx_pos2 = s + i2;\r\nout_simplex_vtx_pos3 = s + 1;\r\n\r\nout_simplex_d0 = x;\r\nout_simplex_d1 = x1;\r\nout_simplex_d2 = x2;\r\nout_simplex_d3 = x3;\r\n\r\nreturn 1;"
      Description="Custom_SimplexNoise3to1_Setup"
      Inputs(0)=(InputName="in_pos",Input=(Expression=/Script/Engine.MaterialExpressionAdd'"MaterialExpressionAdd_5"'))
      AdditionalOutputs(0)=(OutputName="out_simplex_vtx_pos0",OutputType=CMOT_Float3)
      AdditionalOutputs(1)=(OutputName="out_simplex_vtx_pos1",OutputType=CMOT_Float3)
      AdditionalOutputs(2)=(OutputName="out_simplex_vtx_pos2",OutputType=CMOT_Float3)
      AdditionalOutputs(3)=(OutputName="out_simplex_vtx_pos3",OutputType=CMOT_Float3)
      AdditionalOutputs(4)=(OutputName="out_simplex_d0",OutputType=CMOT_Float3)
      AdditionalOutputs(5)=(OutputName="out_simplex_d1",OutputType=CMOT_Float3)
      AdditionalOutputs(6)=(OutputName="out_simplex_d2",OutputType=CMOT_Float3)
      AdditionalOutputs(7)=(OutputName="out_simplex_d3",OutputType=CMOT_Float3)
      MaterialExpressionEditorX=-2048
      MaterialExpressionEditorY=2512
      MaterialExpressionGuid=4244B9A4494561E6D73F14B3D48C4E67
      Material=/Script/UnrealEd.PreviewMaterial'"/Engine/Transient.M_InnerLayerPm2"'
      bShowOutputNameOnPin=True
      bCollapsed=True
      Outputs(0)=(OutputName="return")
      Outputs(1)=(OutputName="out_simplex_vtx_pos0")
      Outputs(2)=(OutputName="out_simplex_vtx_pos1")
      Outputs(3)=(OutputName="out_simplex_vtx_pos2")
      Outputs(4)=(OutputName="out_simplex_vtx_pos3")
      Outputs(5)=(OutputName="out_simplex_d0")
      Outputs(6)=(OutputName="out_simplex_d1")
      Outputs(7)=(OutputName="out_simplex_d2")
      Outputs(8)=(OutputName="out_simplex_d3")
   End Object
   MaterialExpression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_0"'
   NodePosX=-2048
   NodePosY=2512
   NodeGuid=694DDEB64074FA334F4FD9A71A7FD483
   CustomProperties Pin (PinId=14B3EA4E44D4A873700D33A55F7AE5AD,PinName="in_pos",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_103 5246F4EE4F841D0B87A775BDC4A8D155,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=B819619E4D1A27419AB524893B6ECD84,PinName="return",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=9EE1744F4571B813B1BBDE890386E4B4,PinName="out_simplex_vtx_pos0",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_111 9D0A05744027353F9E7118A2194B1162,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=1E152C9B4E3FDD460C71EBBD7728B4F5,PinName="out_simplex_vtx_pos1",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_113 8126FF97480C0E2317A4F7A582DAD0A3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=EDB6385B40CB4F839646B784E3E9D173,PinName="out_simplex_vtx_pos2",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_112 164ABAAD466D2377D81D0CA5A60C9B3C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=72873D064EE5FD985F001AA3892D9F49,PinName="out_simplex_vtx_pos3",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_114 7D8DCA5C4A5DE0ACA7BD0C82724D301A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=7746174D4FB60AF7C5C5F095B5CA2773,PinName="out_simplex_d0",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_110 DB76CCAB48E57973572CEC889D1AD7A3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=00AD30144201B89E1E00758A88479315,PinName="out_simplex_d1",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_110 62FD7FB84275385A5AE2688318A0242F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=A101A4114BE2E007A7A9DE8B88751614,PinName="out_simplex_d2",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_110 68133C4D4BE01D7D4C180184CC5A24C8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=CF20B6B54351C38C12EB46B59994524D,PinName="out_simplex_d3",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_110 1419241C4116FF68392D659CFBE3035C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object

乱数CustomNode (3D座標から3D乱数出力ができるものに置き換え可能)

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_111"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_2"
   End Object
   Begin Object Name="MaterialExpressionCustom_2"
      Code="float j = 4096.0*sin(dot(in_pos,float3(17.0, 59.4, 15.0)));\r\nfloat3 r;\r\nr.z = frac(512.0*j);\r\nj *= .125;\r\nr.x = frac(512.0*j);\r\nj *= .125;\r\nr.y = frac(512.0*j);\r\nreturn r * 2.0 - 1.0; // [-1.0, +1.0]"
      Description="Custom_Rand3to3"
      Inputs(0)=(InputName="in_pos",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_0"',OutputIndex=1))
      MaterialExpressionEditorX=-1758
      MaterialExpressionEditorY=2471
      MaterialExpressionGuid=8E96CA8240B4E2A0E551B78CCB82D4BB
      Material=/Script/UnrealEd.PreviewMaterial'"/Engine/Transient.M_InnerLayerPm2"'
      bCollapsed=True
   End Object
   MaterialExpression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_2"'
   NodePosX=-1758
   NodePosY=2471
   NodeGuid=DFAA6DB9408EE68647E4ED8C95D200B5
   CustomProperties Pin (PinId=9D0A05744027353F9E7118A2194B1162,PinName="in_pos",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_109 9EE1744F4571B813B1BBDE890386E4B4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=88D45E3940F121BFE10297B3111BCD2E,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_110 85C6354E4423C26466A77DBADE314039,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object

後処理CustomNode

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_110"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_1"
   End Object
   Begin Object Name="MaterialExpressionCustom_1"
      Code="\r\n/*\r\n    3D SimplexNoise の後段処理\r\n[Reference materials]\r\nhttps://www.shadertoy.com/view/XsX3zB\r\n    \r\n    input:\r\n            // 各頂点の3D乱数 [-1.0, +1.0]\r\n            in_rand0\r\n            in_rand1\r\n            in_rand2\r\n            in_rand3\r\n\r\n            // Simplexの頂点へのベクトル (前段からの出力).\r\n            in_simplex_d0\r\n            in_simplex_d1\r\n            in_simplex_d2\r\n            in_simplex_d3\r\n\r\n    output:\r\n            [-1.0, +1.0]\r\n*/\r\n\r\nfloat4 d;\r\nd.x = dot(in_rand0, in_simplex_d0);\r\nd.y = dot(in_rand1, in_simplex_d1);\r\nd.z = dot(in_rand2, in_simplex_d2);\r\nd.w = dot(in_rand3, in_simplex_d3);\r\n\r\n// 入力が [-1, +1] の場合は幅が1になるように 0.5 を乗算.\r\nd *= 0.5;\r\n\r\nfloat4 w;\r\nw.x = dot(in_simplex_d0, in_simplex_d0);\r\nw.y = dot(in_simplex_d1, in_simplex_d1);\r\nw.z = dot(in_simplex_d2, in_simplex_d2);\r\nw.w = dot(in_simplex_d3, in_simplex_d3);\r\nw = max(0.6 - w, 0.0);\r\n\r\n// w^4\r\nw *= w;\r\nw *= w;\r\n\r\nd *= w;\r\n\r\nreturn dot(d, 52.0);"
      Description="Custom_SimplexNoise3to1_Post"
      Inputs(0)=(InputName="in_rand0",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_2"'))
      Inputs(1)=(InputName="in_rand1",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_4"'))
      Inputs(2)=(InputName="in_rand2",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_3"'))
      Inputs(3)=(InputName="in_rand3",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_5"'))
      Inputs(4)=(InputName="in_simplex_d0",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_0"',OutputIndex=5))
      Inputs(5)=(InputName="in_simplex_d1",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_0"',OutputIndex=6))
      Inputs(6)=(InputName="in_simplex_d2",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_0"',OutputIndex=7))
      Inputs(7)=(InputName="in_simplex_d3",Input=(Expression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_0"',OutputIndex=8))
      MaterialExpressionEditorX=-1584
      MaterialExpressionEditorY=2544
      MaterialExpressionGuid=4244B9A4494561E6D73F14B3D48C4E67
      Material=/Script/UnrealEd.PreviewMaterial'"/Engine/Transient.M_InnerLayerPm2"'
   End Object
   MaterialExpression=/Script/Engine.MaterialExpressionCustom'"MaterialExpressionCustom_1"'
   NodePosX=-1584
   NodePosY=2544
   NodeGuid=F9EB2DB2403AD4D08D45A2AD2E0586CE
   CustomProperties Pin (PinId=85C6354E4423C26466A77DBADE314039,PinName="in_rand0",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_111 88D45E3940F121BFE10297B3111BCD2E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=F335C65B48656877255E93868DD98C1F,PinName="in_rand1",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_113 E9C8906544E68AF3921D6D8B25F759C1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=7BC722274BA713B60F780DA43DB00165,PinName="in_rand2",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_112 17377D3848EAE93152FBE08DAA4D3BDC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=8F11DF88467900E40B32219130541347,PinName="in_rand3",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_114 5B3AE366474C1AA7E6CB5DA8D83F19DB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=DB76CCAB48E57973572CEC889D1AD7A3,PinName="in_simplex_d0",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_109 7746174D4FB60AF7C5C5F095B5CA2773,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=62FD7FB84275385A5AE2688318A0242F,PinName="in_simplex_d1",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_109 00AD30144201B89E1E00758A88479315,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=68133C4D4BE01D7D4C180184CC5A24C8,PinName="in_simplex_d2",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_109 A101A4114BE2E007A7A9DE8B88751614,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=1419241C4116FF68392D659CFBE3035C,PinName="in_simplex_d3",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_109 CF20B6B54351C38C12EB46B59994524D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
   CustomProperties Pin (PinId=E8FC28CB48E48C51AF32CFA4F9CF207C,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_115 40255E7447B0E72C17139B99CFBF22F9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object

おまけ

前処理ノードの出力である out_simplex_di はSimplex頂点へのベクトルなので
その長さの反転を重みとして頂点毎の乱数をブレンドすると面白い見た目になったりします.
( 1.0 - length(out_simplex_di) )^16 のような重みでブレンド