Material warna
Bahan warna adalah salah satu jenis bahan yang didukung di Azure Remote Rendering. Mereka digunakan untuk jala yang seharusnya tidak menerima pencahayaan apa pun, melainkan selalu muncul pada kecerahan penuh. Kasus ini mungkin berlaku untuk bahan 'bersinar', seperti dasbor mobil, bola lampu, atau untuk data yang sudah menyertakan pencahayaan statik, seperti model yang diperoleh melalui fotogrametri.
Bahan warna lebih efisien untuk dirender daripada bahan PBR karena model bayangannya yang lebih sederhana. Bahan tersebut juga mendukung mode transparansi yang berbeda.
Properti bahan warna
Properti material berikut diekspos dalam API runtime, misalnya pada kelas C# ColorMaterial atau kelas C++ ColorMaterial.
ColorFlags
: Bendera fitur lain-lain dapat digabungkan dalam masker bit ini untuk mengaktifkan fitur berikut:UseVertexColor
: Jika jala berisi vertex warna dan opsi ini diaktifkan, warna jala vertex dikalikan menjadiAlbedoColor
danAlbedoMap
. Secara defaultUseVertexColor
dinonaktifkan.DoubleSided
: Jika dua sisi diatur ke true, segitiga dengan bahan ini dirender bahkan jika kamera melihat wajah belakang mereka. Secara default, opsi ini dinonaktifkan. Lihat juga Single-sided rendering.AlphaClipped
: Mengaktifkan hard cut-out berdasarkan per piksel, berdasarkan nilai alfa berada di bawah nilaiAlphaClipThreshold
(lihat di bawah). Ini juga berfungsi untuk bahan buram.TransparencyWritesDepth
: JikaTransparencyWritesDepth
bendera diatur pada bahan dan bahannya transparan, objek yang menggunakan bahan ini juga akan berkontribusi pada buffer kedalaman akhir. Lihat propertiColorTransparencyMode
bahan warna di bagian berikutnya. Mengaktifkan fitur ini disarankan jika kasus penggunaan Anda membutuhkan proyeksi ulang tahap akhir yang lebih masuk akal dari scene yang sepenuhnya transparan. Untuk scene campuran buram/transparan, pengaturan ini mungkin memperkenalkan perilaku proyeksi ulang yang tidak masuk akal atau artefak proyeksi ulang. Karena alasan ini, pengaturan default dan yang disarankan untuk kasus penggunaan umum adalah menonaktifkan bendera ini. Nilai kedalaman tertulis diambil dari lapisan kedalaman per piksel objek yang paling dekat dengan kamera.FresnelEffect
: Bendera bahan ini memungkinkan efek fresnel aditif pada bahan masing-masing. Tampilan efek diatur oleh parameterFresnelEffectColor
fresnel lainnya danFresnelEffectExponent
dijelaskan di bawah ini.
AlbedoColor
: Warna ini dikalikan dengan warna lain, sepertiAlbedoMap
warna atau vertex . Jika transparansi diaktifkan pada bahan, saluran alfa digunakan untuk menyesuaikan tingkat keburaman, dengan1
berarti sepenuhnya buram dan0
berarti sepenuhnya transparan. Warna albedo default adalah putih buram.Catatan
Karena bahan warna tidak mencerminkan lingkungan, bahan warna yang sepenuhnya transparan menjadi tidak terlihat. Ini berbeda untuk bahan PBR.
AlphaClipThreshold
: JikaAlphaClipped
bendera diatur padaColorFlags
properti, semua piksel di mana nilai alfa albedo lebih rendah dariAlphaClipThreshold
nilai tidak akan digambar. Kliping alfa dapat digunakan bahkan tanpa mengaktifkan transparansi dan jauh lebih cepat untuk dirender. Bahan yang diklip alfa masih lebih lambat untuk dirender daripada bahan yang sepenuhnya buram. Secara default, kliping alfa dinonaktifkan.TexCoordMode
: Menentukan mode yang digunakan untuk menghasilkan koordinat tekstur untuk tekstur albedo. Mode ini diabaikan jika materi ini tidak menggunakan tekstur. Secara default, koordinat tekstur diambil dari aliran vertex input jala (modeTextureCoordinateGenerationMode.SourceUv0
atauTextureCoordinateGenerationMode.SourceUv1
) dan kemudian diubah melaluiTexCoordScale
danTexCoordOffset
. Saat menyiapkan materi melalui kode, mode ini juga dapat diatur keTextureCoordinateGenerationMode.PlanarObjectSpace
atauTextureCoordinateGenerationMode.PlanarWorldSpace
untuk menghasilkan koordinat sebagai jarak puncak ke dua bidangTexCoordPlaneU
3D yang dapat dikonfigurasi danTexCoordPlaneV
. Ini disebut sebagai 'pemetaan tekstur planar'.TexCoordScale
danTexCoordOffset
: Untuk koordinat tekstur dari jala sumber, transformasi linier ekstra dapat diterapkan. Skala dikalikan ke koordinat tekstur UV, offset ditambahkan ke dalamnya. Dapat digunakan untuk merentangkan dan menggeser tekstur. Skala default adalah (1, 1) dan offset adalah (0, 0).TexCoordPlaneU
danTexCoordPlaneV
: Untuk mode pemetaan planar, ini menentukan bidang tekstur untuk koordinat u dan koordinat v masing-masing. Bidang didefinisikan dalam bentuk normal standar (A,B,C,D), sehingga koordinat dihitung sebagai t = Ax + By + C*z + D, di mana (x,y,z) adalah posisi puncak di ruang dunia atau objek.FresnelEffectColor
: Warna fresnel yang digunakan untuk bahan ini. Hanya penting ketika bendera efek fresnel telah diatur pada materi ini (lihat di atas). Properti ini mengontrol warna dasar kilau fresnel (lihat efek fresnel untuk penjelasan lengkap). Saat ini hanya nilai saluran RGB yang penting dan nilai alfa akan diabaikan.FresnelEffectExponent
: Eksponen fresnel yang digunakan untuk bahan ini. Hanya penting ketika bendera efek fresnel telah diatur pada materi ini (lihat di atas). Properti ini mengontrol penyebaran kilau fresnel. Nilai minimum 0,01 menyebabkan penyebaran di seluruh objek. Nilai maksimum 10.0 membatasi kilau hanya ke tepi yang paling merumput yang terlihat.VertexMix
: Nilai ini antara0
dan1
menentukan seberapa kuat warna dalam jala vertex berkontribusi pada warna akhir. Pada nilai default 1, warna vertex dikalikan menjadi warna albedo sepenuhnya. Dengan nilai 0, warna vertex diabaikan sepenuhnya.ColorTransparencyMode
: Bertentangan dengan bahan PBR, bahan warna membedakan antara mode transparansi yang berbeda:Opaque
: Mode default menonaktifkan transparansi. Namun, kliping alfa masih dimungkinkan, dan harus lebih disukai, jika cukup.AlphaBlended
: Mode ini mirip dengan mode transparansi untuk bahan PBR. Ini harus digunakan untuk bahan tembus pandang seperti kaca.Additive
: Mode ini adalah mode transparansi yang paling sederhana dan paling efisien. Kontribusi bahan ditambahkan ke gambar yang dirender. Mode ini dapat digunakan untuk menyimulasikan objek bercahaya (tetapi tetap transparan), seperti penanda yang digunakan untuk menyorot objek penting.
Catatan
Sementara AlbedoColor
dan FresnelEffectColor
memiliki rentang nilai yang diterima yang sama seperti untuk bahan PBR, saluran mereka akan secara efektif dijepit ke [0; 1] untuk bahan Warna.
Penggantian material warna selama konversi
Subset properti bahan warna dapat ditimpa selama konversi model melalui file penimpaan materi. Tabel berikut ini memperlihatkan pemetaan antara properti runtime yang didokumenkan di atas dan nama properti terkait dalam file penimpaan:
Nama properti material | Nama properti dalam file penggantian |
---|---|
ColorFlags.AlphaClipped |
alphaClipEnabled |
ColorFlags.UseVertexColor |
useVertexColor |
ColorFlags.DoubleSided |
isDoubleSided |
ColorFlags.TransparencyWritesDepth |
transparencyWritesDepth |
AlbedoColor |
albedoColor |
TexCoordScale |
textureCoordinateScale |
TexCoordOffset |
textureCoordinateOffset |
ColorTransparencyMode |
transparent |
AlphaClipThreshold |
alphaClipThreshold |
Dokumentasi API
- C# kelas ColorMaterial
- C# RenderingConnection.CreateMaterial()
- C++ kelas ColorMaterial
- C++ RenderingConnection::CreateMaterial()