Menggunakan partikel yang berbeda di Godot 3. Tidak ada efek pasca-pemrosesan.
Tautan:
Mulai WebGL2 dan men-download versi lain link ke itch.io .
Kode sumber di github .
Artikel ini dibagi menjadi beberapa bagian:
Menghaluskan partikel kecil dengan cara berbeda.
Banyak bola - partikel tanpa kehilangan performa. Dan proyeksi 3d di shader.
Sistem decals ruang layar.
Lain.
1. Menghaluskan partikel
Saya menggunakan objek datar 2 atau 4 kali lebih besar dari grafik yang ditampilkan, grafik paling kritis di tengah tekstur terlihat seperti ini, di sebelah kiri 2 kali lebih besar di kanan 4 kali:

Dan hitam menjadi transparan.
Idenya adalah untuk memiliki setidaknya 1 piksel di sekitar garis dasar bahkan pada sudut rotasi dan jarak terkecil dari objek. Saya menggunakan padding 4x pada objek terjauh:

Kode partikel lineAA base.shader shader mencakup tiga versi untuk pengujian - tanpa pemfilteran, dengan pemfilteran prosedural menggunakan dFd*fungsi, dan menggunakan tekstur, urutan dari kiri ke kanan :
2. Proyeksi partikel tiga dimensi pada sebuah bidang
Saya menggunakan logika persimpangan dan proyeksi di shader fragmen.
- 1000 - (GPU) , 1000 - GPU 100%. 1000 ( ) 25% GPU.
-:

, :
3. Screen space decals
, .
dacal.
Material-ID Decals .
:
Material-ID:
Godot render-pass, . Viewport :

material-ID (depth). (depth) . , Material-ID Viewport depth:

Viewport overhead, , - Debug ( ) , 0.25 1.
4.
- , , .

, , .
- .
- 360 1 , . :

:
Nvidia:
, Vetrex , Vulkan .
:
3d sketchfab CC-non comercial .
MIT license.
Tautan ke daftar sumber daya yang digunakan .
Terima kasih telah membaca artikel ini.