背景昨年、弊社採用サイトをリニューアルしました。トップページは 3D のパーティクルアニメーションとなっており、 WebGL で実装しています。実装するにあたって使用するライブラリには PixiJS 等も検討しましたが、今回は 3D ということで three.js を選びました。 始めは一つ一つのパーティクルを THREE.Mesh で生成していましたが、特にテキスト側の画面はパーティクルの数が多くかなり重くなってしまいました。 改善するために別の実装方法を探したところ、 Takumi Hasegawa さんの記事を見つけ、どうやらシェーダを使うと大量のパーティクルでも重くならずに描画できると書いてあったので試すことにしました。 シェーダで実装してみた上記の記事を参考にシェーダで実装してみたところ軽くはなりましたが、パーティクルが画面から出ていって消えた後に反対側から再び表示させるという処