Blog Pengembang Android: HDR dan Antarmuka Pengguna



Diposting oleh Alec Mouri – Insinyur Perangkat Lunak

Seperti yang dijelaskan dalam apa HDR?, Kita dapat menganggap HDR hanya mengacu pada rentang pencahayaan lebih terang dari SDR. Saat mengintegrasikan konten HDR ke dalam antarmuka pengguna, Anda harus berhati -hati ketika antarmuka pengguna Anda terutama warna dan aset SDR. Sistem visual manusia beradaptasi dengan warna yang dirasakan berdasarkan lingkungan sekitarnya, yang dapat menyebabkan hasil yang mengejutkan. Kami akan melihat satu contoh terkait.

Kontras Simultan

Pertimbangkan gambar berikut:

Contoh kontras 1

Sumber: Vikipedia

Gambar ini menunjukkan dua persegi panjang abu -abu dengan warna latar belakang yang berbeda. Bagi kebanyakan orang yang melihat gambar ini, dua persegi panjang abu -abu tampak berbeda dengan warna abu -abu: persegi panjang paling atas dengan latar belakang yang lebih gelap tampaknya menjadi warna yang lebih ringan dari persegi panjang botol dengan latar belakang yang lebih ringan.

Tapi ini adalah nuansa abu -abu yang sama! Anda dapat membuktikan ini untuk diri sendiri dengan menggunakan alat pengambilan warna favorit Anda atau dengan melihat gambar di bawah ini:

Contoh kontras 2

Ini menggambarkan fenomena visual yang disebut kontras simultan. Pembaca yang tertarik dengan penjelasan biologis dapat mempelajari lebih lanjut di sini.

Oleh karena itu, perbedaan terdekat dalam warna “ditekankan”: warna tampak lebih gelap ketika tepat di sebelah warna yang lebih cerah. Warna yang sama akan tampak lebih terang ketika tepat di sebelah warna yang lebih gelap.

Implikasi pada pencampuran HDR dan SDR

Efek kontras simultan mempengaruhi penampilan antarmuka pengguna yang perlu menyajikan campuran konten HDR dan SDR. Luminansi puncak yang diizinkan oleh HDR akan menciptakan efek kontras simultan: mata akan beradaptasi* Untuk pencahayaan puncak yang lebih tinggi (dan seringkali luminance rata -rata yang lebih tinggi dalam praktik), yang secara perseptual akan menyebabkan konten SDR muncul lebih redup meskipun secara teknis pencahayaan konten SDR tidak berubah sama sekali. Bagi pengguna, ini dapat dinyatakan sebagai: layar ponsel saya menjadi “abu -abu” atau “dicuci”.

Kita dapat melihat fenomena ini pada gambar di bawah ini. Perangkat di sebelah kanan mensimulasikan bagaimana foto dapat muncul dengan SDR UI, jika foto -foto itu diterjemahkan sebagai HDR. Perhatikan bahwa foto-foto Agustus terlihat identik jika dibandingkan secara berdampingan, tetapi kualitas SDR UI terdegradasi secara visual.

contoh kontras di foto google

Aplikasi, ketika merancang untuk HDR, perlu mempertimbangkan seberapa banyak “banyak” SDR ditampilkan pada waktu tertentu di layar mereka ketika mengendalikan seberapa cerah HDR “diizinkan”. UI yang didominasi oleh SDR, seperti tampilan galeri di mana sejumlah kecil konten HDR ditampilkan, tiba -tiba tampak lebih gelap dari yang diharapkan.

Saat membangun UI Anda, pertimbangkan dampak HDR pada keterbacaan teks atau penampilan aset SDR di dekatnya, dan gunakan API yang sesuai yang disediakan oleh platform Anda untuk membatasi kecerahan HDR, atau bahkan menonaktifkan HDR. Misalnya, ruang kepala 2x untuk kecerahan HDR mungkin dapat diterima untuk menyeimbangkan kualitas adegan HDR Anda dengan elemen SDR Anda. Sebaliknya, UI yang didominasi oleh HDR, seperti video layar penuh tanpa elemen UI lainnya di atas, tidak perlu menganggap ini sekuat, seperti fokus UI pada konten HDR itu sendiri. Dalam situasi tersebut, ruang kepala 5x (atau lebih tinggi, tergantung pada metadata konten seperti Ultrahdr's MAX_CONTENT_BOOST) mungkin lebih tepat.

Mungkin tergoda untuk “mencerahkan” konten SDR sebagai gantinya. Tahan godaan ini! Ini akan menyebabkan aplikasi Anda menjadi juga Cerah, terutama jika ada aplikasi lain atau elemen UI sistem di layar.

Cara mengontrol headroom hdr

Android 15 memperkenalkan kontrol untuk headroom HDR yang diinginkan. Anda dapat meminta permintaan aplikasi agar sistem menggunakan headroom HDR tertentu berdasarkan konteks di sekitar UI yang Anda inginkan:

    • Jika Anda hanya ingin menampilkan konten SDR, cukup tidak meminta ruang kepala.
    • Jika Anda hanya ingin menampilkan konten HDR, maka minta headroom HDR tinggi ke dan sesuai dengan tuntutan konten.
    • Jika Anda ingin menunjukkan campuran konten HDR dan SDR, maka dapat meminta nilai ruang kepala menengah sesuai. Jumlah ruang kepala yang khas adalah sekitar 2x untuk adegan campuran dan 5-8x untuk adegan sepenuhnya-hdr.

Berikut adalah beberapa contoh penggunaan:

// Required for the window to respect the desired HDR headroom.
// Note that the equivalent api on SurfaceView does NOT require
// COLOR_MODE_HDR to constraint headroom, if there is HDR content displayed
// on the SurfaceView.
window.colorMode = ActivityInfo.COLOR_MODE_HDR
// Illustrative values: different headroom values may be used depending on
// the desired headroom of the content AND particularities of apps's UI
// design.
window.desiredHdrHeadroom =
    if(/* SDR only */) {
        0f
    } else {
        if (/* Mixed, mostly SDR */) {
            1.5f
        } else {
            if ( /* Mixed, mostly HDR */) {
                3f
            } else { 
                /* HDR only */
                5f
            }
        }
    }

Platform lain juga memiliki API yang memungkinkan pengembang memiliki kontrol atas membatasi konten HDR dalam aplikasi mereka.

Platform Web memiliki konsep yang lebih kasar: Draf kerja publik pertama dari modul HDR warna CSS menambahkan opsi tertinggi terbatas untuk membatasi ruang kepala untuk adegan HDR dan SDR campuran. Di dalam ekosistem Apple, Ditbatasan High juga kasar, diperhitungkan dengan tantangan menampilkan adegan HDR dan SDR campuran pada tampilan konsumen.

Jika Anda seorang pengembang yang sedang mempertimbangkan untuk mendukung HDR, berhati -hatilah tentang bagaimana HDR berinteraksi dengan UI Anda dan menggunakan kontrol headroom HDR dengan tepat.


*Ada mekanisme lain yang digunakan mata untuk adaptasi cahaya, seperti refleks cahaya pupil, yang memperkuat fenomena visual ini (cahaya HDR puncak yang lebih terang berarti pupil menyempit, yang menyebabkan lebih sedikit cahaya untuk mengenai retina).



blog Pengembang Android: HDR dan Antarmuka Pengguna

Leave a Reply

Your email address will not be published. Required fields are marked *