renk daima
İlk 4 tek hassasiyetli kayar nokta sayılar içeren bir vec4 yapı olarak tanımlanabilir görünüyor: o değil. Bir doku yüklediğinizde, büyüklükteki formatlardan birini dahili format olarak kullanmayı deneyin. Örneğin, GL_RGBA8, kanal başına 8 bitlik bir normalleştirilmiş formattır. GL_RGBA16F, kanal başına 16 bit kayan nokta biçimidir. Çok var.
Çeşit, dediğiniz gibi bellek nedenleriyle değil, aynı zamanda algoritmik seçimler için sağlanır. Örneğin. Tek kanallı bir tam sayı dokusunu 4 baytlık dört kanallı bir doku olarak okumak için doku görünümlerini kullanabilirsiniz. Başka bir örnek olarak, 64-bit atomları kullanarak tek-geçiş derinliği soyma için, bir kayan noktalı derinlik tamponunu bir atomik tamsayı tamponu olarak görüntüleyebilirsiniz.
Vertex verilerine gelince, yine seçiminiz vardır. API, verilerinize farklı adımlar ve boyutlar sağlar. Ancak dahili olarak, biçim hemen hemen her zaman gölgelendirici çalışmaya başlamadan hemen önce kayan noktaya dönüştürülür.
Neden? Çünkü tüm veriler bir kayan nokta işlemcisi tarafından zaten işleniyor. Yaptığınız her şey - karıştırma, doku modülasyonu, BRDF modülasyonu, vb. - kayan noktalarda yapılır. Bu iyi; oluşturma genellikle parça gölgelendirici doku erişimlerine bağlıdır, bu nedenle kayan nokta hesaplaması nispeten ücretsizdir.
OpenGL, her bileşen için bayt kullanan glColor3ub işlevine de sahiptir. – Dai
128 bit 16 değil 16 bayttır. –
computergraphics.stackexchange. . . – imallett