Membicarakan tentang Linear RGB harus dihindari karena tidak memberi tahu Anda apa-apa tentang intrinsik colourpace RGB, yaitu, Fungsi Utama, Fungsi Whitepoint dan Transfer Komponen Warna. Beberapa tahun yang lalu, dengan asumsi itu sRGB adalah lumayan tapi sekarang dengan DCI-P3 dan BT.2020 menjadi sangat umum, itu harus dikesampingkan.
Gamut yang ideal untuk rendering adalah yang akan meminimalkan kesalahan sehubungan dengan referensi dunia nyata atau lebih mudah menjadi render spektral kebenaran tanah. Pengambilan pertama dari kalimat ini adalah bahwa berbagai warna RGB tidak sama dan tidak akan menghasilkan hasil yang serupa.
Orang mungkin berpikir bahwa melakukan dua render dengan warna dasar yang sama tetapi satu di mana mereka dikodekan dengan sRGB / BT.709 dan yang lainnya di mana mereka dikodekan dengan DCI-P3 dan kemudian mengonversi dua gambar yang dihasilkan ke misalnya ACES2065-1 akan menghasilkan gambar yang sama tetapi tidak demikian halnya. Beberapa operasi matematika karena sifat aljabar linier dan matriks tergantung pada primary colourpace RGB yang diberikan, yaitu, pada dasar colourpaces. Operasi yang sama dilakukan dalam ruang colour RGB yang berbeda akan menghasilkan nilai tristimulus yang berbeda setelah dikonversi kembali ke ruang warna CIE XYZ. Misalnya operasi multiplikasi, pembagian, dan operasi bergantung pada RGB colourpace primary sementara penambahan dan pengurangan tidak.
Gambar ini menggambarkan efek mengalikan berbagai warna dengan sendirinya menjadi warna RGB yang berbeda: warna yang dihasilkan berbeda. Berbagai sampel dihasilkan sebagai berikut: 3 nilai ruang colour sRGB acak diambil dan dikonversi ke tiga colourpaces RGB dipelajari, mereka eksponensial, dikonversi kembali ke ruang colour sRGB, diplot dalam Diagram Chromaticity CIE 1931 di sebelah kiri dan ditampilkan sebagai swatch pada Baik.
Pengujian dan penelitian yang dilakukan oleh Ward dan Eydelberg-Vileshin (2002) , Langlands dan Mansencal (2014) dan Mansencal (2014) menunjukkan bahwa gamut dengan primer yang paling dekat dengan lokus spektral, yaitu primer yang secara spektra tajam, cenderung meminimalkan kesalahan dibandingkan dengan medan spektral. render kebenaran.
Ini adalah gambar yang baru-baru ini saya buat dengan Mitsuba untuk memvalidasi ulang temuan kami dengan Anders:
Mereka adalah renders dari adegan yang sama menggunakan primer BT.709 (baris pertama), 47 bin spektral (baris kedua), primer BT.2020 (baris ketiga), spektral minus BT.709 primer membuat residu (baris keempat), spektral dikurangi BT 0,2020 primer membuat residu (baris kelima). Baris terakhir menampilkan gambar komposit yang dirangkai dengan tiga garis vertikal dari masing-masing primer BT.709, spektral dan, BT.2020 primer diterjemahkan. Penerangan langsung cenderung cocok antara render. Area yang menunjukkan efek pemantulan banyak cahaya, yaitu langit-langit, pada primer BT.709 dan BT.2020 cenderung menunjukkan peningkatan saturasi, terutama pada primer BT.709 membuat atau sedikit kehilangan energi, terutama di BT .2020 menyajikan. Tidak termasuk pencilan, misalnya, sumber cahaya tampak, RMSE dengan render spektral adalah 0,0083dan 0,0116 untuk masing-masing primer primer BT.2020 dan BT.709 diterjemahkan.
Sekarang tidak berarti mereka akan selalu berkinerja lebih baik, dan orang mungkin dapat menghasilkan contoh yang akan menunjukkan bias terhadap BT.709 / sRGB. Hasil utamanya adalah rendering RGB tidak cocok dengan rendering spektral dan gamut lebar yang tajam cenderung berkinerja lebih baik. Sedangkan untuk memilih ruang rendering, saya akan memilih satu dengan gamut luas yang mencakup Pointer Gamut dan DCI-P3, BT.2020 atau ACEScg adalah kandidat yang sangat baik untuk itu.
Ada dua sisi mengapa sRGB khususnya. Untuk input gambar non-HDR, diklaim bahwa gambar tersebut harus dianggap dikompres ke sRGB (apakah klaim ini akurat atau tidak adalah cerita yang berbeda). Oleh karena itu, sebelum Anda dapat melakukan operasi matematika linier pada mereka, Anda perlu mendekompresnya dari sRGB. Mungkin juga bahwa suatu gambar ditangkap dan dikompres ke representasi berbeda yang bukan sRGB, dalam hal ini Anda perlu mendekompresi representasi spesifik tersebut. Bagaimanapun, pengkodean menyiratkan gamut tertentu bahwa gambar input tidak akan pernah lepas (karena gambar yang disimpan sRGB biasanya terpotong menjadi 8-bit per saluran), tetapi matematika shader Anda tidak harus tetap berada di gamut itu setelah input gambar didekompresi. Namun pada akhirnya Anda harus mempertimbangkan tampilan.
Jika Anda memiliki gambar dan sekarang saatnya untuk menampilkannya, Anda menyandikannya dalam representasi yang diperlukan oleh perangkat layar. CRT memilih sRGB, kemudian LCD mengemulasi itu, jadi kompresi sRGB untuk tampilan monitor telah menjadi pilihan umum selama beberapa dekade terakhir, dan yang membatasi output untuk tetap dalam gamut sRGB, atau jika tidak akan terjadi kliping. Tampilan rentang yang lebih luas tidak harus mengikuti gamut yang tepat itu.
(Saya pikir dasar untuk klaim bahwa gambar buatan manusia dikodekan sRGB adalah karena gambar-gambar itu dianggap telah ditulis pada layar sRGB)
Jadi sekarang Anda mungkin dapat melihat lebih baik mengapa sRGB khususnya didukung dalam perangkat keras untuk input matematika shader dan tampilan gambar. Ini adalah kasus umum. Plus, ia memiliki manfaat yang baik untuk mengurangi artefak pita warna perseptual, jadi ini adalah cara yang baik untuk mengompresi warna dalam 8 bit dan membuatnya terlihat masuk akal bagi manusia.
sumber
Jika Anda mengizinkan nilai di luar rentang 0..1, maka bahkan dengan pemilihan pendahuluan sRGB yang cukup terbatas, Anda masih bisa mengatasi keseluruhan visual manusia. Jadi untuk menyimpan nilai warna titik cahaya mengambang, seharusnya tidak terlalu penting pemilihan pendahuluan yang Anda gunakan. Namun, melakukan segala macam matematika multiplikatif menjadi agak funky, karena koordinat arbitrer dari pendahuluan bertindak sebagai 'pivot' penskalaan. sRGB primer umumnya digunakan karena secara tradisional data input Anda dikodekan sRGB dan tampilan keluaran keluar adalah sRGB atau rec709 ... Dengan rec2020, setengah dari itu telah berubah, tetapi untuk saat ini, sebagian besar data input Anda mungkin masih dikodekan sRGB, jadi gunakan pemilihan pendahuluan yang sama dengan penyimpanan Anda hanyalah pilihan termudah.
sumber