Rendering Berbasis Fisik (PBR) memungkinkan Anda untuk merepresentasikan pencahayaan dan bayangan yang realistis dengan menggunakan beberapa 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 pembuatan objek 3D kustom, asalkan Roblox Studio mendukung peta tekstur spesifik yang Anda gunakan.
Panduan ini memberikan instruksi tentang menyiapkan objek mesh Anda untuk menggunakan peta tekstur PBR, dan menjelaskan kasus penggunaan umum serta praktik terbaik untuk peta tekstur PBR yang didukung oleh Roblox. Saat membuat permukaan Anda sendiri, lihat referensi material untuk nilai material umum, perbandingan gambar, dan contoh pakaian.
Aktifkan penampilan permukaan
Anda dapat menambahkan tekstur PBR ke MeshPart mana pun dengan menambahkan objek SurfaceAppearance yang menimpa tekstur yang ditetapkan sebelumnya. Secara umum, Anda tidak dapat memodifikasi properti SurfaceAppearance melalui skrip selama permainan karena mesin memerlukan beberapa pemrosesan awal 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 berikut untuk gambaran umum tentang peta tekstur yang didukung oleh Roblox dan sumber daya tambahan:
Properti ColorMap mengatur 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 parsial atau lengkap, seperti rumput, daun, renda, atau decal seperti kotoran atau grunge, Anda dapat menggunakan berbagai mode alpha untuk menerapkan transparansi pada peta warna Anda. Jika format gambar peta warna Anda mendukung saluran alpha, Anda dapat menerapkan peta alpha grayscale di mana 0.0 transparan dan 1.0 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 berbeda dengan mengatur nilai AlphaMode berikut:
- Overlay — Menumpuk ColorMap di atas MeshPart.Color mesh yang mendasarinya. Peta warna yang menggunakan mode overlay mengungkapkan warna dasar mesh di mana pun transparansi ada. Ini adalah pengaturan default.
- Transparansi — Menghapus mesh yang terlihat berdasarkan transparansi di ColorMap. Ini membuat mesh menjadi tembus pandang dan tidak mengungkapkan warna mesh asli kapan pun transparansi ada.
Opaque
Anda dapat menggunakan mode Enum.AlphaMode.Opaque untuk mengabaikan saluran alpha dari ColorMap sepenuhnya. Dalam hal ini, nilai alpha dianggap 1 (sepenuhnya opak).
Contoh berikut menunjukkan bagaimana mode Opaque bekerja menggunakan objek biru sebagai referensi:
Overlay
Anda dapat menggunakan Enum.AlphaMode.Overlay untuk mengungkapkan bagian dari warna asli mesh. Karena area transparan dari peta warna mengekspos warna yang mendasari, Anda dapat merancang peta tekstur unik yang sebagian atau sepenuhnya mengungkapkan properti Color untuk warna kulit kustom atau situasi lain dengan warna unik.
Contoh berikut menunjukkan bagaimana mode Overlay bekerja menggunakan referensi bola biru muda:
Contoh berikut menggunakan mode Overlay untuk karakter kustom, mengungkapkan warna kulit asli karakter:


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 membentuk geometri mesh. Karena ini tidak mempengaruhi geometri objek mesh, ini 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 oklusi berbasis kedalaman yang tepat. Permukaan opak juga umumnya bekerja lebih baik dengan efek berbasis kedalaman seperti DepthOfFieldEffect, pembiasan kaca dan air, serta refleksi air.
- Ketika alpha digunakan untuk menambahkan detail pada objek semi-transparan atau objek dengan gradien transparansi yang halus, atur MeshPart.Transparency ke setidaknya 0.02. Ini meningkatkan kualitas pencampuran untuk objek seperti jendela kotor dan bulu dengan tepi lembut, tetapi tidak akan berfungsi dengan semua efek.
Tint mask
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 tint pada peta warna Anda dengan memodifikasi properti SurfaceAppearance.Color. Pewarnaan tidak mempengaruhi kinerja dan Anda dapat menghemat memori dengan menggunakan satu peta warna dengan berbagai tint. Gunakan pewarnaan warna untuk menciptakan variasi biaya rendah tambahan antara tekstur PBR MeshPart Anda atau untuk memodifikasi warna permukaan PBR Anda secara programatis dalam waktu nyata.



Pewarnaan SurfaceAppearance.Color diterapkan sebagai pengali, sehingga penampilan akhir adalah fungsi dari Color3 (warna texel) kali SurfaceAppearance.Color. Ini berarti bahwa membuat SurfaceAppearance.ColorMap asli Anda dalam warna grayscale mendekati 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 mendasari 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 ke permukaan Anda dan berperilaku mirip dengan peta tinggi. Akibatnya, efeknya dapat 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 berkaitan dengan komponen X, Y, dan Z dari vektor permukaan lokal. Gambar seragam dengan warna [127, 127, 255] diterjemahkan menjadi peta normal yang sepenuhnya datar. Roblox hanya mendukung peta normal format OpenGL - Ruang Tangen.
Peta normal secara mencolok mempengaruhi permukaan visual dari sebuah mesh dan dapat menonjolkan jahitan yang tidak nyaman dalam tekstur Anda. Sebisa mungkin, sembunyikan jahitan tekstur Anda untuk menghindari masalah visual dengan mesh Anda.
Kekasaran
Peta kekasaran, atau mikropermukaan, menentukan bagaimana cahaya tersebar di permukaan model Anda. Ketika kekasaran berada di 0%, permukaan tidak menyebarkan cahaya sama sekali, menghasilkan refleksi dan kilau yang jauh lebih tajam dan lebih cerah pada material Anda. Pada 100%, cahaya dan refleksi tersebar merata di seluruh model menghasilkan permukaan matte yang kurang reflektif.
Gambar berikut menunjukkan perbandingan berbagai nilai peta kekasaran:



Kekasaran dapat mempengaruhi seberapa reflektif suatu objek pada sudut yang berbeda, yang disebut sebagai efek Fresnel. Pemrosesan fresnel Studio bertujuan untuk akurasi fisik dunia nyata, meskipun Anda mungkin mendapatkan kontribusi spekular yang tidak terduga pada sudut tertentu bahkan dengan permukaan yang 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.
Meskipun Roblox merender efek pencahayaan ini dengan akurat, kecerahan dan reflektifitas permukaan mungkin tidak merespons secara konsisten antara perangkat lunak konten tekstur Anda, seperti Substance Painter, dan Studio. Lihat contoh pakaian untuk perbedaan dalam rendering antara aplikasi.
Metalness
Metalness menentukan reflektifitas suatu permukaan. Dalam kebanyakan 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 moderat 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 di lingkungan.
Lihat gambar berikut untuk perbandingan berbagai nilai peta metalness:



Berbagai renderer PBR menggunakan berbagai alur kerja untuk memproses reflektifitas. Studio hanya menggunakan alur kerja metalness yang menentukan apakah material adalah non-logam atau logam, kadang-kadang disebut sebagai isolator atau konduktor.
Emissive mask
Tekstur konten grayscale EmissiveMaskContent menerapkan masker emissif di seluruh permukaan. Ini memungkinkan Anda menggunakan tekstur untuk mengontrol emissivitas untuk kontrol artistik yang lebih baik daripada material Neon yang semuanya atau tidak sama sekali dan memungkinkan Anda untuk membuat efek bercahaya yang detail seperti teks yang diterangi, armor futuristik, atau makhluk bioluminescent.
Properti terkait EmissiveTint menentukan warna tinting untuk kontribusi emissif, dan EmissiveStrength menentukan kekuatan kontribusi emissif.







