Pencahayaan Berdasarkan Fisika (PBR) memungkinkan Anda untuk merepresentasikan pencahayaan dan bayangan yang realistis dengan menggunakan berbagai jenis gambar tekstur, atau peta, pada satu objek. Menggabungkan beberapa peta tekstur dapat lebih akurat mensimulasikan warna, kekasaran, dan reflektivitas dalam lingkungan pencahayaan apa pun dan dapat meningkatkan elemen visual dari aset dan lingkungan Anda.


Berbagai aplikasi dan alur kerja tersedia untuk membuat tekstur PBR. Anda dapat menggunakan ini selama fase pemodelan dan teksturing dari pembuatan objek 3D kustom, asalkan Roblox Studio mendukung peta tekstur tertentu yang Anda gunakan.
Panduan ini memberikan instruksi tentang mengatur objek mesh Anda untuk menggunakan peta tekstur PBR, dan menjelaskan penggunaan umum serta praktik terbaik untuk peta tekstur PBR yang didukung oleh Roblox peta tekstur. Saat membuat permukaan Anda sendiri, lihat referensi material untuk nilai material umum, perbandingan gambar, dan contoh pakaian.
Mengaktifkan penampilan permukaan
Anda dapat menambahkan tekstur PBR ke MeshPart mana pun dengan menambahkan objek SurfaceAppearance yang menimpa tekstur yang asli ditugaskan. Secara umum, Anda tidak dapat memodifikasi properti SurfaceAppearance dengan skrip selama permainan karena mesin memerlukan beberapa praproses untuk menampilkan grafik ini. Mirip dengan menambahkan tekstur dasar, setiap peta gambar tekstur harus mengarah ke ID aset gambar yang diunggah yang sesuai.
Untuk mengaktifkan penampilan permukaan untuk MeshPart:
Di jendela Explorer, arahkan mouse ke MeshPart dan klik tombol ⊕.
Masukkan SurfaceAppearance dari menu kontekstual.

Ketika Anda siap untuk menambahkan peta tekstur ke objek SurfaceAppearance, Anda dapat mengklik setiap properti peta di jendela Properties dan memasukkan ID aset.
Peta tekstur
Studio saat ini mendukung 5 jenis peta tekstur PBR: warna, normal, kekasaran, metalness, dan emissive. Masing-masing peta ini berkaitan dengan aspek penting dari penampilan permukaan objek. Peta tekstur hanya mengubah penampilan visual dan tidak mempengaruhi geometri objek MeshPart.
Lihat contoh-contoh berikut untuk gambaran peta tekstur yang didukung oleh Roblox dan sumber daya tambahan:
Properti ColorMap menetapkan data warna permukaan, termasuk transparansi yang ada dalam peta. Lihat warna (albedo) untuk informasi tambahan.



Warna (albedo)
Warna, atau albedo, peta menentukan warna tekstur Anda dan terdiri dari sebagian besar informasi warna dengan sedikit atau tanpa informasi pencahayaan atau tekstur. Untuk kustomisasi tambahan, Anda juga dapat menambahkan transparansi dalam tekstur albedo Anda dengan menambahkan opasitas ke peta gambar Anda.
Mode alpha
Untuk objek yang memerlukan bagian transparansi sebagian atau sepenuhnya, seperti rumput, daun, renda, atau decal seperti kotoran atau kotoran, Anda dapat menggunakan berbagai mode alpha untuk menerapkan transparansi ke peta warna Anda. Jika format gambar peta warna Anda mendukung saluran alpha, Anda dapat menerapkan peta alpha berwarna abu-abu di mana 0.0 adalah transparan dan 1.0 adalah opak. Demikian pula, saat menggunakan format gambar seperti .png, setiap opasitas pada peta warna diterapkan sebagai transparansi pada aset.
Anda dapat menerapkan transparansi dalam dua perilaku yang berbeda dengan mengatur nilai AlphaMode berikut:
- Overlay — Menempatkan ColorMap di atas MeshPart.Color menggabung. Peta warna yang menggunakan mode overlay mengungkapkan warna dasar mesh di mana saja transparansi hadir. Ini adalah pengaturan default.
- Transparansi — Menghapus mesh yang terlihat berdasarkan transparansi di ColorMap. Ini membuat mesh transparan dan tidak mengungkapkan warna mesh asli setiap kali transparansi hadir.
Opak
Anda dapat menggunakan mode Enum.AlphaMode.Opaque untuk mengabaikan saluran alpha dari ColorMap sepenuhnya. Dalam hal ini nilai alpha diasumsikan adalah 1 (sepelengkap).
Contoh berikut menunjukkan bagaimana mode Opaque bekerja dengan menggunakan objek biru sebagai referensi:
Overlay
Anda dapat menggunakan Enum.AlphaMode.Overlay untuk mengungkap bagian dari warna asal mesh. Karena area transparan dari peta warna mengungkapkan warna di bawahnya, Anda dapat merancang peta tekstur unik yang mengungkapkan sebagian atau seluruh properti Color untuk warna kulit kustom atau situasi lain dengan warna unik.
Contoh berikut menunjukkan bagaimana mode Overlay bekerja dengan menggunakan referensi bola biru muda:
Contoh berikut menggunakan mode Overlay untuk karakter kustom, mengungkapkan warna kulit karakter yang asli:


