Display ~100,000 "points" without destroying performance

You can control color for the material using AbsoluteWorldPosition + distance nodes and MaterialParameterCollection. I think.
In material parameter collection use a vector as a ping starting location and then in the material measure the distance from AbsoluteWorldPosition to the material collection vector you’ve created. Divide it by… something and you get your distance gradient.


Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_376"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20675"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20674"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20673"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20672"
   End Object
   Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_5"
   End Object
   Begin Object Name="EdGraphPin_20675"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_Root_13.EdGraphPin_20650'
   End Object
   Begin Object Name="EdGraphPin_20674"
      PinName="Alpha"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_381.EdGraphPin_20684'
   End Object
   Begin Object Name="EdGraphPin_20673"
      PinName="B"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_382.EdGraphPin_20685'
   End Object
   Begin Object Name="EdGraphPin_20672"
      PinName="A"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_377.EdGraphPin_20676'
   End Object
   Begin Object Name="MaterialExpressionLinearInterpolate_5"
      A=(Expression=MaterialExpressionConstant3Vector'MaterialGraphNode_377.MaterialExpressionConstant3Vector_16')
      B=(Expression=MaterialExpressionConstant3Vector'MaterialGraphNode_382.MaterialExpressionConstant3Vector_17')
      Alpha=(Expression=MaterialExpressionMultiply'MaterialGraphNode_381.MaterialExpressionMultiply_32')
      MaterialExpressionEditorX=-176
      MaterialExpressionEditorY=144
      MaterialExpressionGuid=A689B7644F3DDC1CF1553AB8A947ECCD
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_5'
   Pins(0)=EdGraphPin'EdGraphPin_20672'
   Pins(1)=EdGraphPin'EdGraphPin_20673'
   Pins(2)=EdGraphPin'EdGraphPin_20674'
   Pins(3)=EdGraphPin'EdGraphPin_20675'
   NodePosX=-176
   NodePosY=144
   NodeGuid=B6887CEB4EF1CA3444541A8AB6388917
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_377"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20676"
   End Object
   Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_16"
   End Object
   Begin Object Name="EdGraphPin_20676"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_376.EdGraphPin_20672'
   End Object
   Begin Object Name="MaterialExpressionConstant3Vector_16"
      Constant=(R=0.057438,G=0.965000,B=0.133702,A=0.000000)
      MaterialExpressionEditorX=-592
      MaterialExpressionEditorY=-160
      MaterialExpressionGuid=D940F43F4815953F8616EFB789EC2BBF
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_16'
   Pins(0)=EdGraphPin'EdGraphPin_20676'
   NodePosX=-592
   NodePosY=-160
   NodeGuid=A8FFAD064184475D6F9184912D993919
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_378"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20677"
   End Object
   Begin Object Class=MaterialExpressionObjectPositionWS Name="MaterialExpressionObjectPositionWS_18"
   End Object
   Begin Object Name="EdGraphPin_20677"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_380.EdGraphPin_20680'
   End Object
   Begin Object Name="MaterialExpressionObjectPositionWS_18"
      MaterialExpressionEditorX=-688
      MaterialExpressionEditorY=320
      MaterialExpressionGuid=67C2AB5440E12E289881A69C54EC0385
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionObjectPositionWS'MaterialExpressionObjectPositionWS_18'
   Pins(0)=EdGraphPin'EdGraphPin_20677'
   NodePosX=-688
   NodePosY=320
   NodeGuid=AD5E1C6F4921A0981ED9ECBE8A6994B9
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_379"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20678"
   End Object
   Begin Object Class=MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_9"
   End Object
   Begin Object Name="EdGraphPin_20678"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_380.EdGraphPin_20679'
   End Object
   Begin Object Name="MaterialExpressionWorldPosition_9"
      MaterialExpressionEditorX=-720
      MaterialExpressionEditorY=192
      MaterialExpressionGuid=14B4FF84460B349B4C777B915F30D725
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_9'
   Pins(0)=EdGraphPin'EdGraphPin_20678'
   NodePosX=-720
   NodePosY=192
   NodeGuid=C2884EE64762DF9F8D225692FDD9F584
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_380"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20681"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20680"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20679"
   End Object
   Begin Object Class=MaterialExpressionDistance Name="MaterialExpressionDistance_6"
   End Object
   Begin Object Name="EdGraphPin_20681"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_381.EdGraphPin_20682'
   End Object
   Begin Object Name="EdGraphPin_20680"
      PinName="B"
      PinType=(PinCategory="required")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_378.EdGraphPin_20677'
   End Object
   Begin Object Name="EdGraphPin_20679"
      PinName="A"
      PinType=(PinCategory="required")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_379.EdGraphPin_20678'
   End Object
   Begin Object Name="MaterialExpressionDistance_6"
      A=(Expression=MaterialExpressionWorldPosition'MaterialGraphNode_379.MaterialExpressionWorldPosition_9')
      B=(Expression=MaterialExpressionObjectPositionWS'MaterialGraphNode_378.MaterialExpressionObjectPositionWS_18')
      MaterialExpressionEditorX=-512
      MaterialExpressionEditorY=288
      MaterialExpressionGuid=044599E743E9A9FBE0D571AE5D252014
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionDistance'MaterialExpressionDistance_6'
   Pins(0)=EdGraphPin'EdGraphPin_20679'
   Pins(1)=EdGraphPin'EdGraphPin_20680'
   Pins(2)=EdGraphPin'EdGraphPin_20681'
   NodePosX=-512
   NodePosY=288
   NodeGuid=A7F2EA1749F55B767274D0AA4FA2D758
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_381"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20684"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20683"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_20682"
   End Object
   Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_32"
   End Object
   Begin Object Name="EdGraphPin_20684"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_376.EdGraphPin_20674'
   End Object
   Begin Object Name="EdGraphPin_20683"
      PinName="B"
      PinType=(PinCategory="optional")
   End Object
   Begin Object Name="EdGraphPin_20682"
      PinName="A"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_380.EdGraphPin_20681'
   End Object
   Begin Object Name="MaterialExpressionMultiply_32"
      A=(Expression=MaterialExpressionDistance'MaterialGraphNode_380.MaterialExpressionDistance_6')
      ConstB=0.000300
      MaterialExpressionEditorX=-400
      MaterialExpressionEditorY=256
      MaterialExpressionGuid=F6E1CE78471C638D1962DFBFD299A1E8
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_32'
   Pins(0)=EdGraphPin'EdGraphPin_20682'
   Pins(1)=EdGraphPin'EdGraphPin_20683'
   Pins(2)=EdGraphPin'EdGraphPin_20684'
   NodePosX=-400
   NodePosY=256
   NodeGuid=E707E74041FE470B96C859B72E73E339
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_382"
   Begin Object Class=EdGraphPin Name="EdGraphPin_20685"
   End Object
   Begin Object Class=MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_17"
   End Object
   Begin Object Name="EdGraphPin_20685"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_376.EdGraphPin_20673'
   End Object
   Begin Object Name="MaterialExpressionConstant3Vector_17"
      Constant=(R=0.965000,G=0.298705,B=0.000000,A=0.000000)
      MaterialExpressionEditorX=-592
      MaterialExpressionEditorY=32
      MaterialExpressionGuid=D940F43F4815953F8616EFB789EC2BBF
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_6'
   End Object
   MaterialExpression=MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_17'
   Pins(0)=EdGraphPin'EdGraphPin_20685'
   NodePosX=-592
   NodePosY=32
   NodeGuid=646CD6E044DD47BB121544958865FF2D
End Object


Just change ObjectPosition to a vector from collection.
[/QUOTE]

Gonna try this out, thanks for the advice.

Or maybe you should try something different than trace?
GPU sprites work best as I can tell, problem is, they are random and their collision is calculated through screen depth. Means, no collision with things player can’t see or that are behind em.

[/QUOTE]

And wow, that looks really great and performs extremely well, I’m gonna burn through the particle emitter tutorials so I can try this out! I was thinking that perhaps the randomness and no collision with objects not on screen might be a problem for my gameplay idea, but I may be able to work around that if this works well enough.