मैंने स्क्रीन पर कई अलग-अलग रंगीन बहुभुज खींचे हैं, अब मुझे अलग-अलग रंगों का एक और बहुभुज खींचना है, लेकिन यह बहुभुज केवल उन पिक्सेल पर खींचा जाना चाहिए जिनके पास एक विशिष्ट रंग है।केवल विशिष्ट पिक्सेल रंगों पर बहुभुज कैसे आकर्षित करें?
मैं अपने स्वयं के "परतों" में एक ही समय में प्रत्येक रंगीन बहुभुज को प्रस्तुत करता हूं, (= एक समय में एक रंग)। वे एक दूसरे को कवर कर सकते हैं; नवीनतम परत सभी पिछली परतों को कवर करती है। छवि में काला रंग "कोई बहुभुज" क्षेत्र नहीं है: खाली स्थान, और इसे भी अनदेखा करना चाहिए।
तो, मूल रूप से मैं केवल बहुभुज प्रस्तुत करता हूं, और फिर बहुभुज की पहली (पहली नहीं) परत को अगले बहुभुज परत के साथ मुखौटा किया जाना चाहिए, और इसके तहत कुछ भी प्रभावित नहीं होना चाहिए। विधि की
छवि की जरूरत:
क्या विधि मैं ओपन के साथ इस लक्ष्य को हासिल करने के लिए उपयोग कर सकते हैं? यदि संभव हो तो मैं इसके लिए गैर-शेडर समाधान पसंद करूंगा (?)।
एकमात्र तरीका जो मैं वर्तमान में कर सकता हूं, प्रत्येक परत को स्मृति में अलग से प्रस्तुत करना है, फिर पिक्सल के माध्यम से स्वयं को ले जाएं और परतों को "मैन्युअल रूप से" गठबंधन करें, लेकिन यह एक बहुत धीमी विधि की तरह लगता है, हालांकि करने योग्य है, लेकिन गति यहां महत्वपूर्ण है।
के बराबर है तुम क्यों 'GL_STENCIL_TEST' सक्षम कर सकता हूँ बता केवल पिक्सल पर आकर्षित करने के लिए केवल दूसरे कोड पर? क्या मैं इसे पहले कोड पर भी सक्षम नहीं कर सकता? – Rookie
आप सही हो सकते हैं। मैंने मूल रूप से सोचा था कि STENCIL_TEST को केवल तब सक्षम होना था जब आप वास्तव में स्टैंसिल बफर के आधार पर कुछ अस्वीकार करना चाहते थे, न केवल इसे अपडेट करने के लिए। हालांकि glStencilOp कोड को फिर से पढ़ने से ऐसा लगता है कि परीक्षण अक्षम होने पर स्टैंसिल बफर को संशोधित नहीं किया जा सकता है। आपको पहले भाग के लिए स्टैंसिल परीक्षण को सक्षम करने में सक्षम होना चाहिए, इस पर विचार करना कि स्टैंसिल func हमेशा पास होने के लिए सेट है। @Rookie – Tim
इसका परीक्षण किया, खूबसूरती से काम करता है! और मैंने यह भी परीक्षण किया कि यह वास्तव में दोनों मामलों के लिए सक्षम होना चाहिए। – Rookie