अच्छा, अगर आप चाहते हैं, तो आप अपना स्वयं का बीएमपी लोडर लिख सकते हैं। Here विनिर्देश और कुछ कोड है। अन्यथा, मेरे पास एक tga लोडर here होता है। एक बार ऐसा करने के बाद, यह डेटा को एक हस्ताक्षरित चरित्र सरणी में वापस कर देगा, अन्यथा GL_UNSIGNED_BYTE के रूप में जाना जाता है।
इस सरणी से ओपनजीएल बनावट बनाने के लिए, आप पहले एक चर परिभाषित करते हैं जो ओपनजीएल की स्मृति में उस बनावट के संदर्भ के रूप में कार्य करेगा।
glGenTextures(1, &textureid);
उसके बाद, आप वर्तमान में उपयोग किया बनावट के रूप में है कि बनावट बाध्य करने के लिए की जरूरत है:
GLuint textureid;
उसके बाद, आप एक नया बनावट के लिए जगह बनाने के लिए ओपन बताने के लिए की जरूरत है।
glBindTexture(GL_TEXTURE_2D, textureid);
अंत में, आप ओपन बताने के लिए जहां डाटा वर्तमान बनावट के लिए है की जरूरत है।
glBindTexture(GL_TEXTURE_2D, textureid);
glBegin(GL_QUAD);
glTexCoord2f(0.0, 0.0);
glVertex3f(0.0, 0.0, 0.0);
glTexCoord2f(1.0, 0.0);
glVertex3f(1.0, 0.0, 0.0);
glTexCoord2f(1.0, 1.0);
glVertex3f(1.0, 1.0, 0.0);
glTexCoord2f(0.0, 1.0);
glVertex3f(0.0, 1.0, 0.0);
glEnd();
हालांकि, किसी भी समय आप एक आदिम करने के लिए बनावट लागू होते हैं, आप बनावट की आवश्यकता है:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, your_data);
फिर, जब आप एक आदिम प्रस्तुत करना, आप इसे आदिम को glBindTexture फिर से फोन करके लागू वर्टेक्स डेटा के साथ डेटा समन्वयित करें, और glutSolidSphere बनावट समन्वय डेटा उत्पन्न नहीं करता है।किसी क्षेत्र को बनावट बनाने के लिए, या तो इसे स्वयं उत्पन्न करें, या टेक्सजेन फ़ंक्शंस को कॉल करें, या शेडर्स का उपयोग करें।