cybereality Thanks i finally got it working, just changing material of the draw passes are enough for my purpose but i can see a limitation to this, you can't really have multiple really different particles running at the same time (ie: particles shooting in a straight line and particles flying in a circle) because that would require multiples different GPUParticles3D.
However i do found another thread which asked basically the same thing but in 2D, so if someone else actually want to create a complex emission shape from code, you would have to set the Emission Shape to either Points or Directed Points then generate a texture from code and assign Point Texture with that.