Saya perlu mengimplementasikan sesuatu yang kita lihat di game RTS: warna tim. Pada dasarnya, saya mencari cara untuk mewarnai bagian-bagian tertentu dari model. Bagaimana saya mencapai ini? Saya tidak tahu harus mulai dari mana. Apakah saya perlu melakukan beberapa penyesuaian pada model 3d terlebih dahulu?
16
Error 1 Missing asset "C:\Users\Kai\AppData\Local\Temp\fbx.shader.temp.1064.2756\ReplaceColor.fx"
. Saya tidak mengerti bagaimana saya bisa memperbaikinya.Satu teknik adalah memiliki dua set tekstur untuk masing-masing model - satu merah, yang lain biru. Kemudian tergantung pada tim mana karakter ditugaskan untuk Anda menerapkan set tekstur itu.
Jelas ini hanya bekerja jika Anda hanya memiliki dua tim. Meskipun Anda mungkin lolos dengan lebih dari dua, itu mulai menjadi tidak efisien.
Cara lain adalah memadukan dua tekstur - yang pertama adalah tekstur dasar untuk model, yang kedua adalah overlay berwarna yang dapat Anda hasilkan saat runtime.
Cara ketiga bisa dengan mengubah warna model dasar dan tidak memiliki tekstur (atau sebagian tekstur transparan) di atas bagian-bagian model yang Anda ingin menunjukkan warna tim.
sumber
Mengabdikan saluran alpha tekstur ke warna tim membuat tekstur DXT 2x lebih besar, jadi saya lebih suka menggunakan kunci kroma untuk menghitung warna tim. Tentukan satu warna (misalnya hijau, biru, magenta) sebagai "warna yang dicadangkan" dalam tekstur Anda.
Saat mesin dinyalakan, buat matriks untuk setiap warna tim yang memutar "warna yang dipesan" ke warna tim. Tepat sebelum menggambar objek tim, tetapkan matriks ini sebagai konstanta piksel shader.
Dalam pixel shader, ubah warna pixel dengan matriks warna tim. Lerp warna piksel yang tidak diubah dengan warna piksel yang diubah, dengan jumlah yang sebanding dengan sudut kroma piksel dengan kroma "warna yang dipesan".
Ini akan membebani Anda beberapa instruksi ALU dan memicu pixel shader, tapi itu jauh lebih murah daripada membengkak cache tekstur Anda dengan tekstur 2x lebih besar.
Anda juga memiliki kemampuan untuk memiliki beberapa kunci kroma (mis. Magenta dan cyan dipetakan ke warna tim primer dan sekunder) tanpa mencurahkan satu saluran tekstur untuk setiap warna.
sumber
Teknik saya adalah: Memiliki 2 tekstur: satu tekstur utama, satu tekstur kedua overlay utama tetapi hanya bagian yang ingin diwarnai. Ubah warna tekstur kedua sesuai keinginan.
sumber