Editor Unity menawarkan alur kerja linier dan gamma. Aliran kerja linier memiliki penyeberangan ruang warna di mana TexturesGambar yang digunakan ketika membuat elemen GameObject, Sprite, atau UI. Tekstur sering diterapkan pada permukaan mesh untuk memberikan detail visual. More info
Lihat di Glossary yang diberi wewenang di ruang warna gamma dapat dengan benar dan tepat dirender di ruang warna linier. Lihat dokumentasi tentang Gambaran keseluruhan rendering linier untuk informasi lebih lanjut tentang ruang warna gamma dan linier.
Untuk membaca lebih lanjut, lihat dokumentasi tentang:
Tekstur cenderung disimpan di ruang warna gamma, sementara Shaders mengharapkan ruang warna linier. Seperti itu, ketika Tekstur sampel di Shaders, nilai berbasis gamma menyebabkan hasil yang tidak akurat. Untuk mengatasi ini, Anda dapat mengatur Unity untuk menggunakan sampler RGB untuk menyeberang dari gamma ke pengambilan sampel linier. Ini memastikan alur kerja linier dengan semua input dan output dari ShaderProgram yang berjalan di GPU. More info
Lihat di Glossary di ruang warna yang benar, menghasilkan hasil yang benar.
Untuk menentukan alur kerja gamma atau linier, pergi ke Edit > Project SettingsPengumpulan yang luas dari pengaturan yang memungkinkan Anda untuk mengkonfigurasi bagaimana Fisika, Audio, Jaringan, Grafik, Input dan banyak bidang lain dari jangkauan proyek Anda. More info
Lihat di Glossary, kemudian pilih kategori Player, arahkan ke Other Settings, buka bagian Rendering, dan ubah Color Space ke Linear atau Gamma, tergantung pada preferensi Anda.
Meskipun alur kerja linier memastikan rendering yang lebih tepat, kadang-kadang Anda mungkin ingin alur kerja gamma (misalnya, pada beberapa platform perangkat keras hanya mendukung format gamma).
Untuk melakukan ini, set Color Space ke Gamma dalam pengaturan Player (menu: Edit > Project Settings, kemudian pilih kategori Player). Dengan opsi ini dipilih, pipa rendering menggunakan semua warna dan tekstur di ruang warna gamma di mana mereka disimpan - tekstur tidak memiliki koreksi gamma dihapus dari mereka ketika mereka digunakan di Shader.
Perhatikan bahwa Anda dapat memilih untuk memotong sampling sRGB dalam mode Color Space: Gamma dengan memeriksa kotak cemen di sRGB (Color Texture) untuk Tekstur.Jendela inspektur for the Texture.
Note: Meskipun nilai-nilai ini berada di ruang gamma, semua perhitungan Shader Editor Unity masih memperlakukan masukan mereka seolah-olah mereka berada di ruang linier. Untuk memastikan hasil akhir yang dapat diterima, Editor membuat penyesuaian untuk menangani format yang tidak cocok ketika menulis output Shader ke bingkaibuffer dan tidak menerapkan koreksi gamma untuk hasil akhir.
Bekerja di ruang warna linier memberikan rendering yang lebih akurat daripada bekerja di ruang warna gamma.
Untuk melakukan ini, set Color Space ke Linear dalam pengaturan Player (menu: Edit > Project Settings, kemudian pilih kategori Player).
Anda dapat bekerja di ruang warna linier jika Tekstur Anda dibuat di ruang warna linier atau gamma. Masukan Tekstur ruang warna Gamma ke program Shader ruang warna linier disediakan ke Shader dengan koreksi gamma dihapus dari mereka.
Note: Jendela Texture preview di Pengaturan Impor Tekstur menampilkan Tekstur menggunakan campuran gamma bahkan jika Anda bekerja di ruang warna linier.
Untuk warna, konversi ini diterapkan secara implicitly, karena Editor Unity telah mengkonversi nilai ke titik mengambang sebelum melewatinya ke GPU sebagai konstan. Ketika sampling Tekstur, GPU secara otomatis menghilangkan koreksi gamma, mengubah hasil ke ruang linier.
Input ini kemudian dilewatkan ke Shader, dengan perhitungan pencahayaan terjadi di ruang linier karena biasanya dilakukan. Ketika menulis nilai yang dihasilkan ke bingkaibuffer, itu baik lurus gamma-corrected atau kiri di ruang linier untuk koreksi gamma nanti - ini tergantung pada konfigurasi rendering saat ini. Misalnya, dalam rentang dinamis tinggi (HDR), hasil rendering tersisa di ruang linier dan gamma dikoreksi nanti.
Saat menggunakan rendering linier, nilai input ke persamaan pencahayaan berbeda dengan ruang gamma. Ini berarti berbeda hasil tergantung pada ruang warna. Misalnya, permukaan mencolok ringan memiliki kurva respons yang berbeda, dan Efek Gambar berperilaku berbeda.
Mati dari jarak dan pencahayaan berbasis normal berbeda dalam dua cara:
Ketika rendering dalam mode linier, koreksi gamma tambahan yang dilakukan membuat radius cahaya tampak lebih besar.
Tepi pencahayaan juga tampak lebih jelas. Ini lebih benar model intensitas pencahayaan jatuh di permukaan.
Ketika Anda menggunakan rendering gamma, warna dan Tekstur yang disediakan kepada Shader sudah memiliki koreksi gamma yang diterapkan pada mereka. Ketika mereka digunakan dalam Shader, warna-warna bercahaya tinggi sebenarnya lebih cerah daripada mereka harus dibandingkan dengan pencahayaan linier. Ini berarti bahwa sebagai intensitas cahaya meningkat, permukaan menjadi lebih cerah dengan cara nonlinier. Ini mengarah ke pencahayaan yang bisa terlalu terang di banyak tempat. Ini juga dapat memberikan model dan scenesAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary rasa yang dicuci. Ketika Anda menggunakan rendering linier, respons dari permukaan tetap linier sebagai intensitas cahaya meningkat. Ini mengarah ke permukaan yang lebih realistis dan respons warna yang jauh lebih bagus dari permukaan.
Gambar Scan Kepala 3D Infinite di bawah ini menunjukkan intensitas cahaya yang berbeda pada model kepala manusia di bawah pencahayaan linier dan pencahayaan gamma.
Ketika dicampur ke dalam bingkaibuffer, campuran terjadi di ruang warna bingkaibuffer.
Ketika Anda menggunakan rendering ruang gamma, warna nonlinear dicampur bersama. Ini bukan cara yang benar secara matematika untuk mencampur warna, dan dapat memberikan hasil yang tak terduga, tetapi satu-satunya cara untuk melakukan campuran pada beberapa perangkat keras grafis.
Ketika Anda menggunakan rendering ruang linier, campuran terjadi di ruang warna linier: Ini benar secara matematika dan memberikan hasil yang tepat.
Gambar di bawah ini menunjukkan berbagai jenis campuran: