मैं ओपनजीएल में बनावट मैपिंग को समझने की कोशिश कर रहा हूं और मुझे काम करने के लिए एक साधारण उदाहरण नहीं मिल रहा है।सरल ओपनजीएल बनावट मानचित्र काम नहीं कर रहा है?
बहुभुज तैयार किया जा रहा है, हालांकि यह बनावट नहीं है बल्कि केवल एक ठोस रंग है। इसके अलावा बिटमैप को sprite1 में सही ढंग से लोड किया जा रहा है [] क्योंकि मैं सफलतापूर्वक gldrawPixels का उपयोग कर रहा था।
मैं अपने टेक्स्ट नाम प्राप्त करने के लिए glGenTextures का उपयोग करता हूं, लेकिन मुझे लगता है कि यह texName1 नहीं बदलता है; यह GLuint जो भी मैं इसे शुरू करता हूं, glGenTextures पर कॉल के बाद भी ...
मैंने GL_TEXTURE_2D सक्षम किया है।
यहाँ कोड:
GLuint texName1 = 0;
glGenTextures(1, &texName1);
glBindTexture(GL_TEXTURE_2D, texName1);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT, sprite1[18], sprite1[22], 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, &sprite1[54]);
glColor3f(1, 1, 0);
glBindTexture(GL_TEXTURE_2D, texName1);
glBegin(GL_QUADS);
glTexCoord2f (0.0, 0.0);
glVertex3f (0.0, 0.0, -5.0f);
glTexCoord2f (1.0, 0.0);
glVertex3f (.5, 0.0, -5.0f);
glTexCoord2f (1.0, 1.0);
glVertex3f (.5, .5, -5.0f);
glTexCoord2f (0.0, 1.0);
glVertex3f (0.0, .5, -5.0f);
glEnd();
अद्यतन: मैं एक नुकसान में हूँ। यहां मैंने जो भी कोशिश की है, वह है:
बाहर निकलता है कि ओजीएल शुरू होने से पहले मैं अपने बनावट को शुरू कर रहा था। एक वर्ग के कन्स्ट्रक्टर में बनावट (glGenTextures-> glTexImage2D) शुरू की गई है और प्रत्येक फ्रेम नामक सदस्य फ़ंक्शन में खींचा गया है (glBegin-> glEnd)। genTextures अब सही ढंग से काम कर रहे प्रतीत होता है और मुझे 1 का नाम मिल रहा है।
GL_RGBA8, GL_BGRA_EXT का हर संभव संयोजन (GL_BGRA मेरे सिस्टम पर काम नहीं करता है; मुझे _EXT की आवश्यकता है), और मैंने इसे भी हटा दिया बिटमैप से अल्फा चैनल और जीएल_आरजीबी, जीएलबीजीआर_एक्सटी इत्यादि के सभी संयोजनों की कोशिश की। कोई भाग्य नहीं।
procedurally एक बिटमैप बनाने और का उपयोग कर कि
यकीन GL_COLOR_MATERIAL सक्षम नहीं है निर्मित की कोशिश की।
बदल गया बिटमैप आकार 32x32 पर।
glTexEnvf के बजाय glTexEnvi का प्रयास किया।
यदि texName1 glgenTextures के बाद 0 शेष है तो आपको अपनी त्रुटि स्थितियों की जांच करनी चाहिए ... –
क्या चौड़ाई और ऊंचाई बाइट या int में sprite1 [] में संग्रहीत है? –
चौड़ाई और ऊंचाई बाइट छोटे एंडियन के रूप में संग्रहीत है। मैंने sprite1 [18] और sprite1 [22] gldrawPixels के साथ सफलतापूर्वक पहले उपयोग किया है; वे सही हैं। बिटमैप केवल 2 9 x20 पिक्सेल है इसलिए यह काम करता है। –