मुझे एक 2 पीएनजी छवियां मिलीं, जिन्हें क्यूटी/सी ++ 2 डी ओपनजीएल एप्लिकेशन में बनावट के रूप में इस्तेमाल किया जा रहा था। पहले का उपयोग किसी प्रकार के "मध्यम" ग्राउंड के रूप में किया जाता है और दूसरा "ऑब्जेक्ट" के रूप में "ऑब्जेक्ट" के रूप में उपयोग किया जाता है (नोट: वे सभी एक ही जेड-वैल्यू एटीएम होते हैं, मुझे वांछित व्यवहार इसे एक में प्रस्तुत किया जाता है परिभाषित आदेश)। "ऑब्जेक्ट" -टेक्चर आंशिक रूप से पारदर्शी है। "मिडलग्राउंड" बनावट ज्यादातर ठोस है। समस्या यह है कि, मेरे "ऑब्जेक्ट" बनावट का पारदर्शी भाग ठोस पृष्ठभूमि रंग करता है, न कि "मिडलग्राउंड" बनावट।अन्य बनावट पर ओपनजीएल पारदर्शी बनावट
कोई सुझाव यह कैसे प्राप्त करें?
के बाद ओपन falgs मेरी बनावट प्रतिपादन
glEnable (GL_TEXTURE_2D);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
किसी भी मदद के लिए धन्यवाद के लिए उपयोग किया जाता है।
संपादित करें:
अधिक कोड:
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.1f);
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glBindTexture(GL_TEXTURE_2D, c->_texture);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUADS);
{
glTexCoord2i(0,0);
glVertex2i(-128,-128);
glTexCoord2i(0,1);
glVertex2i(-128,128);
glTexCoord2i(1,1);
glVertex2i(128,128);
glTexCoord2i(1,0);
glVertex2i(128,-128);
}
glEnd();
glDisable(GL_TEXTURE_2D);
glDisable(GL_ALPHA_TEST);
glDisable(GL_DEPTH_TEST);
संपादित करें: मैं अपने बनावट कैसे लोड और जहाँ तक मैं कह सकता हूँ कि यह लोड करता है अल्फ़ा चैनल
QImage img("./images/dummycar.png","PNG");
QImage t(QGLWidget::convertToGLFormat(img));
glGenTextures(1, &_texture);
glBindTexture(GL_TEXTURE_2D, _texture);
glTexImage2D(GL_TEXTURE_2D, 0, 3, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
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);
स्क्रीनशॉट के साथ : http://img824.imageshack.us/img824/1912/blackbox.png
द स्काईमेज "मिडलग्राउंड" पृष्ठभूमि ठोस काला है।
स्पष्टीकरण के साथ स्क्रीनशॉट अच्छा होगा। – SigTerm