2012-04-25 15 views
7

मैं ओपनजीएल और ओपनजीएल ईएस के बीच बुनियादी अंतर से परिचित हूं, उदा। कोई glbegin, glEnd, कोई quads और आगे नहीं।ओपनजीएल और ओपनजीएल ईएस संगत कोड लिखने के लिए गाइड?

मेरा प्रश्न इसलिए दो एपीआई के बीच मतभेदों के बारे में नहीं है बल्कि कोड लिखने के बारे में है जो वास्तव में एपीआई और उनके विभिन्न कार्यान्वयन पर काम कर सकता है, खासकर ईएस के संबंध में, जहां कार्यान्वयन अधिक भिन्न होता है।

स्वाभाविक रूप से, इसका मतलब है कि दो एपीआई और समान वाक्यविन्यास में मौजूद दोनों सुविधाओं के अनुरूप, ओपनजीएल ईएस 2 सबसे कम आम संप्रदाय होने के साथ कुछ भी फैंसी और अत्याधुनिक नहीं है।

+0

आपको दिलचस्प पढ़ने [मालीओप्लेगलसेमुलेटर] (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0511c/BABBIBEA.html) दस्तावेज़ मिल सकते हैं। यह ओपनजीएल ईएस एमुलेटर (मैक/पीसी के लिए) ओपनजीएल ईएस से ओपनजीएल तक कॉल को परिवर्तित करता है। वे जीएल 2.0 और जीएलएस 2.0 के बीच अंतर पर कुछ विवरण सूचीबद्ध करते हैं। जीएल में फिक्स्ड-पॉइंट डेटा की कमी (स्पष्ट रूप से) की तरह, शेडर परिशुद्धता कुछ अन्य मामूली सामानों को अंधा करती है। – kerim

उत्तर

2

ख्रोनोस ओपनजीएल ईएस के अनुसार डेस्कटॉप ओपनजीएल का सबसेट है, इसलिए संगत कोड लिखने के लिए आपको ओपनजीएल ईएस दस्तावेज का उपयोग करने की आवश्यकता है।

एक उद्धरण http://www.khronos.org/opengles/ से

OpenGL® ES है एक रॉयल्टी-मुक्त, एम्बेडेड सिस्टम पर पूर्ण समारोह 2 डी और 3 डी ग्राफिक्स के लिए क्रॉस-प्लेटफ़ॉर्म API - कंसोल, फ़ोन, उपकरणों और वाहनों सहित। इसमें डेस्कटॉप ओपनजीएल

संपादित करें: जस्टिन मीनर्स ने टिप्पणियों में बताया कि वास्तव में ठीक विवरणों के बारे में कुछ अंतर हैं। डेविड सी बिशप के जवाब पर इस बारे में अधिक जानकारी है।

+0

यह सच नहीं है। जबकि अधिकांश कोड अपरिवर्तित स्थानांतरित होंगे, उनकी संगतता समस्याएं हैं। –

+0

@ जस्टिनमेनर्स: मैं उत्सुक हूं कि उन दस्तावेजों में अंतर या कार्यान्वयन में बग हैं? मुझे इनमें से कोई भी संगतता समस्या नहीं मिली है और ख्रोनोस प्रलेखन अभी भी "सबसेट" शब्द का उपयोग करता है। यदि यह वास्तव में एक सख्त सबसेट नहीं है, तो मैं अपना उत्तर अपडेट करना चाहता हूं। –

+0

मतभेदों के कुछ उदाहरण शेडर सटीक क्वालीफायर होंगे, गारंटीकृत आकार में अंतर। यदि आप अन्य उत्तर में ARB_ES2_compatibility दस्तावेज़ देखते हैं तो यह वास्तव में संगतता के लिए किए गए सभी परिवर्तनों का वर्णन करता है। –

2

आप नए OpenGL ES अनुकूलता विस्तार ARB_ES2_compatibility (ओपन 4.1 में कोर करने के लिए जोड़ा)

बेशक

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

ARB_ES3_compatibility (ओपनजीएल 4.3 में कोर) भी है, लेकिन ओपनजीएल ES 3.0 के लिए यह अनदेखा करना शायद सुरक्षित है)।