Lihat warna kulit kustom untuk detail tambahan tentang mengoptimalkan overlay untuk kulit dan aplikasi serupa.
Transparansi
Anda dapat menggunakan mode Enum.AlphaMode.Transparency untuk membuat objek yang kompleks atau sangat halus, seperti renda atau jaring, dengan menghapus bagian yang terlihat dari mesh sebagai alternatif untuk memahat geometri mesh. Karena ini tidak mempengaruhi geometri objek mesh, ini dapat memungkinkan Anda untuk membuat objek yang detail tanpa dampak kinerja dari model mesh yang rumit.
Contoh berikut menunjukkan bagaimana transparansi parsial dan penuh dalam mode ini secara visual menghapus bagian dari mesh:



Ada dua hasil dari mode Transparency, tergantung pada apakah MeshPart.Transparency diatur ke 0 atau setidaknya 0.02, meskipun presisi numerik dapat menghasilkan nilai kecil seperti 0.01 yang memicu transparansi opak.
- Ketika alpha digunakan untuk memotong bentuk objek yang sebagian besar opak dengan tepi keras seperti dedaunan, kain renda, dan jaring, atur MeshPart.Transparency ke 0. Ketika bagian permukaan sepenuhnya opak, mesin Roblox dapat merendernya dengan penghalang berdasarkan kedalaman yang tepat. Permukaan opak juga umumnya bekerja lebih baik dengan efek berbasis kedalaman seperti DepthOfFieldEffect, pembiasan kaca dan air, dan pantulan air.
- Ketika alpha digunakan untuk menambahkan detail ke objek semi-transparan atau objek dengan gradien transparansi yang halus, atur MeshPart.Transparency ke setidaknya 0.02. Ini meningkatkan kualitas penggabungan untuk objek seperti jendela kotor dan bulu dengan tepi lembut, tetapi tidak akan bekerja dengan semua efek.
Tinta topeng
Anda dapat menggunakan mode Enum.AlphaMode.TintMask untuk menerapkan pewarnaan SurfaceAppearance.Color ke area tertentu dari permukaan. Pewarnaan paling kuat di mana saluran alpha sepenuhnya terlihat dan tidak diterapkan di mana saluran alpha transparan.

Pewarnaan warna
Anda dapat menerapkan pewarnaan ke peta warna Anda dengan memodifikasi properti SurfaceAppearance.Color. Pewarnaan tidak mempengaruhi kinerja dan Anda dapat menghemat memori dengan menggunakan satu peta warna yang berbeda warna. Gunakan pewarnaan warna untuk menciptakan variasi dengan biaya rendah di antara tekstur PBR MeshPart Anda atau untuk memodifikasi warna permukaan PBR Anda secara programatik dalam waktu nyata.



Pewarnaan SurfaceAppearance.Color diterapkan sebagai pengali, sehingga penampilan akhir adalah fungsi dari Color3 (warna texel) kali SurfaceAppearance.Color. Ini berarti bahwa penulisan SurfaceAppearance.ColorMap asli Anda dalam warna abu-abu dekat-putih menciptakan efek pewarnaan yang paling kuat ketika properti ini diterapkan.
Pewarnaan hanya diterapkan pada SurfaceAppearance.ColorMap dan bukan pada MeshPart.Color. Anda dapat terus menggunakan saluran alpha saat menerapkan transparansi.
Ketika SurfaceAppearance.AlphaMode diatur ke Overlay dan saluran alpha ada, MeshPart.Color yang mendasarinya terungkap dan pewarnaan SurfaceAppearance.Color hanya diterapkan pada peta warna SurfaceAppearance yang terlihat.
Ketika SurfaceAppearance.AlphaMode diatur ke TintMask dan saluran alpha ada, saluran alpha mengontrol jumlah pewarnaan SurfaceAppearance.Color. Pewarnaan paling kuat di mana saluran alpha sepenuhnya terlihat dan tidak diterapkan di mana saluran alpha transparan.

