Asumsikan ada beberapa nilai p
, dihitung per-frame, yang bervariasi terus menerus di atas permukaan suatu objek. Nilai p
menentukan kepadatan beberapa pola di permukaan. Misalnya, dalam kasus dengan hanya dua kemungkinan kepadatan jika kepadatan p < 0.3
tinggi, jika tidak maka akan rendah.
Saya telah memikirkan solusi tingkat tinggi yang sederhana: membuat dua tekstur, masing-masing dengan kepadatan berbeda, dan berdasarkan pada nilai p
sampel dari yang sesuai. Namun, ada masalah dengan batas antara kepadatan tinggi dan rendah.
Berikut adalah contoh untuk mengilustrasikan masalah (perhatikan masalah saya BUKAN eksklusif untuk contoh pola titik-titik ini. Saya jelaskan pola yang saya kerjakan nanti):
Dan di sini adalah ambang batas antara rendah dan tinggi (ditampilkan pada tekstur kepadatan tinggi tapi itu tidak relevan.) Jika di bawah garis, itu menyiratkan tekstur kepadatan tinggi harus disampel.
Dan akhirnya di sini adalah perbandingan antara apa yang diinginkan dan apa yang sebenarnya terjadi dengan menggunakan metode ini:
Masalahnya adalah bahwa ketika lingkaran dengan kepadatan tinggi melewati garis, itu akan diabaikan ketika p
menunjukkan sampel dengan kepadatan rendah untuk dijadikan sampel, menghasilkan lingkaran terpotong. Saya tidak tahu bagaimana menyelesaikan masalah ini karena p
setiap frame bervariasi, jadi saya tidak bisa 'memanggang' batas antara dua kepadatan. Sangat mudah untuk mencegah masalah sebaliknya dengan membuat tekstur kerapatan tinggi dari yang lebih rendah (yaitu jika lingkaran berada pada tekstur kerapatan rendah memastikannya pada tekstur kerapatan tinggi.)
Saya tertarik jika ada yang punya cara untuk meningkatkan solusi saya atau bahkan memiliki metode lain sama sekali. Kendala di sini adalah yang p
dihitung per-frame secara real-time. Batasan lain terkait dengan tekstur pola: polanya hitam dan putih, di mana hitam adalah polanya dan putih adalah latar belakangnya (seperti lingkaran pada contoh). Polanya mungkin bukan hanya bentuk identik yang diulang, tetapi setiap pengaturan bentuk hitam sewenang-wenang di atas latar belakang putih. (Mungkin pola adalah pilihan kata yang salah.)
Saya tidak terbiasa dengan penelitian di bidang ini, jadi saya tidak yakin kata kunci mana yang harus dicari, jadi saya akan sangat menghargai jika ada yang bisa mengarahkan saya ke arah yang benar.
Jawaban:
Untuk memastikan bahwa bentuk pola selalu ada atau tidak ada sama sekali, tidak pernah terputus, penting untuk memastikan bahwa nilai yang sama
p
digunakan untuk semua texels dalam bentuk. Dalam contoh lingkaran Anda, semua teks dalam lingkaran tertentu harus disetujuip
.Saya berasumsi bahwa Anda memiliki beberapa cara untuk mengevaluasi
p
pada titik tertentu di permukaan (apakah itu dilihat dari tekstur atau dihitung dari beberapa fungsi). Maka salah satu cara untuk memastikan sekelompok texels mendapatkan nilai yang samap
adalah dengan memastikan mereka semua mencarinya dari titik yang sama.UV titik evaluasi ini dapat disimpan dalam saluran ekstra dari tekstur pola. Misalnya, Anda bisa membuat saluran merah dan hijau menyimpan koordinat UV untuk mengevaluasi
p
, saluran biru menyimpan ambang untuk mengaktifkan elemen pola itu, dan alpha menyimpan tingkat abu-abu antialiased dari pola yang akan ditampilkan. Data ambang batas UV + juga bisa dalam tekstur sekunder yang terpisah jika diinginkan.Untuk menghasilkan tekstur ambang batas UV + ini, mulai dari tekstur pola input, Anda dapat secara terprogram menemukan komponen yang terhubung (misalnya dengan mencari piksel hitam dan mengisi banjir). Atur titik evaluasi untuk semua texels di setiap komponen ke UV pusat komponen, dan buat ambang acak untuknya. Kemudian, saat rendering, gunakan pixel shader yang pertama kali mencicipi tekstur ini, kemudian mencari
p
pada titik evaluasi yang diberikan dan membandingkannya dengan ambang batas yang diberikan.Dengan begitu, setiap bentuk pola akan melihat
p
nilai dan ambang yang seragam , dan akan hidup atau mati sepenuhnya. Denganp
bertambahnya, lebih banyak bentuk akan melewati ambang dan muncul, memberikan kesan kepadatan yang terus berubah.sumber
Pikiran lain ada di sepanjang garis ini. Jika Anda memiliki titik seragam yang ditetapkan pada pesawat dan fungsi pemetaan dari pesawat ke permukaan target maka fungsi kerapatan pada permukaan adalah bagaimana area memetakan dari permukaan pesawat ke target. Jadi peta pelestarian area akan menghasilkan titik yang seragam pada target.
sumber