2011-01-24 16 views
6

मैं अपने प्रतिपादन कोड के एक बड़े हिस्से को दोबारा प्रतिक्रिया देने पर विचार कर रहा हूं और एक प्रश्न दिमाग में आया: क्या फ़्रेम बफर ऑब्जेक्ट में एकाधिक रंग अनुलग्नकों का उपयोग करके स्क्रीन और बनावट दोनों को प्रस्तुत करना संभव है? अगर यह संभव हो तो मुझे कोई जानकारी नहीं मिल सकती है या नहीं, भले ही इसमें कई उपयोगी अनुप्रयोग हैं। मुझे लगता है कि यह मेरे बनावट को कलर अटैचमेंट 0 और अनुलग्नक 1 में रेंडरबफर 0 के रूप में बांधने के लिए पर्याप्त होना चाहिए?क्या डिफ़ॉल्ट रेंडरबफर को एफबीओ में संलग्न करना संभव है?

उदाहरण के लिए मैं एक इंटरैक्टिव एप्लिकेशन बनाना चाहता हूं जहां आप 3 डी मॉडल पर "ड्रा" कर सकते हैं। मैं हल करता हूं कि उपयोगकर्ता यूवी-निर्देशांक को बनावट में प्रस्तुत करके आकर्षित करता है, इसलिए मैं बनावट को संशोधित करने के लिए माउस-निर्देशांक पर देख सकता हूं। मेरे मामले में यह एक शेडर होना सबसे तेज़ होगा कि दोनों यूवी के बनावट को बनाते हैं और स्क्रीन पर वास्तविक बनावट को एक पास में खींचते हैं।

क्या ऐसा करने के बेहतर तरीके हैं या मैं सही रास्ते पर हूं?

उत्तर

6

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

रेंडर बफर के साथ आरक्षित नाम शून्य भी है, लेकिन यह केवल एक विशेष "कोई नहीं" चर है और बिना बाध्य रेंडर को अनुमति देता है।

+3

वास्तव में। glspec का सेक्शन 4.4 पढ़ता है: "प्रारंभ में, जीएल डिफ़ॉल्ट फ्रेमबफर का उपयोग करता है। इस फ्रेमबफर से जुड़ी छवियों का भंडारण, आयाम, आवंटन और प्रारूप पूरी तरह से विंडो सिस्टम द्वारा प्रबंधित किया जाता है। परिणामस्वरूप, डिफ़ॉल्ट फ्रेमबफर की स्थिति, इसकी छवियों सहित, जीएल द्वारा बदला नहीं जा सकता है, न ही डिफ़ॉल्ट फ्रेमबफर जीएल द्वारा हटाया जा सकता है। " –

+0

ताकि इसका मतलब है कि आप डिफ़ॉल्ट फ्रेमबफर पर अपना खुद का रेंडरबफर भी नहीं जोड़ सकते हैं। उपयोग के मामले के आधार पर, अपनी समस्या को हल करने के लिए, आप "gluUnProject" को देखने का प्रयास कर सकते हैं, जो विंडो निर्देशांक को ऑर्डर करने के लिए समन्वयित करता है –

+0

उत्तर के लिए धन्यवाद। मुझे लगता है कि मैं डिफ़ॉल्ट फ्रेमबफर और "डिफ़ॉल्ट रेंडरबफर" के बारे में उलझन में हूं जो अस्तित्व में नहीं है। – Andos