5
RGB ve RGBA biçimlerinde tanımlanan ilkel 5x2 doku İşte. RGBA sürümünü yüklemeBir GL_RGB dokusunu yükledikten sonra garip renk değişimi
// 1 2 3 4 5
unsigned char rgb[] = { 0, 0, 0, 0, 0, 0, 200, 200, 200, 0, 0, 0, 200, 200, 200,
0, 0, 0, 0, 0, 0, 200, 200, 200, 0, 0, 0, 200, 200, 200, };
unsigned char rgba[] = { 0, 0, 0, 255, 0, 0, 0, 255, 200, 200, 200, 255, 0, 0, 0, 255, 200, 200, 200, 255,
0, 0, 0, 255, 0, 0, 0, 255, 200, 200, 200, 255, 0, 0, 0, 255, 200, 200, 200, 255, };
beklendiği gibi çalışır:
glTexImage2D(GL_TEXTURE_2D,
0, // mipmap level
GL_RGB, // dest format
5, // width
2, // height
0, // deprecated
GL_RGBA, // source format
GL_UNSIGNED_BYTE,
rgba);
garip bir renk kayması RGB doku sonuçları yükleniyor:
glTexImage2D(GL_TEXTURE_2D,
0, // mipmap level
GL_RGB, // dest format
5, // width
2, // height
0, // deprecated
GL_RGB, // source format
GL_UNSIGNED_BYTE,
rgb);
İlk ve ikinci ekran görüntüsü arasındaki koddaki fark, glTexImage2D için yalnızca bu iki argümandır.
Neyi yanlış yapıyorum?
Çevre
- ATI Radeon HD5450, OpenGL 4.2
- Windows 7, 64-Bit
- Visual Studio 2010
Paket hizalamasını ayarladınız mı? Varsayılan 4 bayttır, bu yüzden rgba dizisi Tamam olacaktır, ancak rgb dizisiyle çalışmaz. –
Hayır. GlPixelStorei'ye yönelik bu argümanlar bu sorunu giderebilir mi? –
[Buraya bakın] (http://www.opengl.org/wiki/Common_Mistakes#Texture_upload_and_pixel_reads) - 'glPixelStorei (GL_UNPACK_ALIGNMENT, 1)' bunu düzeltmelidir. –