Saya perhatikan bahwa dalam gradien yang sangat lembut, colordepth 24-Bit tidak cukup karena Anda dapat melihat transisi warna. Ini muncul paling banyak dalam adegan gelap atau langit malam.
Mengapa tidak ada yang mengubah colordepth menjadi dua byte per saluran? Saya tahu itu akan menjadi banyak pekerjaan dan banyak perangkat keras harus diganti, tapi saya merasa sedikit mengganggu. Saya benar-benar tidak berpikir bahwa teknologi perangkat kerasnya belum cukup matang.
Jadi mengapa tidak ada yang melakukan itu?
Inilah gambar "The War Z" di mana Anda dapat melihat apa yang saya maksud:
Jawaban:
Anda kurang lebih mengatakannya sendiri, 'Saya tahu, itu akan banyak pekerjaan dan banyak perangkat keras harus diganti.' Sementara hal-hal grafis-perangkat keras sebenarnya akan relatif mudah (jika mahal - menggandakan ukuran semua tekstur dan penyangga bingkai jauh dari hal sepele), 'ekosistem' untuk citra dengan kedalaman warna yang lebih tinggi tidak tersedia untuk jenis yang membuat ini menjadi pengeluaran yang berharga atas nama siapa pun, karena tidak ada produsen LCD yang berfokus pada upaya untuk mendapatkan hingga 16 bit per piksel (meskipun ada beberapa percobaan di 10BPP, yang masih sesuai dengan sinyal RGB menjadi 32- saluran bit).
Singkatnya, itu terlalu banyak bekerja untuk apa yang kebanyakan orang anggap belum terlalu sedikit. Mungkin 'sedikit mengganggu', tetapi tingkat gangguan sangat tipis sehingga peningkatan kualitas gambar lainnya telah diprioritaskan.
sumber
Yap, Anda bukan orang pertama yang memperhatikan ini . :) Dengan rasio kontras tinggi saat ini, 8 bit per komponen tidak cukup untuk membuat gradien yang mulus tanpa garis banding yang terlihat - kecuali digunakan dithering.
Menggunakan lebih dari 8 bit per saluran pada layar disebut " warna dalam " oleh produsen layar. Itu tidak terlalu luas karena masalah ayam dan telur. Tampilan warna yang dalam tidak berguna tanpa kartu video yang dapat menampilkan warna yang dalam, dan mesin game yang mendukung rendering ke warna yang dalam. Demikian juga, tidak ada gunanya mesin permainan atau kartu video yang mendukung warna yang dalam tanpa tampilan. Jadi tidak ada banyak insentif bagi produsen perangkat keras dan pengembang game untuk menambahkan dukungan untuk teknologi ini, karena dari kedua ujungnya, tidak ada pasar untuk membenarkan biaya pengembangan.
Selain itu, ada cara lain untuk memperbaiki bandeng karena presisi 8-bit yang terbatas. Seperti yang saya sebutkan sebelumnya, mesin game dapat menggunakan dithering untuk menyembunyikan banding.
(Gambar kucing dengan palet 256-warna, tanpa dan dengan dithering. Dibuat oleh pengguna Wikipedia Wapcaplet , digunakan di bawah lisensi CC-By-SA 3.0 .)
Menambahkan sedikit gundukan ± 0,5 / 255 sebelum menuliskan nilai piksel ke framebuffer sangat efektif untuk menyembunyikan pita pada gradien halus, dan pada dasarnya tidak terlalu mencolok. Jika Anda berada di mesin HDR, Anda melakukan ini selama tahap pemetaan.
Akhirnya, seperti yang telah dicatat oleh orang lain, kompresi tekstur dapat menjadi sumber artefak seperti pita yang lebih besar dalam gambar daripada presisi 8-bit. Ini mungkin apa yang terjadi dengan langit di gambar itu, meskipun sulit untuk mengatakannya - ada begitu banyak kompresi JPEG di atasnya sehingga setiap artefak akibat kompresi DXT cukup banyak dibanjiri.
sumber
Perlu dicatat juga bahwa banyak panel LCD bahkan tidak 8 bit per saluran. Yang lebih murah cenderung menggunakan bit lebih sedikit dan menggunakan berbagai trik untuk menyembunyikannya. Misalnya mereka dapat beralih dengan cepat antara dua warna yang berdekatan untuk mewakili satu di antaranya. http://www.anandtech.com/show/1557/3
Ada beberapa detail tentang bagaimana DXGI mendukung 10-bit per saluran dan lebih cerah daripada warna putih di http://msdn.microsoft.com/en-us/library/windows/desktop/jj635732%28v=vs.85%29.aspx
D3D juga telah mendukung lebih dari 8-bit per saluran selama bertahun-tahun. Tidak ada yang menghentikan pengembang melakukan dithering turun dari 16-bit per saluran ke 8-bit jika mereka pikir itu ide yang baik.
Tentu saja itu tidak akan banyak membantu jika sumber data (tekstur, dll) hanya 8-bit (atau lebih mungkin DXT1, yang secara efektif 5-6-5 bit per saluran). Saya percaya bahwa ada apa dengan langit di screenshot itu (sebuah gaussian blur 8-bpp membuatnya jauh lebih mulus bagi saya) tetapi sulit untuk memastikannya.
sumber
Jawaban Steven Stadnicki benar - permainan jarang menggunakan tekstur presisi yang lebih tinggi karena memerlukan terlalu banyak memori tekstur, dan akibatnya terlalu banyak bandwidth memori ketika mengambil sampel tekstur dalam pixel shader. Namun, ada solusi yang tidak memerlukan tekstur besar. (Saya akan memposting ini sebagai komentar, tapi terlalu panjang.)
Homeworld menyelesaikan masalah ini dengan menyandikan gambar langit sebagai gradien verteks . Teknik ini bekerja sangat baik untuk gambar besar dan frekuensi rendah (yaitu, gradien halus) - seperti langit - di mana teksturnya mencakup sejumlah besar piksel dalam game.
Solusi lain yang mungkin adalah menerapkan normalisasi histogram ke gambar langit Anda. Jika data tekstur berada dalam kisaran nilai yang sempit, seperti langit malam yang gelap, sebagian besar bit di setiap saluran warna tidak membawa data yang berguna. Sebaliknya, lakukan ini:
Pastikan kode shader gamma benar . Jika Anda melakukan matematika (pencahayaan & pasca pemrosesan) pada sampel tekstur yang tidak dikonversi dari ruang warna sRGB ke ruang linier, Anda akan melihat artefak pita seperti yang Anda gambarkan. Koreksi Gamma dibuat untuk membantu mengatasi masalah semacam ini dengan mengalokasikan lebih banyak bit ke nilai gelap di mana mata Anda lebih sensitif terhadap perubahan nilai. Tetapi Anda dapat dengan mudah memecahkan hal-hal jika Anda tidak memperhitungkan koreksi gamma saat menghitung, misalnya, pencahayaan, pencahayaan, atau pasca-pemrosesan FX. The Gamma FAQ membantu.
sumber
24 bit tidak cukup, tetapi jauh lebih umum untuk masalah seperti ini disebabkan oleh algoritma kompresi gambar, alias, atau artefak digital lainnya. Selain itu, jangan mengabaikan peran teknologi tampilan - apa pun input digitalnya, display mungkin tidak menghasilkan langkah-langkah yang sesuai dalam kecerahan aktual.
sumber