Mencari untuk membuat tekstur untuk Unity3d, dan saya terjebak pada apa yang tampaknya menjadi tahap sederhana. Tujuan saya adalah membuat gambar RGBA, dengan informasi warna untuk setiap piksel, dan saluran alfa terpisah. Kedua komponen ini dimasukkan ke dalam Unity sebagai warna dasar dan kekuatan pantulan. (Menggunakan bahan "Reflective / Bumped Diffuse".)
Jika saya menggunakan alat masking di Photoshop, saya dapat menghapus bagian dari gambar output (transparansi). Namun, saya ingin menyimpan informasi warna RBG asli saat output, dan tidak hanya memiliki area "kosong". Juga, alangkah baiknya jika saya bisa melakukannya tanpa merusak, yaitu. saluran alfa akhir tergantung pada lapisan standar, atau dibangun dari objek jalur, dll.
Saya memiliki masalah yang sama dengan The Gimp.
Bantuan apa pun akan sangat dihargai.
(Jika Photoshop / Gimp bukan alat untuk pekerjaan itu, dapatkah seseorang merekomendasikan yang lebih baik?)
Saya menemukan cara terbaik untuk melakukan ini di The GIMP adalah dengan menggunakan layer mask (klik kanan pada layer dan buat mask).
Lapisan kemudian akan memiliki dua "gambar" yang terkait dengannya - gambar RGBA dan topeng lapisan abu-abu yang bertindak sebagai saluran alfa ekstra (multiplikatif). Anda dapat mengklik salah satu gambar ini untuk memilih yang mana yang akan diedit.
Jika Anda memegang CTRL dan mengklik layer mask, Anda hanya akan melihat gambar RGBA (ini menonaktifkan mask). Jika Anda menahan ALT dan mengklik layer mask, Anda hanya akan melihat layer mask.
Saat Anda mengekspor gambar dengan layer mask aktif, gambar yang diekspor akan mempertahankan informasi warna bahkan dari area yang membuat mask sepenuhnya transparan.
Untuk keperluan Anda, Anda mungkin menemukan itu efektif untuk menyusun saluran alpha Anda pada layer (RGBA) yang terpisah - maka ketika Anda selesai Anda bisa menyalin layer ini ke dalam layer mask dari layer asli.
sumber
Dalam GIMP, salah satu caranya adalah dengan membagi gambar menjadi beberapa layer untuk setiap saluran. Pilih "Colors-> Components-> Decompose" dan pilih RGBA atau saluran apa pun yang ingin Anda bagi menjadi lapisan. Kemudian edit masing-masing saluran alfa dan warna sesuai keinginan Anda (harus berwarna abu-abu), lalu buka "Warna-> Komponen-> Tulis" pilih tata letak saluran yang Anda inginkan dan pilih layer Anda untuk digunakan untuk setiap saluran.
Anda juga dapat menggunakan dialog "Saluran". Itu harus menjadi bagian dari hal-hal toolbox default, tetapi jika tidak Anda dapat memilih "Windows-> Dockable Dialogues-> Channels". Anda dapat mengaktifkan visibilitas setiap saluran warna, dan dengan mengklik dan menyorot nama saluran, Anda dapat memilih mana yang akan diedit satu per satu (sepertinya itu mempertahankan warna dengan alpha, meskipun saya tidak melihat cara untuk "menyembunyikan" alfa sementara mengedit tanpa menyembunyikan seluruh gambar ...).
sumber
Untuk menulis prosesor konten Anda sendiri (seperti yang disarankan oleh @Andrew Russell) khusus untuk Unity3D, tempatkan skrip ini di
Assets/Editor
folder Anda akan menggabungkan gambar apa pun*-Base.*
dengan file dengan nama yang sama*-Alpha.*
dan memodifikasi tekstur asli:Beradaptasi dengan konvensi penamaan file aset Anda sendiri.
sumber
Salah satu alternatif adalah menulis prosesor konten Anda sendiri untuk melakukan operasi yang Anda inginkan. Dengan cara itu Anda bisa memberikan layer "reflektifitas" Anda (atau bahkan beberapa lapisan reflektifitas) nama khusus, dan minta prosesor konten memasukkan data itu ke saluran alpha untuk Anda. (Atau memang menerapkan segala jenis proses yang Anda suka.)
Jika Anda menggunakan XNA dan The GIMP (ini adalah apa yang saya gunakan dan saya kenal), maka akan sangat mudah bagi Anda untuk menambahkan importir XCF ini ke pipa konten Anda dan membuat modifikasi yang diperlukan untuk memproses lapisan bernama khusus.
Saat Anda menggunakan Unity, bukan XNA, saya tidak terbiasa dengan opsi pipa konten apa yang Anda miliki. Tetapi mungkin Anda dapat mengadaptasi kode tertaut sehingga berfungsi dalam proses konten Anda.
sumber