Normal
Peta normal, atau permukaan, menambahkan kedalaman tekstur pada permukaan Anda dan berfungsi mirip dengan peta tinggi. Akibatnya, efeknya mungkin memudar atau menguat tergantung pada sudut pandang dan lingkungan pencahayaan.
Dalam gambar berikut, Anda dapat beralih antara referensi mesh dan referensi peta untuk perbandingan nilai peta normal:



Saluran R, G, dan B dari gambar masing-masing sesuai dengan komponen X, Y, dan Z dari vektor permukaan lokal. Gambar uniform dengan warna [127, 127, 255] diterjemahkan menjadi peta normal yang sepenuhnya datar. Roblox hanya mendukung peta normal dengan format OpenGL - Ruang Tangen.
Peta normal sangat mempengaruhi permukaan visual sebuah mesh dan dapat menonjolkan sambungan yang tidak nyaman di tekstur Anda. Kapan pun memungkinkan, sembunyikan sambungan tekstur Anda untuk menghindari masalah visual dengan mesh Anda.
Kekasaran
Peta kekasaran, atau mikropermukaan, menentukan bagaimana cahaya menyebar di seluruh permukaan model Anda. Ketika kekasaran adalah 0%, permukaan tidak menyebar cahaya sama sekali, menghasilkan refleksi dan kilau yang jauh lebih tajam dan lebih cerah pada material Anda. Pada 100%, cahaya dan refleksi menyebar secara merata di atas model menghasilkan permukaan yang kurang reflektif yang mirip dengan matte.
Gambar berikut menunjukkan perbandingan berbagai nilai peta kekasaran:



Kekasaran dapat mempengaruhi seberapa reflektif objek pada sudut yang berbeda, yang disebut sebagai efek Fresnel. Pemrosesan fresnel di Studio bertujuan untuk akurasi fisik yang nyata, meskipun Anda dapat mendapatkan kontribusi spekular yang tidak terduga pada sudut tertentu meskipun dengan permukaan kasar. Dalam beberapa kasus, Anda dapat mengkompensasi dengan meningkatkan nilai peta kekasaran Anda sekitar 0.1 lebih kasar untuk mencapai respons pencahayaan yang konsisten dengan material Anda.
Meski Roblox merender efek pencahayaan ini dengan akurat, kecerahan dan reflektifitas permukaan mungkin tidak merespons secara konsisten antara perangkat lunak pengolah konten tekstur Anda, seperti Substance Painter, dan Studio. Lihat contoh pakaian untuk perbedaan dalam merender antara aplikasi.
Metalness
Metalness menentukan reflektifitas permukaan. Dalam banyak kasus, Anda harus mengatur nilai ini ke 0% (non-logam) atau 100% (logam), meskipun Anda dapat menggunakan nilai metalness parsial saat membuat permukaan dengan sifat reflektif sedang seperti satin atau sutra. Praktik ini dapat secara halus meniru refleksi dalam material untuk menonjolkan warna dari peta warna/albedo di atas warna yang dipantulkan dari lingkungan.
Lihat gambar berikut untuk perbandingan berbagai nilai peta metalness:



Renderer PBR yang berbeda menggunakan berbagai alur kerja untuk memproses reflektifitas. Studio hanya menggunakan alur kerja metalness yang menentukan apakah suatu material adalah non-logam atau logam, kadang-kadang disebut sebagai isolator atau konduktor.
Emissive mask
Tekstur konten EmissiveMaskContent berwarna abu-abu menerapkan topeng emissif di seluruh permukaan. Ini memungkinkan Anda menggunakan tekstur untuk mengontrol emisivitas untuk kontrol artistik yang lebih dari material Neon yang semua atau tidak sama sekali dan memungkinkan Anda untuk menciptakan efek bercahaya yang rinci seperti teks yang diterangi, armatur futuristik, atau makhluk bioluminescent.
Properti terkait EmissiveTint menentukan warna pewarnaan untuk kontribusi emissif, dan EmissiveStrength menentukan kekuatan kontribusi emissif.







