2010-10-26 13 views
8

मैं glColor4f(1.0f, 1.0f, 1.0f, alpha_); का उपयोग कर प्राइमेटिव्स को पारदर्शिता सेट करने के लिए उपयोग कर रहा हूं।वर्तमान रंग

हालांकि मैं वर्तमान ओपनएल अल्फा मान को पढ़ने में सक्षम होना चाहता हूं। क्या यह संभव है?

उदा।

float current_alpha = glGetAlpha(); //??? 
glColor4f(1.0f, 1.0f, 1.0f, alpha_*current_alpha); 

उत्तर

10

या तो आप पिछले अल्फा मूल्य आप glColor4f का उपयोग करके भेजा स्टोर, या तो आप का उपयोग करें:

float currentColor[4]; 
glGetFloatv(GL_CURRENT_COLOR,currentColor); 
1

आप टुकड़ा आप पर ड्राइंग कर रहे हैं के अल्फा मूल्य मतलब करते हैं (यही वजह है कि आप की व्याख्या करता है alpha_ * current_alpha चाहते हैं)? यदि ऐसा है, तो याद रखें कि पाइपलाइन से वापस एक टुकड़ा पढ़ना महंगा है।

यदि आप आगे बढ़ रहे हैं, तो GL_SRC_ALPHA + GL_ONE_MINUS_SRC_ALPHA चाल का उपयोग करने पर विचार करें।

+0

धन्यवाद। मैं कुछ ऐसा करने की कोशिश कर रहा हूं। – ronag

संबंधित मुद्दे