2013-08-03 2 views
12

मेरे पास एक फ्रेमबफर ऑब्जेक्ट है जिसमें मैं इसे एन एन बनावट पर मल्टी टार्गेट रेंडरिंग का उपयोग करता हूं। एक निश्चित समय पर, मैं उन कुछ बनावट की सामग्री को साफ़ करना चाहता हूं, लेकिन उनमें से सभी नहीं। अगर मैंक्या मल्टी लक्ष्य प्रतिपादन के साथ फ्रेमबफर में केवल कुछ बनावट को साफ़ करना संभव है?

glClearColor(0.0, 0.0, 0.0, 0.0); 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 

फोन FBO से आबद्ध हर बनावट साफ किया जा रहा है (मैं सही हूँ?)। क्या विशिष्ट ड्रा बफर/बनावट पर ऐसा करने का कोई तरीका है?

उत्तर

16

रूप glDrawBuffers के माध्यम से निर्दिष्ट the glClear call में GL_COLOR_BUFFER_BITactive draw color buffers के सभी, साफ हो जाएगा। तो आप स्पष्ट निष्पादित करने से पहले ड्रॉ बफर बदल सकते हैं।

लेकिन यह आवश्यक राज्य बदल रहा है। आप simply call glClearBuffer कर सकते हैं, जो clear a particular buffer होगा।

+0

धन्यवाद। GlClearBufferfv का उचित उपयोग क्या है? GlClearBufferfv (GL_COLOR_ATTACHEMENT0, 0, और रंग [0]) ठीक है? (जहां रंग एक फ्लोट [4] सरणी है) – darius

+2

@ दारायस: "* glClearBufferfv *" फ्लोट की एक सरणी लेता है। यही है ["एफवी" हमेशा मतलब है] (https://www.opengl.org/wiki/Nomenclature#Function_suffixes)। इस मामले में, यह हमेशा 4 फ्लोट है। 'Iv' संस्करण की तरह ही 4 हस्ताक्षरित पूर्णांक (पूर्णांक प्रारूप बफर साफ़ करने के लिए) लेते हैं और' uiv' 4 हस्ताक्षरित पूर्णांक लेता है। –

+0

लिंक के लिए धन्यवाद! दरअसल, जिस हिस्से में मुझे वास्तव में संदेह था, वह पहला दो तर्क है। अगर मैं सही ढंग से समझ गया, तो वे बफर के जीलेनम हैं, और इसकी जगह जीएलनम के रंग बफर सरणी में है। तो, आम तौर पर, GL_COLOR_ATTACHEMENT0 + i, i – darius

0

यह सभी बफर होगा। हालांकि आप GlColorMask के साथ स्पष्ट के लिए बफर मास्क कर सकते हैं। http://www.opengl.org/sdk/docs/man/xhtml/glColorMask.xml

+1

दो संस्करण हैं। मेरे लिंक पर क्लिक करें। क्लासिक एक मास्क घटक, प्रति बफर दूसरा दूसरा मास्क घटक। – starmole

+0

धन्यवाद, यह glColorMaski एक अच्छा समाधान लगता है। यह जवाब एक -1 क्यों गया? – darius

+0

@ दारायस: इसे एक -1 मिला क्योंकि ओपनजीएल के पास एक विशिष्ट बफर को सीधे साफ़ करने के लिए एक फ़ंक्शन है। बफर स्पष्ट को रोकने के लिए घटकों को मास्क करना नौकरी के लिए गलत उपकरण है। –

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