daha da ileri götürmek isteyebilirsiniz: insan gözü onu yakalayacağı gibi, hatta insan onu algılayacağı şekilde bir imge yaratın.
Bunu yorumlamanın iki yolu vardır. Ben ikisini de yapacağım.
Yorum 1: Algısal olarak gerçekçi görünen bir görüntü oluşturun.
Günün sonunda, resminizin hala bir yerde gösterilmesi gerekiyor. Anahtar: görüntünüzü belirli bir görüntü aygıtında * görüntülediğinizde *, orijinal radyometrik görüntünün ürettiği hissi üretecek şekilde oluşturmak istiyorsunuz.
Bu fikri nasıl açacağınız aşağıda açıklanmıştır.
Gerçek dünyada, radyometrik spektrumlar (yani ışığın gerçek dağılımları) gözünüze girer ve yaklaşık 1 dört ışık reseptörünü uyarır . Reseptörlerin stimülasyonları, görüntülerle ilişkilendirdiğimiz renk hislerini üretir.
Render yaparken, ürettiğimiz spektrumlar üzerinde keyfi bir kontrole sahip değiliz. Neyse ki, (genellikle) her biri sadece skaler değer üreten sadece üç koniye sahip olduğumuzdan, renk görme tam olarak üç primer kullanılarak çoğaltılabilir. Sonuç olarak, sadece üç dalga boyunun doğrusal bir kombinasyonunu kullanarak herhangi bir renk hissi üretebilirsiniz (negatif olması gerekebilecek birkaç renge kadar, bu durumda sadece farklı primerler kullanırsınız).
Primer seçeneğiniz yok. Hemen hemen tüm renkli ekran cihazları, üç primer sağlayan (aslında genellikle tek bir dalga boyuna sahip olmayan) sRGB standardını kullanır. Bu iyi çünkü her şey soyutlanmış ve umursamanız gerekmiyor.
Algısal olarak doğru renderleme karmaşasını netleştirmek için algoritma:
- Doğru radyometrik hesaplamaları kullanarak görüntünüzü oluşturun. Tek tek ışık dalga boylarını veya dalga boyu kovalarını izlersiniz. Her neyse. Sonunda, her noktada alınan spektrumu temsil eden bir görüntünüz var.
- Her pikselde, oluşturduğunuz spektrumu alır ve onu CIE XYZ renk uzayına dönüştürürsünüz . Bu, spektrumun ürününü standart gözlemci işlevleriyle bütünleştirmektedir (bkz. CIE XYZ tanımı) .
- Bu, CIE XYZ renkleri olan üç skaler değer üretir.
- Bunu doğrusal RGB'ye dönüştürmek için bir matris dönüşümü kullanın ve oradan doğrusal RGB'yi sRGB'ye dönüştürmek için doğrusal / güç dönüşümü kullanın .
- Kayan noktadan uint8'e dönüştürün ve değerleri aralık dışına sıkıştırın (monitörünüz bunları temsil edemez).
- Uint8 piksellerini çerçeve arabelleğine gönderin.
- Ekran sRGB renklerini alır, belirli yoğunluklarda üç primer üretmek için ters dönüşümü yapar. Her biri, sorumlu olduğu resim öğesinin çıktısını ölçeklendirir. Resim elemanları aydınlanır ve bir spektrum oluşturur. Bu spektrum (umarım) oluşturduğunuz orijinal spektrum için bir metamer olacaktır.
- Spektrumu, oluşturulan spektrumu algıladığınız gibi algılarsınız.
Yorum 2: İnsan gözünün görselleştirme veya LDR ekranları için telafi amacıyla alabileceği son verileri simüle etmeye çalışın.
Bunun daha az kullanışlı bir anlamı var sanırım. Esasen, beynin eğlence / kâr için algılama biçimini değiştiren bir görüntü üretmeye çalışıyorsunuz.
Örneğin, bu yıl SIGGRAPH'da, görüntüleri algısal olarak farklı görünmelerini sağlamak için görüntüleri ve renk azaltmayı simüle ettikleri bir kağıt vardı . Tabii ki, bunu yapmanın tek nedeni, birlikte çalıştığımız ekranların düşük dinamik aralık (LDR) olmasıdır. Buradaki nokta, birisinin gerçek bir yüksek dinamik aralık (HDR) görüntüsüne gerçek görüntü verileri olarak maruz kaldığında görebileceği etkileri simüle etmektir.
Uygulamada, bu çok iyi çalışmaz. Örneğin, sonraki görüntüler için, çok parlak bir uyarıcı tüketen renk hücreleri nedeniyle sonraki görüntüler görüyoruz. Bunun yerine, etkiyi sahte bir görüntü ile uyarmaya çalışırsanız, benzer görünebilir - ancak tamamen farklı bir mekanizma olduğundan, çok ikna edici değildir.
Bu tür grafikler, literatürde incelemek istiyorsanız aslında eksik incelenmiştir. Sözü edilen makale, sahip olduğumuz en son teknoloji yaklaşımların bir örneğidir. Bence şu anki fikir birliği, simüle etmeye (gerçekten de en azından şu anda) gerçekten değmeyecek olması, çünkü en iyi ihtimalle sadece farklı vizyonları değiştirerek gerçek görme etkilerine yaklaşıyorsunuz ve bu aslında iş.
1 Çubuk + 3 * koni, olağan durum. Yaklaşık olarak, insanlar tahmin edilen en fazla yedi taneye kadar sıfır fonksiyonel ışık reseptörüne sahip olabilir (şimdiye kadar gözlemlenen en yüksek değer beştir).