Saat melakukan beberapa bacaan tentang bagaimana aplikasi waktu nyata menangani warna di bawah OpneGL, saya perhatikan bahwa beberapa contoh menerapkan Warna sebagai koleksi 4 floats
, sementara yang lain menggunakan 4 doubles
. Saya bahkan telah melihat beberapa contoh kompresi titik di bidang pengembangan game yang menganjurkan penghematan warna sebagai 4 short
.
Semua ini membuat saya ingin belajar lebih banyak tentang ini: apa batas presisi yang ditangani OpenGl (atau perangkat keras) untuk warna? Lebih penting lagi, berapa batas presisi di atas perbedaan warna yang menjadi tidak mungkin untuk diperhatikan?
Saya memiliki kesan bahwa belajar lebih hati-hati tentang hal itu akan membantu saya berpikir lebih baik dan memutuskan bagaimana menerapkan kelas Warna untuk berbagai aplikasi dan skenario (misalnya membuat pilihan trade-off antara memori, kecepatan dan variasi warna).
Terima kasih atas ide Anda tentang ini.
sumber
half
tidak akan menimbulkan masalah yang sama yang Anda sebutkan sebelumnya, karena kurangnya presisi? Saya pikir itu akan menjadi sangat penting di GPU, karena banyaknya perhitungan warna yang sering dilakukan dalam shaderhalf
adalah 16 bit, termasuk 11 bit efektif presisi mantissa, jadi meski tidak setepatfloat
, itu masih cukup untuk sebagian besar operasi warna. (Mungkin tidak cukup memadai jika Anda menghasilkan tampilan HDR gamut tinggi; saya tidak yakin.)