আমি কয়েকটি নোট সহ উপরের বইগুলি সম্পর্কে একমত:
ওপেনজিএল প্রোগ্রামিংয়ের অষ্টম গাইডটি এখন বাইরে এসেছে এবং আধুনিক ওপেনএল 4.3 এর জন্য আবার করা হয়েছে।
সুপারবিবল 5 তম এড, আপনাকে একটি ক্রাচ লাইব্রেরিটি শুরু করার অনুমতি দেয় তবে আপনি বইটি পড়ার সাথে সাথে আপনি সেই লাইব্রেরির কার্যকারিতাটি পুনরায় প্রতিস্থাপন করেন যাতে এটির শেষে আপনার পুরোপুরি দক্ষতা অর্জন করা উচিত। আপনি যদি কোনও অবজেক্ট ওরিয়েন্টেটেড ভাষা ব্যবহার করেন তবে ওপেনজিএল স্টাফগুলিকে কিছুতে মোড়ানো করার জন্য আমিও সুপারিশ করছি। আমি মজাদার জন্য আমার নিজের লাইব্রেরিতে কাজ করছি যা মনে হয় এটি যাবার উপায় বলে মনে হচ্ছে, এটি প্রয়োগ করে নিজেই আমি সমস্ত ইনস এবং আউটগুলি বুঝতে পারি এবং আমার কেবলমাত্র বিটগুলি ব্যবহার করা দরকার যা আমি আসলে ব্যবহার করি। এছাড়াও আপনি শেডারে ডেটা প্রেরণের মতো কিছু জিনিস বিমূর্ত করতে পারেন (চকচকেমেটেরিয়াল.সেট কালার (লাল) অনেক ভাল নয়), এটি আপনাকে উত্তরাধিকার সংক্রান্ত বিকল্প সরবরাহ করে কিছু জিনিস ব্যাকপোর্ট করতে দেয়। রয়েছে oglplus ।
আধুনিক 'কোর' ওপেনজিএল শেখার মূল সমস্যাটি হ'ল একটি বেসিক পাইপলাইনটি চালু করা এবং চালানো যদি এটি কেবল একটি ঘনক্ষন আঁকতে হয় তবে আপনাকে নিম্নলিখিতগুলি বোঝার প্রয়োজন:
- ম্যাট্রিক্স অপারেশনস ( যদি আপনি সি ++ তে থাকেন তবে জিএলএম ব্যবহার করুন, আপনার এখানে ম্যাট্রিক্সস্ট্যাক ওপেনজিএল আনফিশিয়াল এসডিকে সংস্করণ বা আমার সাধারণ একটিটিও এখানে লাগবে ))
- জিএলএসএল শেডার প্রোগ্রামিং।
- শেডার এবং ভার্টেক্স বাফার অবজেক্টগুলিতে ডেটা বাঁধাই। আপনি যদি সত্যিকারের খাঁটি মূল প্রোফাইলটি শিখতে চেয়েছিলেন তবে সেগুলি সমস্ত একযোগে প্রয়োগ করা দরকার এবং যদি কিছু কিছু ভেঙে যায় তবে আপনি কেবল কিছুই দেখতে পাবেন না এবং যেখানে ভুল হয়েছে সে সম্পর্কে প্রায় কোনও চিহ্ন নেই। এটিতে বেসিক লাইটিংয়ের মতো জিনিসও আবৃত হয় না (যেখানে আপনাকে প্রোগ্রামিংয়ের ভাষা ছাড়াও শেডিং অ্যালগরিদম শিখতে হবে)।
তবে আপনাকে মূল প্রোফাইলটির সাথে নির্ভরতা শুরু করতে হবে না। শুরুতে কিছু হ্রাস করা কার্যকারিতা ব্যবহার করুন , প্রায় সব কিছু এখনও এটি সমর্থন করবে, তারপরে এটি আধুনিক করুন।
আর একটি সমস্যা হ'ল 'আধুনিক' ওপেনজিএল 3 টি জিনিসকে সত্যই উল্লেখ করতে পারে:
প্রথমটি হ'ল স্থির ফাংশন পাইপলাইনের বিপরীতে প্রোগ্রামযোগ্য শ্যাডার পাইপলাইন। মূল 'আধুনিক' কৌশলগুলি সম্ভব হয়েছে যখন ওপেনজিএল ২.০ প্রকাশিত হয়েছিল ২০০৪ সালে, যখন শেডারগুলি চালু হয়েছিল (টিউটোরিয়ালগুলি কেবল আপডেট হয় নি) 1.5 তে ভার্টেক্স বাফার অবজেক্টসও ছিল যা আধুনিক ওপেনএল-এর আরেকটি ভিত্তি। একটি সমস্যাটি হ'ল আজও ওপেনজিএল বিকাশকারীরা সেই সমস্ত সামগ্রীর সুবিধা নিতে সক্ষম নাও হতে পারে, সেখানে কেবলমাত্র ওপেনজিএল 1.5 সমর্থন করে এমন পুরানো আইফোন / অ্যান্ড্রয়েডের মতো ফোনগুলি যে কেবলমাত্র ওপেনএল 1.5 সমর্থন করে সেগুলিতে প্রচুর ক্রেপি নেটবুক রয়েছে cra ওপেনজিএল ইএস 1.1। ওপেনজিএল ২.০ এবং ওপেনজিএল 3.x / 4.x এ এই স্টাফের মধ্যে একমাত্র আসল পার্থক্য হ'ল এটি এখন মূল প্রোফাইলের জন্য বাধ্যতামূলক।
আধুনিক ওপেনজিএল 3.x, 4.x এ থাকা নতুন স্টাফগুলিকেও উল্লেখ করতে পারে। ভালো জিনিস প্রান্তবিন্দু এরে অবজেক্টস , ফ্রেম-বাফারের অবজেক্টস , ইউনিফর্ম বাফার অবজেক্টস / std140 , বিন্যাস কোয়ালিফায়ার , GLSL সাবরুটিনেরইত্যাদি। আমি যেগুলি পেয়েছি তাদের মধ্যে অনেকে প্রোগ্রাম সহ জিনিসগুলি আরও ভাল করতে পারে। তারা সামগ্রিকভাবে আপনার সামগ্রিক ইঞ্জিন পাইপলাইনগুলি পরিবর্তন করতে পারে। এগুলিও এমন কিছু জিনিস যা আপনি সাহায্যকারী ফাংশন ইত্যাদির সাহায্যে ব্যাকপোর্ট করতে পারেন (উদাহরণস্বরূপ একটি জেনেরিক শেডার ম্যানেজার অবজেক্ট লিখুন যা আপনি ইউনিফর্ম সেট করতে ব্যবহার করতে পারেন, যদি ইউবিও সমর্থন করে থাকে তবে অন্যথায় শেডারগুলিতে মানগুলি আপলোড করার ব্যবস্থা করতে হবে , সম্ভবত এটি স্বয়ংক্রিয় করতে সেখানে সামান্য শেডার পুনরায় লেখার জিনিসপত্র রাখুন)। এই স্টাফটি কেবলমাত্র নতুন ভিডিও কার্ডগুলিতে চলে, আপনি কোনও নেটবুক সমর্থন করে বা কোনও বর্তমান প্রজন্মের ভিডিও গেম কনসোলগুলি দেখতে পাবেন না (তারা ওপেনগিএল এর মতো ওপেনগিএল এর নিজস্ব উপসেট ব্যবহার করে)। সর্বশেষতম ওএসএক্সটিতে কেবল 3 রয়েছে।
আল্ট্রা মডার্ন নেক্সটেন ওপেনজিএল। ওপেনজিএল 4.3 সবেমাত্র প্রকাশিত হয়েছিল। এটি কম্পিউট শেডার, glMલ્ટDrawElementsIndirect এবং শেডার স্টোরেজ বাফার সহ আসে। এটি মৌলিকভাবে পৃথক পাইপলাইনের অনুমতি দেয় যেখানে আপনি GPU- এ সমস্ত ভার্টেক্স ডেটা আপলোড করেন এবং তারপরে আপনার প্রোগ্রামে না করে কী আঁকতে হবে তা গণনা করার জন্য কম্পিউট শেডারগুলি ব্যবহার করেন। দুর্ভাগ্যক্রমে এটি খুব নতুন তাই আমি এর কোনও শালীন টিউটোরিয়াল জানি না। কটাক্ষপাত যেমন OpenGL 4.3 পর্যালোচনা যা কিভাবে এই কাজ করে একটি সীমারেখা দেয় (এছাড়াও লেখক বলেছেন আছে একটি জিপিইউ প্রো নিবন্ধ এটা ব্যাখ্যা রিলিজ করা হবে)। একেবারে নতুন হওয়ার কারণে এই পর্যায়ে কোথাও সমর্থন করা হবে না (যদি না আপনি বিটা ড্রাইভারগুলির সাথে একটি নতুন এনভিডিয়া কার্ডে থাকেন)। যদিও আপনি এটির কিছু প্রয়োগ করতে ওপেনসিএল / চুদা ব্যবহার করতে সক্ষম হতে পারেন।
আমি glBegin, glEnd, glVertex *, glNormal *, glTextCoord *, glTranslate *, glRotate *, glLoadIdenity, glModelViewMatrix এবং এড়িয়ে যাব। পরিবর্তে শেডার ছাড়া ভার্টেক্স বাফার অবজেক্টগুলি শিখতে শুরু করুন, এই মুহূর্তে 3 ডি চেষ্টা করবেন না কেবল ম্যাট্রিক ব্যবহার করে 3 ডি ক্রিয়াকলাপের সাথে আপনাকে আর কাজ করতে হবে না (শীঘ্রই আপনাকে এগুলি শিডারে আবদ্ধ করতে শিখতে হবে) পুরানো পথে শেখার কোনও ধারণা নেই)। শেডারে যুক্ত করার পরে, আপনাকে কীভাবে আপনার ভার্টেক্স বাফার অবজেক্টগুলি আবদ্ধ করা উচিত তা পরিবর্তন করতে হবে যেহেতু আপনি এখন ভার্টেক্স গুণাবলী ব্যবহার করতে চাইবেন। ইউনিফর্মের মাধ্যমে কীভাবে তাদের কাছে সম্পত্তি জানাতে হয় তা শিখুন। তারপরে জিএলএম দিয়ে ম্যাট্রিক্স ক্রিয়াকলাপ শিখুন, ম্যাট্রিকগুলি শেডারগুলিতে আবদ্ধ করুন এবং 3 ডি চলছে। একবার আপনি এটি সম্পন্ন করার পরে এটি মূলত কেবল টেক্সচারের মতো আরও উন্নত জিনিসগুলি শিখতে হবে,
কিছু সাধারণ অনলাইন আধুনিক ওপেনএল টিউটোরিয়াল, শেডার প্রোগ্রামিং পাইপলাইনকে আবৃত করে যা বেশিরভাগ ওপেনএল ২.০+ এর সাথে কাজ করে:
অন্যান্য সাধারণ শিক্ষার সংস্থানগুলির জন্য। ওপেনজিএল ইএস একটি ভাল সূচনা পয়েন্ট হতে পারে। ওপেনজিএল ইএস হ্রাসপ্রাপ্ত সমস্ত জিনিসপত্র সরিয়ে ফেলেছে। ওপেনএল 4.1 এর ওপেনজিএল ইএস এর সাথে সম্পূর্ণ সামঞ্জস্য রয়েছে তাই ওপেনজিএল ইএস প্রোগ্রাম গ্রহণ করা এবং ওপেনজিএল ৪.১ এ এটি চালানো সম্ভব হওয়া উচিত। এবং মূল নীতিগুলি উভয়ের জন্য একই।
কিছু বিষয় লক্ষণীয় যে ওপেনজিএল ইএস 3.0 সম্প্রতি প্রকাশিত হয়েছে তবে এটি নতুন হিসাবে এটির কোনও টিউটোরিয়াল বা হার্ডওয়্যার সমর্থন থাকবে না। এটিতে কোনও বড় মৌলিক পরিবর্তন হয়েছে বলে মনে হয় না (যেমন ওপেনজিএল ইএস ১.০-> ২.০ সহ আমরা দেখেছি স্থির পাইপলাইন এবং শেডার মডেলের মধ্যে পার্থক্য)। সুতরাং আপনি সম্ভবত কোনও পুরানো স্টাফ শিখবেন না।
এছাড়াও, ওপেনজিএল ইএস প্রায়শই ইজিএল ব্যবহার করবে যাতে আপনার উইন্ডো খোলার জন্য অন্য কোনও উপায় শিখতে হবে তবে এটি খুব বেশি শক্ত হওয়া উচিত নয়। অন্যথায় চারপাশে কয়েকটি ওপেনজিএল ইএস র্যাপারস / এমুলেটর রয়েছে বা আপনার যদি একটি থাকে তবে আপনি অ্যান্ড্রয়েড / আইফোনটিতে শিখতে পারেন (বা তাদের অনুকরণকারী ব্যবহার করে দেখুন)।
নেই অ্যাডিসন ওয়েসলি OpenGL ES 2.0 প্রোগ্রামিং গাইড যা লাল বইয়ের সমতুল্য।
আপনি বেশিরভাগ আধুনিক ওপেনএল বাস করেন বলে আপনি জিএলএসএল শেডার ফোকাসযুক্ত স্টাফগুলিও দেখতে পারেন। আপনার খালি এটি নিশ্চিত করা দরকার যে আপনি কী শিখছেন তাতে ওপেনজিএল বাইন্ডিং 'আঠালো' বিষয়কে আবৃত করে।
ওপেনএল শেডিং ভাষার দ্বিতীয় সংস্করণ (কমলা বই) দেখুন Check
ওপেনজিএল ৪.০ শেডিং ল্যাঙ্গুয়েজ কুকবুক আরও কিছু রক্তপাতের প্রান্তটি ওপেনএল স্টাফকে কভার করে তবে এটি একটি বিস্তৃত টিউটোরিয়াল নয়। ইউনিফর্ম বাফার অবজেক্টস এবং জিএলএসএল সাবরটাইনগুলির মতো সর্বশেষতম ওপেনলএল অনুশীলনগুলিতে কিছুটা বোঝার জন্য এটি অবশ্যই মূল্যবান।
অবশেষে আপনি ওয়েবজিএলটির দিকে নজর রাখতে পারেন, যদিও জাভাস্ক্রিপ্টে থাকা যা ডিবাগ করা থেকে কিছুটা আলাদা এবং আরও শক্ত হতে চলেছে।