Bagikan melalui


Pencahayaan HDR (Direct3D 9)

Pencahayaan di dunia nyata berisi nilai luminance rentang dinamis (HDR) yang sangat tinggi. Dunia nyata memiliki sekitar 10 urutan rentang dinamis (DR) untuk nilai luminance yang tersebar di spektrum kegelapan hingga kecerahan. Di sisi lain, layar komputer memiliki gamut tampilan yang sangat terbatas (atau rentang nilai luminans): sekitar dua urutan rentang dinamis. Tantangan untuk menghasilkan gambar yang dirender HDR adalah memetakan nilai HDR dunia nyata ke dalam gamut terbatas layar komputer.

Pemetaan nada adalah teknik yang digunakan oleh DirectX untuk memetakan informasi HDR ke dalam rentang yang lebih terbatas. Pemetaan nada yang diterapkan pada penyajian CGI dapat secara dramatis meningkatkan jumlah detail pencahayaan yang dirender, memungkinkan detail di area paling gelap terlihat, dan memberikan kontras di area yang begitu cerah, mereka tampak terbakar. Adegan yang dihasilkan dirender dengan detail pencahayaan yang jauh lebih terlihat.

Sampel HDRLighting adalah sampel SDK yang menunjukkan pencahayaan HDR.

Pemetaan Nada

Pemetaan nada umumnya mensimulasikan fenomena optik yang tidak dapat disebabkan oleh DR monitor. Contohnya adalah suar atau mekar (yang sebagian besar merupakan sifat lensa), pergeseran biru yang terjadi di mata manusia dalam kondisi cahaya rendah, dan adaptasi lain yang merupakan hasil dari biokimia mata. Jika DR tampilan cukup besar, pemetaan nada tidak akan seperlunya, kecuali untuk memberikan efek artistik atau beberapa properti lensa kamera atau perangkat yang digabungkan dengan muatan (CCD).

Pemetaan nada membagi rentang nilai luminance dalam adegan menjadi satu set zona. Setiap zona mencakup berbagai nilai luminance.

HDR menggunakan istilah berikut:

  • Zona - rentang nilai luminance
  • Abu-abu tengah - wilayah kecerahan tengah adegan
  • Rentang dinamis - rasio luminasi adegan tertinggi dengan luminasi adegan terendah
  • Kunci - pengukuran subjektif pencahayaan adegan: ini bervariasi dari terang hingga sedang hingga gelap

Untuk menghitung luminance dari nilai RGB, gunakan ini:

L = 0.27R + 0.67G + 0.06B;

Luminasi rata-rata log adalah perkiraan yang berguna untuk kunci adegan. Persamaan umum terlihat seperti ini:

Lw = exp[ 1 / N( sum[ log( delta + Lw( x, y ) ) ] ] ]

Di mana:

  • Lw - luminance rata-rata log
  • N - jumlah piksel dalam gambar
  • delta - faktor kecil untuk menghindari masalah dengan piksel hitam
  • Lw( x, y ) - luminansi ruang dunia untuk piksel ( x, y )

Untuk memetakan ini ke nilai abu-abu menengah, berikut adalah operator penskalaan luminance:

L( x, y ) = a * Lw( x, y ) / Lw

Di mana:

  • L( x, y ) - luminance skala untuk piksel ( x, y )
  • a - nilai kunci gambar setelah menerapkan penskalakan

Dan akhirnya, berikut adalah operator pemetaan nada sederhana untuk mengompres luminans tinggi:

Ld( x, y ) = L( x, y ) / ( 1 + L( x, y ) )

Di mana:

  • Ld( x, y ) - luminance terkompresi dan diskalakan untuk piksel ( x, y )
  • a - nilai kunci gambar setelah menerapkan penskalakan

Operator ini menskalakan luminans tinggi sebesar 1/L dan luminans rendah sebesar 1. Untuk detail selengkapnya, lihat makalah berikut ini.

Reinhard, Erik, Mike Stark, Peter Shirley, dan James Ferwerda. "Reproduksi Nada Fotografi untuk Gambar Digital". Transaksi ACM on Graphics (TOG), Prosiding Konferensi Tahunan ke-29 tentang Computer Graphics and Interactive Techniques (SIGGRAPH), pp. 267-276. New York, NY: Acm Press, 2002.

Topik Tingkat Lanjut