वास्तव में उच्च-रिज़ॉल्यूशन डिस्प्ले सरणी के लिए कोडिंग


17

मुझे 60+ इंच के एलईडी टीवी के 5x2 सरणी पर चलने के लिए एक वास्तविक समय "पूर्ण स्क्रीन" डेमो बनाने का काम सौंपा गया है: या, दूसरे शब्दों में, 20 मेगापिक्सेल डिस्प्ले।

हमें एक ऐसी मशीन मिली है, जो पूरे रेसोलुशन पर डिस्प्ले में फैले सिंगल Win7 डेस्कटॉप को चला सकती है, और कुछ बहुत अच्छे वीडियो कार्ड भी।

मेरा सवाल यह है कि मेरे पिक्सेल शेड्स जो काम करने जा रहे हैं, उनमें से अलग से क्या डीएक्स 10 का कोई अन्य हिस्सा है। * जो कि यहां खेल में आएगा जो अधिक पवित्र आकार के व्यूपोर्ट पर नहीं होगा? मेरे पास अगले सप्ताह तक हार्डवेयर तक पहुंच नहीं होगी, लेकिन मैं तब तक कुछ लिखना चाहता हूं, जिसका उपयोग मैं सिस्टम को बेंचमार्क कर सकता हूं।

अपडेट करें

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

यह आश्चर्यजनक रूप से आसान था। अपने परीक्षण XNA ऐप के लिए, मैंने एक GameComponent को जोड़ा जो कुछ गेम स्टेट (कैमरा पोजिशन / ओरिएंटेशन, आदि) को कैप्चर करता है और UDP-spams प्रति फ्रेम में स्थानीय सबनेट में इसे जोड़ता है।

उस घटक में एक Modeस्विच है (भेजें या प्राप्त करें)। यदि यह Receiveमोड में है, तो यह यूडीपी डेटाग्राम पकड़ता है और प्रेषक की जानकारी के साथ गेम स्थिति को अपडेट करता है। Sendमोड बस राज्य पैकेट भेजता है, और, एक सेवा / डेमॉन के माध्यम से, क्लाइंट ऐप को शुरू या बंद करने के लिए नोड का कारण बनता है। कोई भी क्लाइंट "मास्टर" के रूप में कार्य कर सकता है, और क्लाइंट को Sendमोड में स्विच करने के लिए अन्य सभी नोड्स को स्विच करने का अनुरोध करता है Receive। यह देखने के लिए बहुत मनोरंजक है कि क्या होता है जब लोग नियंत्रण से लड़ रहे होते हैं।

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

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


2
यह एक बहुत मजेदार परियोजना की तरह लग रहा है।
साइफर

1
हां। मैं लगभग चकरा गया और मुहा-हा-हाला।
डी फेव

3
मैंने इसे 10 सस्ते गंदे कमोडिटी मशीनों के रूप में किया है, प्रत्येक को केवल यह देखने के लिए चिंतित है कि यह विश्व दृश्य का थोड़ा टुकड़ा है और कुछ मास्टर बॉक्स से समय सिंक और नियंत्रण बनाए रखने के लिए नेटवर्क किया गया है। एक रक्तस्रावी धार के बजाय, एक टन आर एंड डी जोखिम के साथ बिना मशीन के कॉन्फ़िगरेशन यह बहुत कम जोखिम में डिब्बाबंद समाधान होगा। हालांकि यह सिर्फ मुझे है, हालांकि, YMMV।
पैट्रिक ह्यूजेस

यही कारण है कि मैं चला गया होता, लेकिन मैंने थ्रोट हार्डवेयर नहीं खरीदा। = /
डीवेव

दरअसल, नेटवर्क, सिंक किए गए रेंडर पहलू भयानक लगता है। चुनौती, लेकिन मैं पहले से ही यह कैसे कर सकता हूँ। और कुछ लचीलापन फिर से प्रदान करता है: यदि आप सरणी को विभाजित करना चाहते हैं तो एक बॉक्स से कई धाराओं को प्रस्तुत करना आवश्यक नहीं है। "समानांतर" मेरे पसंदीदा शब्दों में से एक है!
डी

जवाबों:


5

मैं सॉफ्टवेयर के रूप में हार्डवेयर विन्यास के बारे में ज्यादा चिंता करेंगे। आपको प्रत्येक टीवी को उसके मूल रिज़ॉल्यूशन पर चलाने की ज़रूरत नहीं है, और स्क्रीन का आकार रिज़ॉल्यूशन से अलग है। मुझे लगता है कि 60 "टीवी प्रत्येक 1920x1080 हैं, हालांकि, उन सभी में मूल रिज़ॉल्यूशन या तो 9600x2160 है, यदि आपका मतलब 5 पंक्तियों x 2 कॉलम टीवी, या 3840x5400 से है, तो आपका मतलब 5 कॉलम x 2 पंक्तियाँ हैं।

यदि आप वीडियो ट्रांसफर करने के लिए DisplayPort 1.2 का उपयोग कर रहे हैं, तो नवीनतम AMD Radeon कार्ड, 7970 प्रति डिस्प्ले में अधिकतम 4096x2160 प्रति डिस्प्ले के रिज़ॉल्यूशन का समर्थन करता है। तो यह आपको मूल संकल्प के करीब हो सकता है, हालांकि यह 5 टीवी तक काम नहीं करेगा।

AMD Radeon 6870 Eyefinity 6 एक बार में 6 आउटपुट तक का समर्थन करता है, लेकिन केवल 5760x2160 के अधिकतम रिज़ॉल्यूशन पर। यह एक क्रॉसफ़ायर कॉन्फ़िगरेशन का भी समर्थन करता है जो आपके प्रदर्शन को थोड़ा सा मदद करेगा। अतिरिक्त GPUs को ध्यान में रखते हुए अधिक से अधिक अधिकतम रिज़ॉल्यूशन प्राप्त नहीं होगा।

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


हार्डवेयर पहले से ही पूरे सरणी को चलाता है, प्रत्येक व्यक्तिगत प्रदर्शन के साथ 1920x1080। दो पंक्तियों द्वारा इसके 5 कॉलम। एक अन्य व्यक्ति को एक पूर्ण-रिज़ॉल्यूशन OpenGL विंडो मिली जिसमें एक घूमने वाला वायरफ्रेम चल रहा था। बस किसी भी DX सीमाओं के बारे में सोच रहा था जो वापस आ सकते हैं और मुझे बाद में काट सकते हैं।
डी एफ

1
जहाँ तक मुझे पता है आप डीएक्स 10 तक सीमित नहीं रहेंगे, जैसा कि आप बता रहे हैं। यदि आप उस सेटअप पर पहले से ही प्रदर्शित करने में सक्षम हैं तो प्रदर्शन आपकी एकमात्र चिंता होगी, और उस प्रदर्शन को संभालना किसी भी अन्य गेम / प्रोग्राम की तरह होगा, अतिरिक्त स्क्रीन स्पेस के कारण बस थोड़ा सा बढ़ा हुआ है।
निक फोस्टर

6

आप आसानी से प्रदर्शन का परीक्षण करने के लिए बराबर आकार का एक रेंडर लक्ष्य बना सकते हैं। आपको वास्तविक हार्डवेयर मिलने तक इसे बैक बफर में कॉपी करने या ज़ूम करने की आवश्यकता होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.