इन दिनों, मुझे कैनवास पर कई छवियां खींचने की आवश्यकता है। कैनवास आकार 800x600px है, और मेरे पास 256x256px (कुछ छोटा है) की कई छवियां हैं, इसे आकर्षित करने के लिए, ये छोटी छवियां कैनवास पर एक पूर्ण छवि तैयार करेंगी। मेरे पास इसे लागू करने के दो तरीके हैं।वेबजीएल वीएस कैनवास 2 डी हार्डवेयर त्वरण
सबसे पहले, अगर मैं कैनवास 2 डी संदर्भ का उपयोग करता हूं, तो यह context = canvas.getContext('2d')
है, तो मैं कैनवास के उचित स्थान पर प्रत्येक छवि को रखने के लिए बस context.drawimage()
विधि का उपयोग कर सकता हूं।
एक और तरीका, मैं इन छवियों को कैनवास पर आकर्षित करने के लिए वेबजीएल का उपयोग करता हूं। इस तरह, हर छोटी छवि के लिए, मुझे एक आयत खींचने की जरूरत है। आयताकार का आकार इस छोटी छवि के समान है। इसके अलावा, आयताकार कैनवास के उचित स्थान पर है। फिर मैं छवि को भरने के लिए बनावट के रूप में उपयोग करता हूं।
फिर, मैं इन दो तरीकों के प्रदर्शन की तुलना करता हूं। उनके दोनों एफपीएस 60 तक पहुंच जाएंगे, और एनीमेशन (जब मैं माउस पर क्लिक या स्थानांतरित करता हूं, तो कैनवास कई बार फिर से चला जाएगा) बहुत चिकनी लग रहा है। तो मैं उनके सीपीयू उपयोग की तुलना करता हूं। मुझे उम्मीद है कि जब मैं वेबजीएल का उपयोग करता हूं, तो सीपीयू कम उपयोग करेगा क्योंकि जीपीयू ड्राइंग के कई कामों को आश्वस्त करेगा। लेकिन नतीजा यह है कि, CPU उपयोग लगभग समान दिखता है। मैं अपने वेबजीएल कोड को अनुकूलित करने का प्रयास करता हूं, और मुझे लगता है कि यह काफी अच्छा है। Google द्वारा, मैंने पाया कि क्रोम, फ़ायरफ़ॉक्स जैसे ब्राउज़र डिफ़ॉल्ट रूप से हार्डवेयर त्वरण सक्षम करेगा। तो मैं हार्डवेयर त्वरण को बंद करने की कोशिश करता हूं। फिर पहली विधि का सीपीयू उपयोग बहुत अधिक हो जाता है। तो, मेरा सवाल यह है कि, कैनवास 2 डी जीपीयू का उपयोग करने के लिए उपयोग करता है, क्या मेरे लिए केवल 2 डी प्रतिपादन के लिए वेबजीएल का उपयोग करना आवश्यक है? कैनवास 2 डी जीपीयू त्वरण और वेबजीएल के बीच क्या अंतर है? वे दोनों जीपीयू का उपयोग करते हैं। शायद दूसरी विधि के सीपीयू उपयोग को कम करने के लिए कोई और तरीका है? किसी भी जवाब की सराहना की जाएगी!
आपके उत्तर के लिए धन्यवाद और देर से स्वीकृति के लिए वास्तव में खेद है। जैसा कि आपने कहा था, वेबजीएल और कैनवास 2 डी दोनों का अपना लाभ और नुकसान है। मैंने अंत में वेबजीएल अपनाया। – LiuGui
बस एक नोट: 2 डीकॉन्टेक्स्ट में 'अल्फा' विकल्प भी है। – Kaiido
आपका मुद्दा है? – gman