2012-12-23 21 views
6

क्या कोई हेडलेस सर्वर (स्टैंडअलोन सर्वर, अमेज़ॅन एडब्ल्यूएस या इसी तरह) पर सर्वर-साइड चलाने के लिए कोई तरीका है?सर्वर-साइड फ़ॉलबैक प्रतिपादन

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

तो ... क्या कार्यात्मक तीन.जेएस उदाहरण के साथ सर्वर-साइड सेवा बनाना संभव होगा? क्लाइंट अभी भी पेड़.जेएस कैनवास वायरफ्रेम प्रतिपादन का उपयोग करेगा, लेकिन कहने के बाद ... निष्क्रियता का दूसरा, यह AJAX के माध्यम से सर्वर-साइड सेवा से पूर्ण प्रस्तुत करने का अनुरोध करेगा, और इसे केवल एक छवि के रूप में ओवरले करेगा।

क्या वर्तमान में कोई ऐसी एप्लिकेशन, पुस्तकालय या कुछ भी है जो ऐसी चीज (कार्यात्मक जावास्क्रिप्ट + वेबग्ल + तीन.जेएस को हेडलेस, अधिमानतः लिनक्स सर्वर, और उस पर जीपीयू-कम) की अनुमति देगी?

PhantomJS मन में आता है, लेकिन जाहिरा तौर पर यह अभी तक WebGL समर्थन नहीं करता: समस्या का http://code.google.com/p/phantomjs/issues/detail?id=273

या किसी भी वैकल्पिक तरीकों? एक जीपीयू और मानक क्रोम/फ़ायरफ़ॉक्स उदाहरण के साथ एक पूर्ण डेस्कटॉप मशीन को प्रोग्रामेटिक रूप से नियंत्रित करने के मार्ग पर जाकर, नाजुक होने पर, और वास्तव में वास्तव में वहां जाना नहीं चाहेंगे यदि कोई सॉफ़्टवेयर-केवल समाधान हो।

उत्तर

9

इसकी गुणवत्ता आश्वासन के बुनियादी ढांचे में, गूगल ने मेसा का उपयोग कर क्रोमियम परीक्षण चला सकते हैं (इस मुद्दे 97675 देखते हैं, स्विच --use-gl=osmesa के माध्यम से)। मेसा के नवीनतम संस्करण में सॉफ़्टवेयर रास्टराइज़र बहुत उन्नत है, जिसमें शेडर्स को बदलने और सीपीयू पर निष्पादन को अनुकरण करने के लिए एलएलवीएम का उपयोग शामिल है। आपका पहला रोमांच मेसा का निर्माण कर सकता है, क्रोमियम का निर्माण कर सकता है, और फिर उन्हें एक साथ बांधने की कोशिश कर सकता है।

एक साइड नोट के रूप में, यह भी है कि मैं फ़ैंटॉमजेएस के लिए भी (निकट भविष्य में) योजना बना रहा हूं, विशेष रूप से क्यूटी भी उस दिशा में आगे बढ़ रहा है, यानी केवल अपने रास्टर इंजन के बजाय मेसा/एलएलवीएमपीइप का उपयोग कर रहा हूं। The numbers वास्तव में अच्छा लग रहा है। ऑफ़लाइन, गैर-एनिमेटेड एकल-शॉट कैप्चर के लिए भी बेहतर, प्रदर्शन संतोषजनक से अधिक होगा।

+0

यह वही है जो मैं ढूंढ रहा हूं (ठीक है, अधिक आसानी से उपलब्ध विकल्पों की अनुपस्थिति में)। मुझे मेसा रेंडरर के लिए क्रोमियम समर्थन से अवगत नहीं था .. उम्मीद है कि अगर मैं इसे फ़ैंटॉमजेएस में पहले काम कर रहा हूं तो मुझे इसके साथ सफलता मिलेगी, या इससे भी बेहतर :) – yaku

+0

@yaku आप मेसा रेंडरर के साथ क्रोमियम चलाने में सक्षम थे? – frank

+0

@ फ्रैंक नहीं मैंने नहीं किया। यह नहीं कहना कि यह नहीं किया जा सका, सिर्फ इतना है कि मेरे पास सॉफ़्टवेयर के बड़े टुकड़े बनाने और ट्विकिंग करने का अनुभव नहीं है। फिर भी इसे फिर से कोशिश करने की उम्मीद है, या यदि फैंटॉमजेएस या अन्य मौजूदा समाधान वेबजीएल का समर्थन करते हैं। – yaku

1

इस सूत्र में कुछ आदानों: https://github.com/mrdoob/three.js/issues/2182

विशेष रूप से यह demo दिखाता है कि कैसे NodeJS का उपयोग कर सर्वर साइड पर कुछ छवियों उत्पन्न करने के लिए।

धन्यवाद, निको

+1

दुर्भाग्य से ऐसा लगता है कि यह CanvasRenderer केवल है जैसे। मैं पूर्ण WebGLRenderer क्षमताओं की तलाश में हूं, भले ही वे गैर-त्वरित और सॉफ़्टवेयर में प्रस्तुत किए गए हों (लगभग 1 FPS इस उद्देश्य के लिए पर्याप्त होना चाहिए)। किसी भी तरह से osmesa या llvmpipe (?) जैसे ओपनजीएल रेंडरर के साथ काम करने के लिए node.js (या phantomjs) को बनाने का तरीका हो सकता है, लेकिन यह है .. मुझे नहीं पता कि इसके साथ कहां से शुरुआत करें। – yaku

0

नीचे दिए गए लिंक एडब्ल्यूएस के साथ आपकी समस्या का समाधान नहीं करेंगे लेकिन आपको एक संकेत मिलेगा।

मैं एक ऐसी ही वास्तुकला के साथ आवेदन पर काम कर रहा हूँ और इन उदाहरणों के साथ भर में आया था:

Multiplayer game with realtime socket.io

My original question on similar architecture

+1

कृपया उद्धरण दें संदर्भ लिंक से उत्तर के आवश्यक भाग, क्योंकि लिंक किए गए पृष्ठ (ओं) बदलते हैं तो उत्तर अमान्य हो सकता है। – DavidPostill

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