मैं छवियों के साथ अपनी समस्या को समझाने की कोशिश करूंगा।बनावट ठीक से प्रदर्शित नहीं हो रही है - शायद निर्देशांक गलत हैं OpenGL, C++
जैसा कि आप देख सकते हैं, वहाँ अलग अलग रंग के साथ छवि के चारों ओर एक 2-पिक्सल चौड़ा सीमा है मुझे देखने के लिए सक्षम होने के लिए के लिए: तो यह एक परीक्षण बनावट मैं अपने ओपन आवेदन के लिए उपयोग कर रहा हूँ है यदि निर्देशांक मेरे आवेदन में ठीक तरह से सेट हैं।
मैं 9-सेल पैटर्न का उपयोग कर रहा हूं इसलिए मैं विशिष्ट बनावट निर्देशांक के साथ 9 क्वाड खींच रहा हूं। पहली नजर में सब कुछ पर ठीक काम करता है, लेकिन वहाँ एक बनावट प्रदर्शित साथ एक छोटी सी समस्या है:
चित्र मैं चिह्नित जहां पहले ट्रैक्टर है, और जहां दूसरे से एक है। जैसा कि आप देख सकते हैं, पहला व्यक्ति सही तरीके से प्रदर्शित होता है, लेकिन दूसरा एक आसानी से पहले क्वाड के रंगों से जाता है, लेकिन इसे शुद्ध हरे और गुलाबी से शुरू करना चाहिए। तो मुझे लगता है कि यह बनावट निर्देशांक के साथ एक समस्या है।
यह है कि वे कैसे स्थापित कर रहे हैं है:
// Bottom left quad [1st quad]
glBegin(GL_QUADS);
// Bottom left
glTexCoord2f(0.0f, 1.0);
glVertex2i(pos.x, pos.y + height);
// Top left
glTexCoord2f(0.0f, (GLfloat)1.0 - maxTexCoordBorderY);
glVertex2i(pos.x, pos.y + height - m_borderWidth);
// Top right
glTexCoord2f(maxTexCoordBorderX, (GLfloat)1.0 - maxTexCoordBorderY);
glVertex2i(pos.x + m_borderWidth, pos.y + height - m_borderWidth);
// Bottom right
glTexCoord2f(maxTexCoordBorderX, 1.0);
glVertex2i(pos.x + m_borderWidth, pos.y + height);
glEnd();
// Bottom middle quad [2nd quad]
glBegin(GL_QUADS);
// Bottom left
glTexCoord2f(maxTexCoordBorderX, 1.0);
glVertex2i(pos.x + m_borderWidth, pos.y + height);
// Top left
glTexCoord2f(maxTexCoordBorderX, (GLfloat)1.0 - maxTexCoordBorderY);
glVertex2i(pos.x + m_borderWidth, pos.y + height - m_borderWidth);
// Top right
glTexCoord2f((GLfloat)1.0 - maxTexCoordBorderX, (GLfloat)1.0 - maxTexCoordBorderY);
glVertex2i(pos.x + width - m_borderWidth, pos.y + height - m_borderWidth);
// Bottom right
glTexCoord2f((GLfloat)1.0 - maxTexCoordBorderX, 1.0);
glVertex2i(pos.x + width - m_borderWidth, pos.y + height);
glEnd();
कि मैं maxTexCoordBorderX
चर जो सीमा और छवि आकार के आधार पर की गणना का उपयोग कर रहा है आप देख सकते हैं। छवि चौड़ाई 32 और बॉर्डर चौड़ाई 2.
maxTexCoordBorderX
= 2/32 = 0,0625
किसी को भी कृपया मदद कर सके है जानने जहां समस्या है के साथ साथ?
जवाब जेसन के लिए धन्यवाद, लेकिन तुम मुझे समझा सकता है आप Texel केन्द्रों पर नमूने के द्वारा क्या मतलब था? –
मैंने किसी न किसी आरेख के साथ अद्यतन किया है। – JasonD
धन्यवाद जेसन, यह मेरी समस्या हल! –