使用nine grid實作follow camera particles effect是一個好想法,它可以避免particles跟隨camera飄浮及需預熱(否則會來不及產生)的問題,而且particles也沒做perInstance culling,這對性能影響蠻大的…
這裡使用了GPU instance及GPU culling來實作這個系統,並在ComputeShader中模擬粒子的位移,整個處理流程如下:
- 產生亂數Transform Buffer
- 實作follow camera nine grid
- 配置相關ComputeShader所需要的Buffer及RenderTexture
- 實作相關的ComputeShader(含GPU剔除及粒子位移模擬)
- 實作相關instance shader(渲染用),為了跨平台的考量,不使用SSBO
在camera鄰近的nine grid產生相關的particles,以確保camera視角在任何方向都會鋪滿粒子,
但只有在視野內才會丟進GPU進行渲染。
沒有留言:
張貼留言