Here’s an ICE tree that emits points from the polygons on the emitter, using their PolygonPosition attributes.
As an exercise, I went to the trouble of using the PolygonNormal as the direction vector. That was slightly complicated, because I couldn’t use the EmitLocation attribute to get at the PolygonNormal. I had to use Get Closest Location with the new PointPosition instead. That’s because when you use positions instead of locations with Add Point (which is inside Emit from Position), then the EmitLocation attribute is “meaningless”, to quote the documentation.
There’s no such thing as PolygonLocation, so I had to use the PolygonPosition attribute.
Note also that I filtered out some polygons, so that I emitted points only from the faces of the soccer ball.