2010-06-03 10 views
7

पर एक प्रोजेक्ट पोर्ट करना मैं एक सी ++ क्रॉस-प्लेटफार्म ओपनजीएल एप्लिकेशन (विंडोज, लिनक्स और मैकोज़) पर काम कर रहा हूं और मुझे आश्चर्य है कि आप में से कुछ ओपनजीएल 3 पर एक बड़ा एप्लीकेशन पोर्ट करने पर कुछ सलाह साझा कर सकते हैं। मैं ओपनजीएल 3 में देख रहा हूं क्योंकि मुझे लगता है कि हम नई "सिंक ऑब्जेक्ट्स" का उपयोग करने से बहुत लाभ उठा सकते हैं। Nvidia ने Geforce 256 दिनों (gl_nv_fences) के बाद से इस तरह के एक्सटेंशन का समर्थन किया है, लेकिन ओपनजीएल 3.0 + से पहले अति हार्डवेयर पर कोई समतुल्य कार्यक्षमता नहीं है ...ओपनजीएल 3

हमारा कोड ग्लूट/फ्रीग्लूट, ग्लू फ़ंक्शंस का भारी उपयोग करता है, ओपनजीएल 2 एक्सटेंशन और सीयूडीए (समर्थित हार्डवेयर पर)। अब जिस समस्या का सामना कर रहा हूं वह यह है कि "gl3.h" और "gl.h" पारस्परिक रूप से असंगत हैं (जैसा कि gl3.h में बताया गया है)। क्या आप जानते हैं कि कोई जीएल 3 ग्लूट समकक्ष है या नहीं? इसके अलावा, CUDA-टूलकिट हेडर फ़ाइलों को देखते हुए, ऐसा लगता है कि जीएल-सीयूडीए इंटरऑपरेबिलिटी केवल ओपनजीएल के पुराने संस्करणों का उपयोग करते समय उपलब्ध है ... (cuda_gl_interop.h gl.h ...) शामिल है। क्या मैं कुछ भूल रहा हूँ ?

आपकी मदद के लिए बहुत बहुत धन्यवाद।

उत्तर

3

ग्लूट का अंतिम अपडेट लगभग 10 साल पहले संस्करण 3.7 था। इसे ध्यान में रखते हुए, मुझे संदेह है कि यह कभी भी ओपनजीएल 3.x (या 4.x) का समर्थन करेगा।

OpenGlut पर काम करने वाले लोग ओपनजीएल 3.x समर्थन की संभावना पर विचार कर रहे हैं, लेकिन अभी तक इसके साथ कुछ भी नहीं किया है।

FLTK में एक (आंशिक) ग्लूट सिमुलेशन है, लेकिन यह आंशिक है कि एक प्रोग्राम जो "ग्लूट का भारी उपयोग करता है" पहले स्थान पर इसके साथ काम नहीं कर सकता है। चूंकि एफएलटीके सक्रिय विकास में है, मुझे लगता है कि यह अंततः ओपनजीएल 3.x (या 4.x) का समर्थन करेगा, लेकिन मुझे विश्वास नहीं है कि यह अभी तक उपलब्ध कराया गया है, और यह सवाल उठाने के लिए खुला हो सकता है कि यह कितनी जल्दी होगा ।

संपादित करें: जहां तक ​​सीयूडीए जाता है, स्पष्ट (हालांकि निश्चित रूप से गैर-तुच्छ) उत्तर इसके बजाय ओपनसीएल का उपयोग करना होगा। यह हार्डवेयर (उदा।, एटीआई/एएमडी बोर्डों के साथ) और ओपनजीएल के नए संस्करणों के साथ काफी संगत है।

जो ग्लू छोड़ देता है। वाकई, मुझे नहीं लगता कि इसका स्पष्ट या स्पष्ट उत्तर है। ओपनजीएल को ग्लू जैसी चीजों का समर्थन करने से आगे बढ़ रहा है, और इसके बजाय कोर ओपनजीएल स्पेक (उदाहरण के लिए, सभी मैट्रिक्स मैनिपुलेशन प्राइमेटिव्स) का हिस्सा होने के लिए उपयोग की जाने वाली अस्पष्ट ग्लू जैसी कार्यक्षमता के लिए भी समर्थन छोड़ रहा है। निजी तौर पर, मुझे लगता है कि यह एक गलती है, लेकिन क्या यह अच्छा है या बुरा है, इस तरह चीजें हैं। दुर्भाग्य से, ग्लू ग्लूट की तरह थोड़ा सा है - spec के लिए अंतिम अपडेट 1998 में था, और ओपनजीएल 1.2 के अनुरूप है। यह संभवतः एक अद्यतन नहीं लगता है। दुर्भाग्यवश, मुझे इसके लिए किसी भी वास्तव में प्रत्यक्ष प्रतिस्थापन के बारे में पता नहीं है। स्पष्ट रूप से अन्य ग्राफिक्स पुस्तकालय हैं जो (कम से कम कुछ) समान क्षमताओं को प्रदान करते हैं, लेकिन उनमें से सभी मैं सोच सकता हूं कि पर्याप्त पुनर्लेखन की आवश्यकता होगी।

+0

वास्तव में, जीएलयूटी वास्तव में एक मुद्दा नहीं है क्योंकि हम जल्द ही इसका उपयोग करना बंद कर देंगे ... लेकिन जीएलयू और सीयूडीए-इंटरऑपरेबिलिटी अभी भी समस्याग्रस्त हैं। फिर भी, आपके उत्तर के लिए धन्यवाद! –

+0

संपादन के लिए बहुत बहुत धन्यवाद! मुझे लगता है कि ओपनजीएल की नई दिशा भी एक गलती है ... पुरानी फिक्स्ड पाइपलाइन प्रतिमान का उपयोग करके किए गए सभी विकास के बाद, ऐसा लगता है कि बोर्ड एक अनावश्यक रूप से बोल्ड कदम खींच रहा है ... ओह ठीक है, ओपनसीएल सीखने का समय अनुमान;) –

+0

@Decapsuleur: मुझे एक और विवरण जोड़ना चाहिए: चूंकि आप स्पष्ट रूप से कंप्यूटिंग (सीयूडीए/ओपनसीएल) और ड्राइंग (ओपनजीएल) मिश्रण कर रहे हैं, तो आप ओपनजीएल 4 का उपयोग करना भी चाहेंगे। यह मिश्रण करने की क्षमता में सुधार करता है इस तरह दो, और यदि आप कूदने जा रहे हैं, तो यह एक कूद (इसलिए बोलने के लिए) का बड़ा नहीं है। –