Efek penyesuaian tingkat putih

Efek ini memungkinkan tingkat putih gambar diskalakan secara linier. Ini sangat membantu ketika Anda mengonversi antara ruang luminasi yang dirujuk tampilan dan ruang luminasi yang dirujuk adegan, atau sebaliknya.

Properti untuk efek ini diidentifikasi oleh enumerasi D2D1_WHITELEVELADJUSTMENT_PROP, dan CLSID CLSID_D2D1WhiteLevelAdjustment.

Properti efek

Nama tampilan dan enumerasi indeks Ketik dan nilai default Deskripsi
InputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL MENGAPUNG Tingkat putih gambar input, dalam nits.
OutputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL MENGAPUNG Tingkat putih gambar output, dalam nits.

Komentar

Efek ini dimaksudkan untuk dikombinasikan dengan efek peta nada HDR untuk memungkinkan Anda merender gambar HDR di Direct2D dengan manajemen warna dan pemetaan nada yang tepat. Lihat Komentar topik tersebut untuk detail selengkapnya. Efek ini ditujukan pada kerangka kerja apa pun yang ingin memberikan pengalaman melihat gambar HDR terbaik di kelasnya yang menangani semua format gambar HDR Windows, dan beradaptasi dengan kemampuan tampilan (baik ITU HDR atau WCG/SDR).

Pada Windows, semua konten SDR/WCG diasumsikan berada dalam ruang luminance yang dirujuk tampilan, yang berarti bahwa tingkat putih konten harus diskalakan hingga tingkat putih tampilan sebelum akhirnya disajikan. Namun, aplikasi Anda tidak selalu bertanggung jawab untuk melakukan ini. Sebaliknya, konten HDR diasumsikan berada dalam ruang luminance yang dirujuk adegan, yang berarti bahwa konten tersebut seharusnya tidak diskalakan agar sesuai dengan tingkat putih tampilan. Meskipun demikian, aplikasi Anda mungkin perlu melakukan penskalaan dalam beberapa keadaan saat merender konten HDR untuk memastikan bahwa ini adalah hasil bersih.

Ketika desktop Windows dalam mode SDR atau WCG, desktop terdiri dalam ruang luminasi yang dirujuk tampilan. Tetapi jika desktop Windows dalam mode HDR, maka komposisi desktop terjadi di ruang luminasi yang dirujuk adegan. Meskipun demikian, Desktop Window Manager (DWM) sendiri melakukan penyesuaian luminans (sering disebut SDRBoost) untuk permukaan komposisi 8-bit, dan yang menyederhanakan aplikasi Anda untuk kasus tersebut. Meskipun demikian, peningkatan otomatis berarti bahwa peran aplikasi Anda dalam mengonversi dari satu ruang luminance ke ruang lainnya tergantung pada format komposisi yang digunakan aplikasi Anda untuk menyajikan kontennya.

Tabel di bawah ini menjelaskan kasus kapan aplikasi Anda harus dan tidak boleh melakukan penyesuaian tingkat putih, serta penyesuaian tersebut. Secara umum, penyesuaian tergantung pada tiga faktor.

  1. Masukkan ruang warna konten. Apakah konten input Anda berisi nilai luminance rentang dinamis tinggi (HDR) atau tidak. Konten WCG berperilaku sama dengan SDR untuk perilaku luminance.
  2. Format komposisi. Format piksel permukaan target yang disajikan ke DWM—misalnya, rantai pertukaran atau permukaan komposisi . Saat merender menggunakan Direct2D, ini adalah UINT8 atau FP16.
  3. Mode warna tingkat lanjut desktop. Apakah DWM berjalan dalam mode SDR, WCG, atau HDR untuk tampilan saat ini. Dapatkan informasi ini melalui DXGI_OUTPUT_DESC1::ColorSpace atau AdvancedColorInfo.CurrentAdvancedColorKind.

Berdasarkan ketiga faktor ini, Anda harus mengatur nilai yang sesuai untuk properti InputWhiteLevel dan OutputWhiteLevel.

Isi input Format komposisi Mode warna tingkat lanjut InputWhiteLevel OutputWhiteLevel
SDR/WCG UINT8 Apa pun N/A N/A
SDR/WCG FP16 SDR/WCG N/A N/A
SDR/WCG FP16 HDR SDRWhite 80
HDR Apa pun SDR/WCG 80 DXGI_OUTPUT_DESC1::MaxLuminance
HDR UINT8 HDR 80 SDRWhite
HDR FP16 HDR N/A N/A

Dalam tabel, nilai 80 adalah tingkat putih referensi, dalam nits, untuk konten sRGB atau scRGB. Untuk ini, Anda dapat menggunakan D2D1_SCENE_REFERRED_SDR_WHITE_LEVELkonstanta , yang didefinisikan dalam d2d1effects_2.h. Nilai SDRWhite adalah jumlah nit yang harus digunakan tampilan untuk menampilkan konten sRGB putih. Anda dapat mengambil nilai ini dengan mengakses propertiAdvancedColorInfo.SdrWhiteLevelInNits. Nilai N/A berarti bahwa penyesuaian tingkat putih tidak digunakan dalam skenario ini; Anda dapat menghapus efek dari grafik Anda, atau mengatur nilai untuk no-op.

Perhatikan bahwa, dalam kasus di mana penyesuaian tingkat putih tidak diperlukan oleh aplikasi, DWM atau tampilan mungkin menangani konversi dari ruang luminasi yang dirujuk tampilan ke ruang luminance yang dirujuk adegan.

  • Dalam mode SDR/WCG, konversi terjadi setelah komposisi DWM, dan berlaku untuk semua konten yang disajikan ke tampilan tersebut. Tampilan secara implisit melakukan konversi ini.
  • Dalam mode HDR, konversi dilakukan secara otomatis oleh DWM sebelum komposisi, selama permukaan komposisi aplikasi Anda adalah SDR.

Persyaratan

Syarat Nilai
Klien minimum yang didukung Windows 10, versi 1809 (10.0; Build 17763) [aplikasi desktop | Aplikasi UWP]
Header d2d1effects_2.h
Perpustakaan d2d1.lib, dxguid.lib