मुझे शून्य के साथ एक ओपनजीएल 2 डी बनावट शुरू करने की आवश्यकता है।शून्य से बनावट को कुशलतापूर्वक कैसे प्रारंभ करें?
क्यों? मैं ओपनसीएल के साथ इस बनावट को प्रस्तुत करता हूं। मोटे तौर पर, प्रतिपादन चरण हैं:
- RGBA बनावट बनाएँ, शून्य से प्रारंभ
- OpenCL (इसलिए यह पारदर्शी काला पिक्सल शामिल हैं): पिक्सल जहां कुछ वस्तुओं दिखाई दे रहे हैं और उन्हें इस बनावट को लिखने की गणना रंग
- ओपनजीएल: पारदर्शी पिक्सेल में पर्यावरण मैपिंग जोड़ें और अंतिम छवि
इसलिए मुझे किसी वास्तविक बनावट डेटा को glTexImage2d
पर पास करने की आवश्यकता नहीं है। लेकिन कल्पना के अनुसार, जब मैं डेटा = NULL पास करता हूं, बनावट स्मृति आवंटित की जाती है लेकिन प्रारंभ नहीं होती है।
शून्य से भरे क्लाइंट-साइड मेमोरी आवंटित करना और glTexImage2D
पर गुजरना बहुत अच्छा विकल्प नहीं है, हालांकि केवल एक ही मैं सोच सकता हूं।
संपादित करें: मैं वास्तव में केवल अल्फा घटक (आरजीबी को ओवरडिन प्राप्त कर दूंगा) में प्रवेश करना चाहता हूं, लेकिन मुझे संदेह है कि इससे स्थिति आसान हो जाएगी।
'glClearBuffer' के बारे में कभी नहीं सुना। क्या यह एक बहुत ही नए संस्करण से है? क्या इसका 'ग्लक्लेयर' पर कोई लाभ है (या बाद वाला भी बहिष्कृत है)? –
@ क्रिस्टियन: क्लियरबफर का मुख्य लाभ यह है कि आप विशिष्ट बफर साफ़ कर सकते हैं। यदि आपके पास फ्रेमबफर में एकाधिक बफर हैं, तो एकाधिक लक्ष्य प्रदान करते हैं, तो आप अलग-अलग रंगों को अलग-अलग साफ़ करना चाह सकते हैं। या कुछ बिल्कुल स्पष्ट नहीं है। आप 'glcllear' के साथ ऐसा नहीं कर सकते; यह सभी बफर को एक ही स्पष्ट रंग में साफ़ करता है। 'glClear' को बहिष्कृत नहीं किया गया है, और' glClearBuffer' जीएल 3.0 से आता है (इसके लिए कोई विस्तार नहीं है)। –
ध्यान दें कि GlClearTexImage केवल तभी काम करता है जब बनावट भंडारण पहले आवंटित किया गया हो, या तो glTexImage * या glTexStorage * पर कॉल का उपयोग कर। बस glbindTexture का उपयोग कर बनावट बनाना पर्याप्त नहीं है। लेकिन यह निश्चित रूप से glTexSubImage2D पर भी लागू होता है। – rdb