Bagaimana saya bisa membuat garis besar shader seperti "Hidup itu Aneh"?

13

Saya ingin membuat sketsa shader seperti kehidupan yang aneh.

shader memiliki dua bagian:

1.animated garis putus-putus

2. garis besar bising

Saya ingin tahu bagaimana cara membuat garis besar yang bising?

lihat garis besar objek

record_2019_01_21_09_43_07_10

record_2019_01_21_09_51_00_896

record_2019_01_21_09_45_53_942

record_2019_01_21_11_37_27_699

Pertama saya mencoba membuat garis dengan menyalin data titik masuk dan diskalakan menurut arah normal kemudian Cull Back. Tapi saya pikir itu seperti efek gambar karena garis kadang-kadang bergerak di dalam objek. Pokoknya saya akan menghargai jika seseorang membantu saya untuk Menerapkan shader ini :)

Apa yang saya coba

Saya menggunakan deteksi tepi dan menghidupkannya dengan vertex shader tapi ini tidak baik seperti gif di atas.

record_2019_01_21_18_16_43_440

record_2019_01_21_18_27_28_597

Sayy Morteza Kamali
sumber

Jawaban:

1

Saya telah melakukan hal serupa di Unreal Engine 4, jadi saya akan menjelaskan konsepnya saja. Ada 2 cara Anda bisa melakukan itu, dan mereka adalah gradien berbeda dari pengorbanan antara kinerja dan kemudahan implementasi.

  1. Pertama, tambahkan jala baru di atas jala utama, hanya sedikit lebih besar (seperti jala collider fisik). Kemudian buat shader materi transparan untuknya dan aktifkan shader / perlihatkan jala karena tampilan frustrasi pemain berada dalam x unit jarak dari entitas. Ini adalah kinerja yang berat karena transparansi shader, tetapi karena Anda hanya memiliki satu set kecil objek yang disorot pada titik tertentu, mudah untuk diimplementasikan dan layak.

  2. Buat tekstur dasar dengan garis hash, dan pindahkan koordinat tekstur sesuai dengan serangkaian matriks yang telah ditentukan. Ini menciptakan ilusi "tekstur animasi"; dalam industri, itu juga disebut bahan dinamis (ada lebih dari itu, tetapi Anda dapat membaca jika Anda mau). Adapun garis besarnya, Anda dapat menemukan banyak tutorial di web. Teknik ini membutuhkan waktu lebih lama untuk diimplementasikan, karena Anda harus mengotak-atik matriks perpindahan dan waktu pembaruan materi untuk mendapatkan hasil yang mirip dengan tangkapan layar di atas, belum lagi harus menyelaraskan garis hash pada perubahan sudut pada mesh dasar.

Jika kinerja bukan masalah, lanjutkan dengan 1. Jika setiap FPS diperhitungkan, gunakan 2, tetapi berharap banyak masalah yang membutuhkan waktu untuk diselesaikan.

murid yang penasaran
sumber