Bagaimana cara merender spektrum yang terlihat dengan intensitas yang sama?

8

Saya mencoba mendapatkan representasi spektrum tampak yang tepat untuk ditampilkan di layar. Kemajuan saya saat ini adalah dengan menggunakan fungsi pencocokan warna pengamat standar CIE 1931 yang diperkirakan secara analitik oleh persamaan yang diberikan dalam makalah ini . Gambar saat ini seperti ini:

gambar saat ini saya bisa hasilkan

Di sini, latar belakangnya bukan hitam ideal untuk memungkinkan kontribusi negatif dari fungsi pencocokan warna:

fungsi pencocokan warna

Tetapi masalah dengan itu adalah bahwa gambar tampaknya memiliki penurunan intensitas sekitar 490 nm. Saya kira ini terkait dengan jumlah dari ketiga fungsi yang memiliki minimum di sana. Lihat jumlah yang diplot terhadap panjang gelombang:

jumlah dari tiga fungsi pencocokan warna

Jadi pertanyaan saya sekarang: bagaimana cara saya memperbaiki intensitas gambar? Apakah ada standar untuk memperhitungkan sensitivitas spektral ketika mengubah panjang gelombang menjadi representasi RGB / XYZ?

Ruslan
sumber
Di sini saya menemukan beberapa info tentang pertanyaan ini
Michael Weizenfeld
Lihat utas ini, khususnya Greg Ward yang akan menjawab nanti dalam posting. Saya pikir ini terkait dengan pertanyaan Anda. radiance-online.org:447/pipermail/radiance-general/2015-Juni/…
ali
@ Apakah Anda maksudnya terkait dengan penambahan bodoh nilai RGB tertimbang saya? Saya sudah menemukan kesalahan ini dan merenungkannya dalam jawaban saya.
Ruslan

Jawaban:

3

Saya kira ini terkait dengan jumlah dari ketiga fungsi yang memiliki minimum di sana. Lihat jumlah yang diplot terhadap panjang gelombang

Ini sebenarnya cara yang salah untuk menjumlahkan fungsi-fungsi ini: model sRGB menentukan bahwa untuk mendapatkan luminositas seseorang harus menimbang komponen RGB dengan bobot yang sesuai. Maka luminositas, secara mengejutkan, akan menjadi sama dengan komponen Y dari representasi XYZ.

masalah dengan itu adalah bahwa gambar tampaknya memiliki intensitas penurunan sekitar 490 nm

Saya benar-benar dapat melihat penurunan tidak hanya di dekat 490 nm, tetapi juga yang lebih kecil di dekat 570 nm.

Bagaimanapun, saya pikir saya telah menemukan alasan untuk ini. Pertama-tama, mari kita plot warna desaturasi yang digunakan dalam rendering pada diagram kromatisitas:

diagram kromatisitas dengan spektrum desaturasi di dalamnya

Segitiga putus-putus adalah gamut sRGB, dan puncak yang dibentuk oleh dua garis bawah kurva hijau sesuai dengan titik putih (abu-abu) D65. Perhatikan bahwa ada tiga "gundukan" dari titik putih, sesuai dengan ungu, hijau kebiruan dan merah. Atau, bahwa ada penurunan besar dalam saturasi ke arah 490 nm dan penurunan moderat dalam arah sekitar 570 nm. Mari kita gambarkan ini secara grafis, merencanakan norma perbedaan dari poin yang diberikan dari titik putih:

plot ukuran saturasi

Ini adalah persis apa yang saya anggap visual di gambar dalam hal saturasi dan dengan demikian pencampuran dengan latar belakang.

Dari mana bentuk aneh ini berasal, Anda mungkin bertanya-tanya. Dan jawabannya adalah, dari lokus spektral dalam ruang XYZ penuh. Lihat gambar berikut: kurva biru adalah lokus spektral, dan oranye adalah proyeksi ke bidang normal ke vektor {1,1,1}.

lokus spektral di ruang XYZ

Jadi, bentuk yang kita dapatkan pada diagram kromatisitas adalah sesuatu seperti planar yang membuka lokus spektral.

Mengenai realisme rendering ini, saya cukup yakin bahwa jika kita mencoba memproyeksikan spektrum nyata ke permukaan abu-abu non-fluoresen, kita juga akan melihat dua penurunan "aneh" ini. Dan mereka akan menjadi kurang terlihat saat Anda meningkatkan kecerahan spektrum relatif terhadap kecerahan permukaan.

Ruslan
sumber