move particle collision to main thread, will refine billlboard and particle later