मैं आईओएस पर एक हस्तलेखन आवेदन पर काम कर रहा हूं। मुझे आईओएस दस्तावेज से नमूना प्रोजेक्ट "जीएलपीेंट" मिला जो ओपनजीएल ईएस द्वारा कार्यान्वित किया गया है, और मैंने इसमें कुछ संशोधन किया है।OpenGL का उपयोग करके पारदर्शिता ओवरलैप से कैसे बचें?
मैं टच पॉइंट ट्रैक करता हूं और अंक के बीच घटता की गणना करता हूं और कण छवियों को अकेले वक्र खींचता हूं ताकि यह उंगली पासबी कहां दिख सके।
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, brushData); // burshData is from CGImage, it is
// vertexBuffer is generated based on the calculated points, it's just a sequence of point where need to draw image.
glVertexPointer(2, GL_FLOAT, 0, vertexBuffer);
glDrawArrays(GL_POINTS, 0, vertexCount);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
मुझे जो मिला वह एक ठोस रेखा है जो काफी अच्छी लगती है। लेकिन अब मैं ठोस रेखा के बजाय अर्द्ध पारदर्शी हाइलाइट आकर्षित करना चाहता हूं। तो मैं कोड बदलने के बिना कण छवि को 50% पारदर्शिता के साथ प्रतिस्थापित करता हूं।
Result of 50% transparency particle image
वहाँ कुछ मिश्रण के साथ गलत है।
मैं अर्द्ध पारदर्शिता कण छवि का उपयोग कर तीन अंक हैं और आपको चौराहे क्षेत्र 50% पारदर्शिता रखना चाहिए।
समाधान क्या है?
समस्या यह है कि आपको ओवरड्रा को खत्म करने की आवश्यकता है, जिसके लिए सामान्य केस_ "केवल मिश्रण" के साथ संभव नहीं है। आप गहराई बफर (अल्फा परीक्षण के साथ) का उपयोग कर सकते हैं लेकिन यह ठीक से एंटीअलाइज़ नहीं होगा। यदि आप इसे उचित रूप से एंटीअलाइज्ड होना चाहते हैं, तो कम से कम सामान्य मामले में, सही होने के लिए यह छोटा नहीं है। आपको पहले एक अतिरिक्त फ्रेमबफर को प्रस्तुत करना होगा, और दूसरे पास में समग्र होना होगा। – Damon
आपके उत्तर के लिए धन्यवाद। मैं ओपनजीएल के लिए नौसिखिया हूं, मैं अभी भी ओपनजीएल में सबसे ज्यादा धारणाओं के बारे में स्पष्ट नहीं हूं। मुझे लगता है कि एंटीअलियास समस्या नहीं है। क्या आप कृपया अधिक जानकारी के साथ कोड बता सकते हैं? –