Partikel di Godot 3, anti-aliasing partikel kecil, dan sistem sidik jari pada shader

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:

  1. Menghaluskan partikel kecil dengan cara berbeda.

  2. Banyak bola - partikel tanpa kehilangan performa. Dan proyeksi 3d di shader.

  3. Sistem decals ruang layar.

  4. 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.

-:

, :

particle_cloud_base.shader .

iquilezles.org.


3. Screen space decals

Screen-Space-Decals, :

  1. , .

  2. dacal.

  3. Material-ID Decals .

:

Material-ID:

Godot render-pass, . Viewport :

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

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


4.

- , , .

, , .

Garden Fireworks - @P_Malin.

- .

- .

- 360 1 , . :

:

Nvidia:

, Vetrex , Vulkan .

:

  1. 3d sketchfab CC-non comercial .

  2. patrickdearteaga.com

  3. MIT license.

Tautan ke daftar sumber daya yang digunakan .

Terima kasih telah membaca artikel ini.




All Articles