5
यहां एक आदिम 5x2 बनावट है, जिसे आरजीबी और आरजीबीए स्वरूपों में परिभाषित किया गया है।एक GL_RGB बनावट लोड करने के बाद अजीब रंग शिफ्ट
// 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, };
RGBA संस्करण लोड हो रहा है के रूप में उम्मीद काम करता है:
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);
एक अजीब रंग पारी में आरजीबी बनावट परिणाम लोड हो:
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);
पहले और दूसरे स्क्रीनशॉट के बीच कोड में अंतर glTexImage2D के लिए केवल दो तर्क हैं।
मैं क्या गलत कर रहा हूं?
पर्यावरण
- ATI Radeon HD5450, ओपन 4.2
- विंडोज 7, 64-बिट
- विजुअल स्टूडियो 2010
क्या आपने पैक संरेखण सेट किया था? डिफ़ॉल्ट 4 बाइट्स है, इसलिए आरजीबीए सरणी ठीक रहेगी, लेकिन यह आरजीबी सरणी के साथ काम नहीं करेगी। –
नहीं। GlPixelStorei के लिए कौन से तर्क इस मुद्दे को ठीक करेंगे? –
[यहां देखें] (http://www.opengl.org/wiki/Common_Mistakes#Texture_upload_and_pixel_reads) - 'glPixelStorei (GL_UNPACK_ALIGNMENT, 1)' इसे ठीक करना चाहिए। –