मैं glReadPixels का उपयोग करके अल्फा पिक्सेल मानों को पढ़ने की कोशिश कर रहा हूं। पहली चीज मैंने पिक्सल को व्यक्तिगत रूप से पढ़ा था। चीजें तेजी लाने के लिए प्रयास करने के लिए, मैं एक ही बार में सभी पिक्सल पढ़ने की कोशिश की:glReadPixels और GL_ALPHA
GLubyte *pixels = new GLubyte[w*h*4];
glReadPixels(0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
और यह काम किया, लेकिन वास्तव में धीमी गति से। अब मैं, बस अल्फा मान प्राप्त करने के लिए कोशिश कर रहा हूँ आरजीबी घटकों के लिए अंतरिक्ष बर्बाद कर के बिना:
GLubyte *pixels = new GLubyte[w*h];
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(0, 0, w, h, GL_ALPHA, GL_UNSIGNED_BYTE, pixels);
लेकिन मैं मिलता है: OpenGL error 0x0500 in -[EAGLView swapBuffers]
।
कोई विचार क्यों INVALID_ENUM (0x0500)
फेंक दिया गया है?
इसके लिए धन्यवाद। आपके आखिरी सुझाव के बारे में, क्या आपके पास कोई संकेतक है कि इसे कैसे कार्यान्वित किया जाए? – sharvey
@ शार्वे - मेरा लेखन यहां देखें: http://www.sunsetlakesoftware.com/2010/10/22/gpu-accelerated-video-processing-mac-and-ios। मेरे पास नमूना अनुप्रयोग है: http://www.sunsetlakesoftware.com/sites/default/files/ColorTracking.zip एक बनावट को प्रस्तुत करने के लिए एक ऑफस्क्रीन फ्रेमबफर का उपयोग करता है, हालांकि मैं 'glReadPixels()' का उपयोग करके परिणाम खींचता हूं क्योंकि मैं जीपीयू-आधारित रंग औसत मैं पूरा नहीं कर सका। मैं ऐसा करने के लिए एक धीमी सी दिनचर्या का उपयोग कर समाप्त हो गया। मैं इसे किसी बिंदु पर पूरा कर दूंगा। –