2010-01-07 16 views
8

मुझे सी ++ 3 डी एप्लिकेशन प्रोजेक्ट के साथ चुनौती दी गई है जो 3 डिस्प्ले का उपयोग करेगी, प्रत्येक एक अलग कैमरे से प्रतिपादन करेगा।मल्टी-मॉनिटर 3 डी एप्लिकेशन

हाल ही में मैंने ओग्रे 3 डी के बारे में सीखा लेकिन यह स्पष्ट नहीं है कि यह अलग-अलग डिस्प्ले/जीपीयू के विभिन्न कैमरों के आउटपुट का समर्थन करता है या नहीं।

क्या किसी को भी इसी तरह के सेटअप और ओग्रे या किसी अन्य इंजन के साथ कोई अनुभव है?

उत्तर

3

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

यदि आप प्रत्येक डिस्प्ले पर एक अलग विंडो से निपटना चाहते हैं, तो चीजें थोड़ा अधिक जटिल हो सकती हैं। ओपनजीएल स्वयं कई खिड़कियों में डिस्प्ले को संभालने के तरीके को परिभाषित नहीं करता है (यह भी प्रयास करता है) - यह प्लेटफॉर्म-विशिष्ट कार्यों के सेट पर निर्भर करता है। उदाहरण के लिए, विंडोज़ पर, आपके पास प्रत्येक विंडो के लिए एक प्रतिपादन संदर्भ है, और किसी भी समय दिए गए प्रतिपादन संदर्भ को चुनने के लिए WGLMakeCurrent का उपयोग करना होगा।

यदि स्मृति सेवा करता है, तो ओग्रे 3 डी का विंडोज पोर्ट एकाधिक प्रतिपादन संदर्भों का समर्थन करता है, इसलिए यह कोई समस्या नहीं होनी चाहिए। मुझे उम्मीद है कि यह अन्य प्रणालियों पर कई खिड़कियों के साथ भी काम कर सकता है, लेकिन मैंने इसे किसी भी अन्य सिस्टम पर उपयोग नहीं किया है, इसलिए मैं किसी भी निश्चितता के साथ नहीं कह सकता।

मेरा तत्काल अनुमान यह है कि ट्रिपल मॉनीटर समर्थन आपके समग्र विकास प्रयास में लगभग अपरिहार्य होगा। बेशक, यह का मतलब है कि आप (अपने मालिक को बता सकते हैं) विकास और परीक्षण के लिए एक तिहाई मॉनिटर सेटअप की आवश्यकता है, जो निश्चित रूप से एक बुरी चीज नहीं है! :-)

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

+0

हैलो जैरी, आपको अपने उत्तर के लिए धन्यवाद। यह प्रत्येक डिस्प्ले के लिए एक अलग खिड़की नहीं है, क्योंकि इसे प्रत्येक डिस्प्ले पर पूर्ण स्क्रीन होने की आवश्यकता है (मुझे यकीन नहीं है कि इस प्रकार का आउटपुट विंडो पर निर्भर करता है या विंडोिंग सिस्टम को बाईपास करता है)। आप की राय क्या है? – user16120

+0

LINUX के लिए भी सच है: यदि आप एकाधिक मॉनीटर का उपयोग कर रहे हैं, तो आप आमतौर पर ज़िनारामा का उपयोग कर रहे हैं, जो एक विशाल आभासी स्क्रीन बनाता है। – Tilo

3

OGRE3D के मामले में मल्टीहेड समर्थन के बारे में कई बातें कहने के लिए कहा जाता है। मेरे अनुभव में, एक कामकाजी समाधान ओग्रे 1.6.1 के स्रोत संस्करण का उपयोग करना है और this patch लागू करना है। इस पैच का उपयोग करके, उपयोगकर्ता 6 monitors configuration पर एक ओग्रे एप्लिकेशन प्रस्तुत करने में कामयाब रहे हैं।

Personnaly, मैं सफलतापूर्वक इस पैच लागू किया गया है, और StereoManager plugin साथ यह प्रयोग किया जाता एक 3 डी प्रोजेक्टर के साथ राक्षस अनुप्रयोगों ऊपर हुक करने। मैंने केवल डायरेक्ट 3 डी 9 बैकएंड का इस्तेमाल किया। स्टीरियोमैनेजर प्लगइन एक संशोधित डेमो (Fresnel_Demo) के साथ आता है, जो आपको अपना पहला मल्टीहेड एप्लिकेशन सेट अप करने में मदद कर सकता है।

मुझे यह भी जोड़ना चाहिए कि मल्टीहेड पैच अब संस्करण 1.7 के रूप में ओग्रे कोर का हिस्सा है। Ogre1.7 को हाल ही में आरसी 1 के रूप में रिलीज़ किया गया था, इसलिए यह काम करने का सबसे तेज़ और आसान तरीका हो सकता है।