Redo particle engine changes.

This reverts commit fbbc582cfd698f243db8e241f4ef52ea0fa419d4.