2 ডি গেমস / অ্যাপ্লিকেশনের জন্য 2 ডি-ক্যানভাসের পরিবর্তে ওয়েবজিএল ব্যবহার করার জন্য পারফরম্যান্স বাদে কোনও কারণ আছে কি ?
অন্য কথায় 2G- ক্যানভাসের সাহায্যে ওয়েবজিএল দ্বারা 2D কার্যকারিতা কীভাবে দেওয়া সম্ভব হয় না?
2 ডি গেমস / অ্যাপ্লিকেশনের জন্য 2 ডি-ক্যানভাসের পরিবর্তে ওয়েবজিএল ব্যবহার করার জন্য পারফরম্যান্স বাদে কোনও কারণ আছে কি ?
অন্য কথায় 2G- ক্যানভাসের সাহায্যে ওয়েবজিএল দ্বারা 2D কার্যকারিতা কীভাবে দেওয়া সম্ভব হয় না?
উত্তর:
এই প্রশ্নটি অন্য পক্ষ থেকে দেখছেন:
কীভাবে কোনও বিকাশকারী একটি প্রযুক্তি অন্যের চেয়ে পছন্দ করে?
সুতরাং আমি এই গুণাবলী সম্পর্কিত ক্যানভাস এবং ওয়েবজিএল এপিআইয়ের মধ্যে পার্থক্য আলোচনা করব।
ক্যানভাস এবং ওয়েবজিএল উভয়ই জাভাস্ক্রিপ্ট এপিআই। ইন্টিগ্রেশন (বাঁধাই) সম্পর্কিত তারা প্রায় একই রকম। এগুলি উভয়ই অনেকগুলি লাইব্রেরি দ্বারা সমর্থিত যা আপনার কোডিংয়ের গতি বাড়িয়ে তুলতে পারে। বিভিন্ন লাইব্রেরি আপনাকে আপনার কোডটি সংগঠিত করার জন্য বিভিন্ন উপায়ে দেয়, সুতরাং লাইব্রেরির পছন্দটি আপনার আঁকার এপিআইগুলি কীভাবে কাঠামোবদ্ধ হয় তা নির্ধারণ করে তবে এটি এখনও একই জিনিস (কীভাবে বাকি কোডগুলি এটির সাথে একত্রে আবদ্ধ হয়)। আপনি যদি গ্রন্থাগার ব্যবহার করেন তবে লেখার কোডের স্বাচ্ছন্দতা লাইব্রেরির উপর নির্ভর করে।
আপনি যদি শূন্য থেকে কোড লিখেন তবে ক্যানভাস এপিআই শিখতে এবং বুঝতে অনেক সহজ। এটির জন্য ন্যূনতম গণিত জ্ঞান প্রয়োজন এবং বিকাশ দ্রুত এবং সোজা।
ওয়েবজিএল এপিআইয়ের সাথে কাজ করার জন্য শক্তিশালী গণিত দক্ষতা এবং রেন্ডারিং পাইপলাইনের একটি সম্পূর্ণ বোঝার প্রয়োজন। এই দক্ষতাযুক্ত ব্যক্তিদের সন্ধান করা আরও শক্ত, উত্পাদন ধীর গতির (এই জাতীয় কোডের আকার এবং জটিলতার কারণে), এবং এজন্য এর জন্য আরও বেশি ব্যয় হয়।
ওয়েবজিএল দ্রুত এবং এটিতে আরও ক্ষমতা রয়েছে। এই ব্যাপারে কোন সন্দেহ নেই. এটি একটি নেটিভ থ্রিডি এপিআই যা আপনাকে রেন্ডারিং পাইপলাইনে সম্পূর্ণ অ্যাক্সেস দেয়, কোড এবং প্রভাবগুলি দ্রুত সম্পাদন করা হয় এবং আরও 'টুইঙ্কেবল' হয়। ওয়েবজিএল দিয়ে আসলেই এর সীমা নেই।
ক্যানভাস এবং ওয়েবজিএল উভয়ই এইচটিএমএল 5 গুডি। সাধারণত যে ডিভাইসগুলির একটি সমর্থন করে সেগুলি অন্যকে সমর্থন করবে।
সুতরাং, সংক্ষেপে:
আশাকরি এটা সাহায্য করবে.
আলোচনার জন্য পিএস উন্মুক্ত
সবচেয়ে বড় সুবিধা হ'ল পাইপলাইনের প্রোগ্রামযোগ্যতা এবং কর্মক্ষমতা। উদাহরণস্বরূপ, বলুন যে আপনি একটির উপরে 2 টি বাক্স আঁকছেন এবং একটি লুকিয়ে রয়েছে, কিছু জিএল বাস্তবায়নগুলিতে লুকানো বাক্সটি ফেলে দেওয়ার সুযোগ রয়েছে।
তুলনা হিসাবে, যেহেতু এখানে একটি টেবিল তৈরি করার কোনও দ্রুত উপায় নেই, আমি কেবল নীচের তুলনা টেবিলের একটি ছবি আপলোড করেছি। কেবলমাত্র সম্পূর্ণতার জন্য থ্রি.জে যোগ করা হয়েছে।
আমার নিজের অ্যাপ্লিকেশনগুলির অভিজ্ঞতা থেকে বলতে গিয়ে , গ্রাফিক্স শেডারগুলি কেবলমাত্র একমাত্র কারণ যার জন্য আমার ওয়েবজিএল সমর্থন প্রয়োজন support উভয় ফ্রেমওয়ার্ক থ্রি.জেএস দিয়ে বিমূর্ত করা যায় বলে ব্যবহারের সহজতা আমার পক্ষে খুব সামান্য। ধরে নিলাম আমার ছায়ার দরকার নেই, আমি ব্রাউজার / মেশিন সমর্থন সর্বাধিক করে তোলার জন্য কোনও ফ্রেমওয়ার্ক ব্যবহারের অনুমতি দিই।
2D ক্যানভাস না করে যে 2D সক্ষমতা ওয়েবজিএল দেয়? বৃহত্তম আইএমএইচও হ'ল গ্রাফিক্স হার্ডওয়্যারে প্রোগ্রামেবল টুকরা শেডার। উদাহরণস্বরূপ, ওয়েবজিএলে, কেউ আপনার 3 ডি হার্ডওয়্যারটিতে শ্যাডারে কনওয়ের গেম অফ লাইফ প্রয়োগ করতে পারে:
http://glslsandbox.com/e#207.3
এই ধরণের 2D ডিসপ্লে কেবল 2 ডি ক্যানভাস সহ জিপিইউ নয়, সিপিইউতে চলবে। সমস্ত গণনা জাভাস্ক্রিপ্টে প্রয়োগ করা হবে এবং এমনকি জিপিইউর মতো সমান্তরাল হবে না এমনকি ওয়েব কর্মীদের সহায়তায়। এটি অবশ্যই একটি উদাহরণ, শ্যাডারগুলির সাথে সমস্ত ধরণের আকর্ষণীয় 2 ডি ইফেক্টগুলি প্রয়োগ করা যেতে পারে।
ওয়েল, পারফরম্যান্স সবচেয়ে বড় কারণগুলির মধ্যে একটি হবে কারণ আপনি যখন কোনও গেম কোডিং করছেন, এটি দ্রুত হওয়া উচিত। তবে আরও কয়েকটি কারণ রয়েছে যার জন্য আপনি ক্যানভাসের উপর দিয়ে ওয়েবজিএল চয়ন করতে পারেন। এটি শেডারগুলি, আলো এবং জুমিংয়ের কোডিংয়ের সম্ভাবনা সরবরাহ করে, যা আপনি যদি বাণিজ্যিক গেম অ্যাপ্লিকেশন করছেন তবে তা গুরুত্বপূর্ণ। এছাড়াও ক্যানভাস 50 স্প্রাইট বা তারপরে লেগেই যায়।
ক্যানভাসের সাথে আপনি যা করতে পারবেন তা তেমন কিছুই নেই যা আপনি ওয়েবজিএল দিয়ে করতে পারবেন না: ক্যানভাসটি get / putImageData দিয়ে বাইটগুলি পিষ্ট করতে দেয় এবং আপনি ওয়েবজএল দিয়ে লাইন, বৃত্ত, ... আঁকতে পারেন।
তবে আপনি যদি কিছু অঙ্কন এবং 60 এফপিএসে কিছু প্রভাব ফেলতে চাইছেন তবে পারফরম্যান্সের ব্যবধানটি এতটাই বেশি যে এটি কেবল ক্যানভাস দিয়ে সম্ভব হবে না, যখন এটি ওয়েবজিএলে ঠিক আছে। পারফরম্যান্স একটি মূল বৈশিষ্ট্য।
তবুও ওয়েবজিএল প্রোগ্রামের জন্য বেশ জটিল: দেখুন ক্যানভাস আপনার পক্ষে যথেষ্ট ভাল কিনা বা এমন কোনও লাইব্রেরি খুঁজছেন যা বেদনা লাঘব করতে পারে ...
অন্যান্য অসুবিধা: এটি আই (তবে কী করে?) এবং কিছু মোবাইলে কাজ করে না।
সামঞ্জস্যতার জন্য এখানে দেখুন: http://caniuse.com/webgl
আপনি যেমন কিছু ক্লাসিক 2 ডি জিনিস চান যা ক্যানভাসের সাথে ভালভাবে কাজ করে না:
... তবে অবশ্যই আপনার পিক্সেল অ্যাক্সেস রয়েছে, সুতরাং আপনি নিজে থেকে উপরোক্তগুলি সহ সত্যই কিছু করতে পারেন। তবে তা সত্যই, ধীর হতে পারে। তাত্ত্বিকভাবে ক্যানভাসে রেন্ডার করতে আপনি মেসা ওপেনগলকে এমস্ক্রিপ্ট করতে পারেন।
ওয়েবজিএল ব্যবহারের আর একটি বড় কারণ হ'ল ফলাফলটি অন্য কোথাও পোর্ট করা খুব সহজ। যা দক্ষতা আরও মূল্যবান করে তোলে।
ক্যানভাস ব্যবহার করার কারণগুলি হ'ল এটি এখনও আরও ভাল সমর্থিত এবং যদি আপনি পিক্সেল দ্বারা পিক্সেল জিনিসগুলি শিখেন তবে এটিও একটি অত্যন্ত মূল্যবান পাঠ।
যেহেতু ওয়েবজিএল বিশেষত নতুন প্রযুক্তি এবং HTML5 ক্যানভাসটি আরও বেশি প্রতিষ্ঠিত হয়েছে আপনি কী ব্যবহার করতে চান তা আপনার ব্যবহারকারীদের উপর নির্ভর করে। যদি আপনি মনে করেন যে আপনার ব্যবহারকারীরা মোবাইল ডিভাইস ব্যবহার করবেন তবে আমি এইচটিএমএল 5 ক্যানভাসের পরামর্শ দেব তবে আপনি যদি আরও 2 ডি রেন্ডারিং চান তবে আমি ওয়েবজিএল ব্যবহার করব। সুতরাং আপনি যদি করতে পারেন যে যদি মোবাইলটি HTML5- র সাথে রেন্ডার করা হয় তবে যদি তারা ওয়েবজিএল সমর্থন করে এমন একটি প্ল্যাটফর্মে থাকে।
উদাহরণ স্বরূপ:
if (window.WebGLRenderingContext) {
webGLcanvasApp()
} else if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
html5CanvasAppFMobile()
} else {
html5CanvasApp()
}
সূত্র:
ওয়েবজিএল সমর্থন সনাক্ত করার সঠিক উপায়?
JQuery এ কোনও মোবাইল ডিভাইস সনাক্ত করার সর্বোত্তম উপায় কী?
ওয়েবজিএল জিপিইউ ব্যতীত অব্যর্থ।
এই হার্ডওয়্যার নির্ভরতা কোনও বড় সমস্যা নয় কারণ বেশিরভাগ সিস্টেমে জিপিইউ রয়েছে তবে জিপিইউ বা সিপিইউ আর্কিটেকচারগুলি যদি কখনও বিকশিত হয় তবে এমুলেশন দ্বারা ওয়েবগেল সামগ্রী সংরক্ষণ করা চ্যালেঞ্জ হতে পারে। এটি পুরানো (ভার্চুয়ালাইজড) কম্পিউটারে চালানো সমস্যাযুক্ত।
তবে "ক্যানভাস বনাম ওয়েবজিএল" বাইনারি পছন্দ হতে হবে না। আমি প্রকৃতপক্ষে প্রভাবগুলির জন্য ওয়েবজিএল ব্যবহার করতে পছন্দ করি তবে বাকী অংশটি ক্যানভাসে করে। আমি যখন এটি কোনও ভিএম-তে চালিত করি, তখনও এটি প্রভাব ছাড়াই দুর্দান্ত এবং দ্রুত কাজ করে।