Anda mungkin ingin melangkah lebih jauh: membuat gambar seperti yang akan ditangkap oleh mata manusia atau bahkan seperti yang dirasakan manusia.
Ada dua cara untuk menafsirkan ini. Saya akan melakukan keduanya.
Interpretasi 1: Membuat gambar yang terlihat realistis secara persepsi.
Pada akhirnya, gambar Anda masih perlu ditampilkan di suatu tempat. Inilah kuncinya: Anda ingin merender gambar Anda sedemikian rupa sehingga ketika Anda * menampilkan * gambar itu pada perangkat tampilan tertentu, itu akan menghasilkan sensasi yang sama dengan yang dihasilkan oleh gambar radiometrik asli.
Inilah cara membongkar ide itu.
Di dunia nyata, spektrum radiometrik (yaitu, distribusi cahaya nyata) masuk ke mata Anda dan merangsang sekitar 1 empat reseptor cahaya. Stimulasi reseptor menghasilkan sensasi warna yang kita kaitkan dengan gambar.
Dalam rendering, kami tidak memiliki kendali sewenang-wenang atas spektrum yang kami hasilkan. Untungnya, karena kita (biasanya) hanya memiliki tiga kerucut, yang masing-masing hanya menghasilkan nilai skalar, penglihatan warna dapat direproduksi dengan menggunakan tepat tiga primer. Intinya adalah Anda dapat menghasilkan sensasi warna apa pun dengan menggunakan kombinasi linear dari tiga panjang gelombang saja (hingga beberapa warna yang mungkin harus negatif, dalam hal ini, Anda hanya menggunakan pendahuluan yang berbeda).
Anda tidak punya pilihan pendahuluan. Hampir semua perangkat layar warna menggunakan standar sRGB, yang menyediakan tiga pemilihan pendahuluan (yang sebenarnya biasanya tidak memiliki panjang gelombang tunggal). Tidak apa-apa karena ternyata itu semua abstrak dan Anda tidak perlu peduli.
Untuk memperjelas kekacauan yang rendering akurat perseptual, inilah algoritma:
- Jadikan gambar Anda menggunakan perhitungan radiometrik yang benar. Anda melacak panjang gelombang cahaya individu atau ember panjang gelombang. Masa bodo. Pada akhirnya, Anda memiliki gambar yang memiliki representasi spektrum yang diterima di setiap titik.
- Pada setiap piksel, Anda mengambil spektrum yang Anda buat, dan mengubahnya menjadi ruang warna CIE XYZ . Ini berhasil mengintegrasikan produk spektrum dengan fungsi pengamat standar (lihat definisi CIE XYZ) .
- Ini menghasilkan tiga nilai skalar, yang merupakan warna CIE XYZ.
- Gunakan transformasi matriks untuk mengubahnya menjadi RGB linier, lalu dari sana gunakan transformasi linear / daya untuk mengubah RGB linier menjadi sRGB .
- Konversi dari floating point ke uint8 dan simpan, jepit nilai di luar jangkauan (monitor Anda tidak dapat mewakili mereka).
- Kirim piksel uint8 ke framebuffer.
- Layar mengambil warna sRGB, melakukan transformasi terbalik untuk menghasilkan tiga pendahuluan dengan intensitas tertentu. Setiap skala menghasilkan output dari elemen gambar apa pun yang menjadi tanggung jawabnya. Elemen gambar menyala, menghasilkan spektrum. Spektrum ini akan (semoga) menjadi metamer untuk spektrum asli yang Anda buat.
- Anda memahami spektrum sebagaimana Anda akan merasakan spektrum yang diberikan.
Interpretasi 2: Mencoba mensimulasikan data akhir yang mungkin diterima mata manusia untuk tujuan visualisasi atau kompensasi untuk tampilan LDR.
Yang ini memiliki arti yang kurang bermanfaat, saya pikir. Pada dasarnya, Anda mencoba menghasilkan gambar yang mengubah cara otak melihatnya untuk kesenangan / keuntungan.
Sebagai contoh, ada sebuah makalah di SIGGRAPH tahun ini di mana mereka mensimulasikan afterimage dan pengurangan warna untuk membuat gambar tampak berbeda secara persepsi. Tentu saja, satu-satunya alasan mereka melakukan ini sama sekali adalah karena display yang kami kerjakan adalah semua low-dynamic range (LDR). Intinya adalah untuk mensimulasikan efek yang mungkin dilihat seseorang jika terpapar dengan tampilan rentang dinamis tinggi nyata (HDR) sebagai data gambar aktual.
Dalam praktiknya, ini ternyata tidak bekerja dengan baik. Untuk afterimages, misalnya, kita melihat afterimages karena stimulus sel-sel warna yang sangat cerah melelahkan. Jika Anda mencoba untuk menstimulasi efek dengan afterimage palsu, mungkin terlihat serupa - tetapi karena ini adalah mekanisme yang sama sekali berbeda, itu tidak terlalu meyakinkan.
Grafik semacam ini sebenarnya kurang dieksplorasi dalam literatur jika Anda ingin mencobanya. Makalah yang disebutkan di atas merupakan contoh pendekatan yang paling banyak atau kurang canggih yang kami miliki. Saya pikir konsensus saat ini, adalah bahwa itu tidak benar-benar layak untuk disimulasikan (setidaknya saat ini), karena paling baik Anda hanya akan mendekati efek penglihatan nyata dengan mengganti yang berbeda, dan bahwa ini tidak benar-benar layak untuk disimulasikan. kerja.
1 batang + 3 * kerucut, kasing biasa. Perkiraan karena manusia mungkin memiliki paling sedikit nol reseptor cahaya fungsional hingga maksimum dugaan tujuh (dengan yang tertinggi yang pernah diamati adalah lima).