Beberapa waktu lalu, saya menemui masalah dalam menggunakan subsurface scattering (SSS) di Unreal Engine. Saya ingin menciptakan efek cahaya yang realistis pada karakter digital saya, namun hasilnya tidak seperti yang saya harapkan.
Pertama-tama, saya memuat contoh Digital Humans dan melihat bagaimana SSS digunakan. Namun, saya malah terkejut bahwa hasilnya sangat berbeda dengan ekspektasi saya. Saya menggunakan model shading subsurface profile, dan setup scattering yang sederhana, yaitu menggabungkan masker dengan lerps, serta menggunakan param untuk mengontrol scatter untuk semua area wajah.
Saya merasa kebingungan karena tidak tahu apa yang salah. Namun, setelah melakukan editing, saya menemukan bahwa nilai-nilai dalam SSS telah diatur di atas 0.1, dan detailnya sangat kurang. Mereka hanya seperti bongkahan lembut yang besar.
Edit: Saya berpikir bahwa shading model tersebut menggunakan aproximasi volume untuk backscattering, sehingga tidak perlu memasukkan masker untuk area-area tertentu di mana backscattering tidak terjadi.
Pengaturan Transmission/Backscattering
Setelah melakukan penelitian lebih lanjut, saya menemukan bahwa transmission/backscattering pada SSS berbasis hampir sepenuhnya pada ketebalan mesh. Masker yang saya masukkan ke opacity memiliki pengaruh yang sangat tipis (di atas 0.1), namun efeknya jauh lebih nyata jika sayaaktifkan fitur burley.
Pengaturan warna di asset subsurface profile juga dapat digunakan untuk mengontrol intensitas backscattering.
Video Perbandingan
Saya memuat video perbandingan antara input opacity pada material di atas, menggunakan Burley dan separable SSS yang default. Hasilnya sangat menarik, dan saya berharap Anda dapat melihat sendiri bagaimana efeknya.
Pengalaman lainnya
Saya juga mendapatkan komentar dari MostHost_LA bahwa subsurface profile yang saya gunakan memiliki warna dasar abu-abu, sehingga scattering akan terlihat di seluruh mesh. Saya berpikir bahwa jika saya dapat mengurangi intensitas scatter yang tampak pada nilai 0.1, maka itu mungkin cukup untuk kebutuhan display karakter saya.
Namun, saya tidak menemukan cara untuk mengurangi glow tersebut, kecuali dengan mengubah warna di subsurface profile. Saya juga berpikir bahwa menggunakan dither decal atau teknik lainnya dapat digunakan untuk menutupi garis batas idk.
Solusi
Saya percaya bahwa solusi terbaik adalah mempelajari shader files untuk subsurf dan mencari parameter yang salah nilai, sehingga kita dapat mengaturnya kembali ke nilai yang sesuai. Selain itu, saya juga berpikir bahwa menggunakan USF (Unreal Script File) lainnya dapat membantu menyelesaikan masalah ini.
Kesimpulan
Dalam kesimpulan, saya ingin membagikan pengalaman saya dalam menggunakan subsurface scattering di Unreal Engine. Saya harap bahwa dengan mempelajari artikel ini, Anda dapat menemukan solusi yang sesuai untuk kebutuhan Anda sendiri.