2011-10-27 20 views
6

के बीच ओपनजीएल निर्धारिती प्रतिपादन मैं वर्तमान में ओपनजीएल का उपयोग कर एक वैज्ञानिक इमेजिंग एप्लिकेशन प्रोग्रामिंग कर रहा हूं।जीपीयू विक्रेता

मैं जानना चाहता हूं कि ओपनजीएल प्रतिपादन (एफबीओ से पुनर्प्राप्त पिक्सेल की अवधि में) पूरी तरह से निर्धारिती माना जाता है जब मेरा कोड (सी ++/ओपनजीएल और सरल जीएलएसएल) विभिन्न हार्डवेयर पर निष्पादित किया जाता है (एटीआई बनाम एनवीडिया, विभिन्न एनवीडिया पीढ़ियों और विभिन्न ओएस)?

दरअसल, मैं सटीक एक ही पिक्सल बफर हर जरूरत मैं (कि चलाता कर सकते हैं बुनियादी GLSL और ओपन 3.0) किसी भी हार्डवेयर पर अपने कोड चलाने हूँ ...

कि संभव है? क्या मुझे कुछ सलाह दी जानी चाहिए?

यदि यह संभव नहीं है, तो क्या वीडियो कार्ड का एक विशिष्ट ब्रांड (शायद क्वाड्रो?) है जो मेजबान ओएस को अलग करते हुए ऐसा कर सकता है?

+1

निर्धारक? बेशक! ड्राइवरों या यहां तक ​​कि हार्डवेयर में Invariant? शायद नहीं (कम से कम गारंटी नहीं है)। –

उत्तर

4

ओपन कल्पना (संस्करण 2.1 परिशिष्ट ए) से:

ओपन विनिर्देश सटीक पिक्सेल नहीं है। इसलिए यह विभिन्न जीएल कार्यान्वयन द्वारा उत्पादित छवियों के बीच सटीक मिलान की गारंटी नहीं देता है। हालांकि, विनिर्देश एक ही कार्यान्वयन द्वारा उत्पादित छवियों के लिए, कुछ मामलों में सटीक मिलान निर्दिष्ट करता है।

यदि आप सभी एंटी-एलियासिंग और टेक्सचरिंग को अक्षम करते हैं, तो आप प्लेटफॉर्म पर लगातार परिणाम प्राप्त करने का एक अच्छा मौका खड़े हैं। हालांकि, अगर आपको एंटीअलाइजिंग या टेक्सचरिंग या 100% पिक्सेल-परिपूर्ण गारंटी की आवश्यकता है, तो केवल सॉफ्टवेयर प्रतिपादन का उपयोग करें: http://www.mesa3d.org/

+0

बहुत बहुत धन्यवाद! क्या आपको लगता है कि मैं केवल क्वाड्रो कार्ड (और एक ही सेटिंग्स का उपयोग कर) का उपयोग कर पिक्सेल-परिपूर्ण परिणाम प्राप्त कर सकता हूं? – softmllx

+1

समान हार्डवेयर के साथ भी, प्रतिपादन संस्करणों में प्रतिपादन बदल सकता है। एनवीडिया के विंडोज चालकों और एनवीडिया के लिनक्स ड्राइवरों के बीच समान प्रतिपादन की अपेक्षा न करें, या एक ही ड्राइवर के दो अलग-अलग संस्करणों के बीच भी। और ध्यान रखें कि ड्राइवर सेटिंग्स एंटीअलाइजिंग या बनावट फ़िल्टरिंग गुणवत्ता के मामले में एप्लिकेशन अनुरोधों को ओवरराइड कर सकती हैं।बाधाएं हैं कि आपको 60FPS पर पिक्सेल-परिपूर्ण प्रतिपादन की आवश्यकता नहीं है, इसलिए आप शायद पूर्वावलोकन के रूप में हार्डवेयर प्रतिपादन के साथ प्राप्त कर सकते हैं, और आपके अंतिम, सटीक प्रस्तुत करने के लिए सॉफ़्टवेयर प्रतिपादन डिस्क पर सहेजा जाता है। – user57368

0

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

2

"निर्धारक" द्वारा, मैं मानता हूं कि आपने जो कहा है उसका मतलब है (शब्द वास्तव में क्या मतलब है): कि आप पिक्सेल समान परिणाम क्रॉस-प्लेटफ़ॉर्म प्राप्त कर सकते हैं।

नहीं। कोई मौका नहीं।

आप अपने ग्राफिक्स ड्राइवर के एप्लिकेशन में सेटिंग के साथ बस प्रतिपादन से प्राप्त पिक्सेल परिणामों को बदल सकते हैं। उसी हार्डवेयर से चालक संशोधन जो आपको मिलते हैं उसे बदल सकते हैं।

ओपनजीएल विनिर्देश कभी आवश्यक पिक्सेल-परिपूर्ण परिणाम नहीं है। एंटीअलाइजिंग और बनावट फ़िल्टरिंग विशेष रूप से घबराहट वाले हिस्सों हैं।

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