আপনি অনেক কিছুই শিখতে পারেন। ওপেনজিএলে নতুন কারও দৃষ্টিকোণ থেকে এখানে প্রতিটি বিষয়ে আমার চিন্তাভাবনা রয়েছে।
ওপেনজিএল উদাহরণ
এখানে প্রচুর উদাহরণ কোড রয়েছে যা আপনি পড়তে পারেন। জি ট্রুকের উদাহরণগুলি বেশ বিস্তৃত এবং প্রচুর উন্নত বৈশিষ্ট্যগুলি কভার করে।
তবে, আপনি যদি শিক্ষানবিশ হন , উদাহরণগুলি থেকে শিখতে শেখার একটি ভয়ঙ্কর উপায়। আপনি যে কোডটি সত্যই বুঝতে পারেন না তা পড়া কেন এটি কার্যকর তা আপনাকে শেখায় না। প্রকৃতপক্ষে, উপরের লিঙ্কযুক্ত পৃষ্ঠার পাঠ্যটি বিশেষভাবে এবং সঠিকভাবে উল্লেখ করেছে যে উদাহরণগুলি প্রাথমিকভাবে নয়।
খালি উত্স কোড থেকে শেখা, যদি না এটির উপর ভারী মন্তব্য করা হয় (তবে এটি কোনও টিউটোরিয়াল রয়েছে) তবে এটি সহজ জিনিস নয়। এটি করার চেষ্টা কার্গো কাল্ট-স্টাইল প্রোগ্রামিং এবং কপি-এবং-পেস্ট কোডিংকে উত্সাহ দেয়। নিজেকে সত্যই বোঝানো খুব সহজ যে আপনি যখন বুঝতে চান যে কিছু ঠিক কীভাবে কাজ করে তখন কেবল একটি জায়গা থেকে অন্য জায়গায় কোড অনুলিপি করা হয়। আপনি জিনিসগুলিকে মিশ্রিত করতে এবং মেলাতে সক্ষম হতে পারেন, তবে সঠিক শিক্ষামূলক উপাদান ছাড়া সত্য বোঝা অর্জন করা কঠিন।
ওপেনজিএল বই
ওপেনজিএল বিকাশের জন্য মোটামুটি আসল ক্রয়যোগ্য বই রয়েছে। আমি এখানে দুটি বৃহত্তম সম্পর্কে আমার চিন্তাভাবনা আবরণ করব।
ওপেনজিএল রেডবুক
খাঁটি ব্যবহারিক দৃষ্টিকোণ থেকে এটি কিছুটা সমস্যাযুক্ত। দেখুন, সপ্তম সংস্করণটি জিএল 3.0 এবং 3.1 জুড়ে। যা বরং পুরানো। সেই থেকে ওপেনগিএলে প্রচুর দরকারী বৈশিষ্ট্য যুক্ত হয়েছে, এমন বৈশিষ্ট্য যা আপনি কীভাবে জিনিস লিখবেন তা পরিবর্তন করে। এবং এগুলির সবগুলিই হার্ডওয়্যার বৈশিষ্ট্য নয়।
অষ্টম সংস্করণটি শীঘ্রই "শীঘ্রই" আসছে, এবং এটি 4.1 এর কভার করবে। এটি পুরানো ফিক্স-ফাংশন স্টাফগুলি কভার করে কিনা সে সম্পর্কে কোনও শব্দ নেই।
আমি বলব এই বইটি ঠিক আছে। এটির সাথে সবচেয়ে বড় সমস্যাটি হ'ল তথ্য সংগঠন। এটি শেখার জন্য তৈরি বইয়ের চেয়ে একটি বিস্তৃত রেফারেন্স ম্যানুয়ালের মতো। এখানে আমি যা বলতে চাইছি তা এখানে।
শিক্ষাদানের সময় সবচেয়ে গুরুত্বপূর্ণ যেটি করা উচিত তা হ'ল শিক্ষার্থীকে গুরুত্বহীন তথ্য দিয়ে ওভারলোড না করা। তবে রেডবুক ঠিক তা করে। উপাদান প্রবর্তন করার সময়, এটি প্রচুর পরিমাণে উপাদান পরিচয় করিয়ে দেয় । এটি বেশিরভাগ হাতের কাজটির জন্য অতিমাত্রায়।
আপনি যে বিষয়ে কথা বলবেন এবং যখন আপনি এটি সম্পর্কে কথা বলবেন তা আপনার বইকে একটি ভাল শিক্ষার উত্স তৈরি করার জন্য গুরুত্বপূর্ণ। রেডবুক কখনই আরও উপযুক্ত সময় অবধি তথ্য ফিরিয়ে রাখে না। এটি যখন ত্রিভুজগুলি এবং আদিমগুলি কীভাবে আঁকতে হবে সে সম্পর্কে কথা বললে এটি একবারে একবারে এগুলি আঁকার বিষয়ে সমস্ত কিছু নিয়ে কথা বলে । এটি প্রতিটি বিকল্প, প্রতিটি ফাংশন, প্রতিটি প্যারামিটার ইত্যাদি coversেকে দেয়
এটি কেবল তথ্যের একটি ভাল সংস্থা নয়।
ওপেনজিএল সুপারবিবল
এই বইয়ের পঞ্চম সংস্করণটি কেবল কোর জিএল 3.x কভার করে, তাই কোনও স্থির-কার্যকারিতা নেই।
তবে বইয়ের সাধারণ সংস্থা চতুর্থ সংস্করণ সংস্করণের সংস্থার সাথে কমবেশি অভিন্ন। এটি অসম্ভব বলে মনে হচ্ছে যেহেতু চতুর্থ সংস্করণ স্থির-ফাংশন ব্যবহার করেছে এবং বেশিরভাগ পরে শেডারের পরিচয় দেয়নি।
এটি যেভাবে সম্পন্ন হয়েছিল তা হল বই সম্পর্কে আমার # 1 অভিযোগ। মূলত, লেখক একটি লাইব্রেরি তৈরি করেছিলেন যা ফিক্সড ফাংশন ওপেনজিএল একটি ফর্ম প্রয়োগ করে। এটি ভিএওস, বাফার অবজেক্টস, শেডারস এবং অন্যান্য বিভিন্ন জিনিসকে আবৃত করে, যাতে তিনি জিএল পাইপলাইন কীভাবে বিশদভাবে কাজ করে সে বিষয়ে কোনও কথা না বলেই বস্তুগুলি, ম্যাট্রিক্স গণিত এবং টেক্সচারগুলি আঁকতে পারে।
এই সমস্ত বিবরণ গোপন করে, এটি উপাদান হজম সহজ করে তোলে। তবে আপনি প্রায়শই লোকেরা লাইব্রেরি ছাড়া আসলে কীভাবে কাজ করবেন তা জেনে সুপারবিবল থেকে দূরে চলে যেতে দেখবেন। শেডাররা কীভাবে বাফার অবজেক্টের সাথে সংযুক্ত হয়, কীভাবে ডেটা পাইপলাইনটিতে প্রবাহিত হয় ইত্যাদি তারা সত্যই বুঝতে পারে না etc.
এটি একটি পরিষেবামূলক বই, রেডবুকের চেয়েও বেশি। অন্য সব ব্যর্থ হলে, এটি কাজ করবে। তবে আমি মনে করি এটি আরও ভাল হতে পারে।
এছাড়াও, কিছু পর্যালোচকদের মতে, কিছু সাধারণ তথ্য যেমন সাধারণকরণের মানগুলি ব্যবহার করে অ্যাট্রিবিউট ডেটা প্যাকিংয়ের মতো হারিয়ে যায় বলে মনে হয়।
ওপেনজিএল অনলাইন সামগ্রী
অনেকগুলি অনলাইন উপকরণ রয়েছে যা থেকে কেউ শিখতে পারে।
NeHe এর টিউটোরিয়াল
NeHe এর টিউটোরিয়ালগুলি , যেমন অন্যরা বলেছেন যে অত্যন্ত পুরানো । তারা ফিক্সড-ফাংশন ওপেনএল-তে ফোকাস করে। এটি প্রায়শই বলা হয় যে ফিক্সড-ফাংশন জিএল শেখা সহজ, যা সত্য। তবে এটি একটি ভাল ধারণা তৈরি করে না।
বুঝুন কিভাবে নির্দিষ্ট ফাংশন পাইপলাইন সত্যিই কাজ করে কঠিন। আমি এতদূর যেতে পারি যে এটি শেডার শেখার চেয়ে শক্ত। আপনি একবার এটি পেয়ে গেলে, ছায়ারগুলি সহজ। টেক্সচার এনভায়রনমেন্ট স্টাফ, কম্বিনার এবং হোয়াট নোটের জটিলতা বোঝা খুব জটিল এবং সবকিছু ঠিকঠাক হয়েছে কিনা তা নিশ্চিত করার জন্য রেফারেন্স ডক্সে ঘন ঘন পরিদর্শন প্রয়োজন। এমনকি আপনি সবকিছু সঠিকভাবে বুঝতে পারলেও, একটি ছোট্ট ভুল করা সহজ যার ফলে সবকিছু ভেঙে যায়।
পার্থক্যটি হ'ল আপনি এটি না বুঝে স্থির-কার্যকরী কাজ করতে পারেন। এটি কার্গো কাল্ট প্রোগ্রামিংকে উত্সাহ দেয়। কেউ কী করছে তা না জেনে পর্দায় কিছু পাওয়া সম্ভব করে । ওপেনজিএল.আর.জি. ফোরামের উপরে, আমরা স্থির ফাংশনকে ঘিরে মিনিটিয়ে সম্পর্কে প্রশ্নগুলি প্রতিনিয়ত দেখতে পাই, গ্লুকলাক কীভাবে কাজ করে না জানে না, আলোকপাতের ক্ষেত্রে অসুবিধাগুলি থেকে, জমিনের পরিবেশের সাথে কাজ করার জন্য কিছু বিশেষ প্রভাব অর্জন করার চেষ্টা করা লোকদের কাছে।
সুতরাং না, আমি মনে করি না যে ওপেনজিএল শেখার জন্য নেহই ভাল উপায়।
উপরের ভাষ্যটি সুইফলেটস , বাতিঘর এবং আরও কিছু জাতীয় -শেডার ভিত্তিক টিউটোরিয়ালের জন্য ব্যবহার করা যেতে পারে ।
উইকিবুকের ওপেনজিএল প্রোগ্রামিং
উইকিবুক ইন যেমন OpenGL প্রোগ্রামিং সম্ভবত NeHe আধুনিক সমতুল্য। এটিতে জিএল সংস্করণ ২.১ রয়েছে, কারণ তারা এটিকে মোবাইল প্ল্যাটফর্মের সাথে প্রাসঙ্গিক রাখতে চান। যদি তা আপনার পক্ষে গুরুত্বপূর্ণ হয় তবে তা সর্বদা এখানে দেখুন।
NeHe, এবং এইভাবে এই উইকিবুকের সাথে অন্য সমস্যাটি হ'ল উত্স কোডের উপরে ফোকাস। কোড অনুপাতের পাঠ্য খুব ছোট; এখানে প্রচুর কোড রয়েছে, তবে পাঠ্যটি আসলে কীভাবে এটি সমস্ত কাজ করে তা ব্যাখ্যা করে না।
উদাহরণস্বরূপ, টিউটোরিয়াল 2 এর নীচে দেখুন এটি মিশ্রণের পরিচয় দেয় introdu এটি মিশ্রণ কীভাবে কাজ করে তা বলে না। এটি glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
আসলে কী বোঝায় বা কী তা বলে না। এটি কেবল বলে, "এখানে কিছু কোড যা জিনিসকে স্বচ্ছ করে তোলে।"
এটি সেরা শিক্ষার পরিবেশ নয়।
অসম্পূর্ণ টিউটোরিয়াল
সুইফ্লাসে ওপেনজিএল 4.x টিউটোরিয়ালগুলির একটি সেট রয়েছে । ডুরিয়ান সফ্টওয়্যারটিতে কিছু শেডার-ভিত্তিক ওপেনজিএল টিউটোরিয়াল রয়েছে । এবং "ওপেনজিএলবুক.কম" টিউটোরিয়াল রয়েছে ।
এই সমস্তগুলির মধ্যে যে জিনিসটি মিল রয়েছে তা হ'ল ... সেগুলি অসম্পূর্ণ এবং পরিত্যক্ত। তারা সকলেই প্রায় 4-5 টি টিউটোরিয়াল পেয়েছিল এবং তারপরে ফেলে দেওয়া হয়েছিল। এগুলির কোনওটি টেক্সচার, আলো বা এমন কিছুতে পৌঁছে নি। ঠিক আছে, ডুরিয়ান টেক্সচারিং করেছেন তবে আলোক নয়।
তাদের কাছ থেকে অনেক কিছুই উদ্দীপ্ত হতে পারে, তবে অনেক কিছুই নিখোঁজ রয়েছে।
নির্লজ্জ স্ব-প্রচার
আমার নিজস্ব আধুনিক 3 ডি গ্রাফিক্স টিউটোরিয়াল পর্যালোচনা করা আগ্রহের এক ভয়ঙ্কর সংঘাত হবে। সুতরাং পরিবর্তে, আমি তাদের পিছনে সংগঠন এবং আমি কেন তারা ভাল বলে মনে করি তার বিষয়ে দীর্ঘ আলোচনা করব।
ওহ এবং হ্যাঁ, আমি টিউটোরিয়াল 17 এ কাজ করছি The প্রকল্পটি মারা যায় নি।
প্রথম তিনটি অধ্যায় ওপেনজিএল পাইপলাইন কীভাবে কাজ করে তা শিখার বিষয়ে। সুপারবিবল ব্যর্থ হয়েছে কারণ এটি বিশদটি গোপন করার চেষ্টা করেছিল। পরিবর্তে, আমি সেই বিবরণগুলি সত্যই, খুব ভালভাবে ব্যাখ্যা করার চেষ্টা করি। বারংবার. ভূমিকাটি সরল পাঠ্যে পাইপলাইনটি ব্যাখ্যা করে। প্রথম টিউটোরিয়ালটি কোড সহকারে এটি ব্যাখ্যা করে। এবং দ্বিতীয় টিউটোরিয়াল এটি আরও বেশি পরিদর্শন করে।
সেখান থেকে আমি স্বাভাবিকভাবে পজিশনিং অবজেক্টগুলিতে চলে যাই। এটি ইউনিফর্মগুলির সাথে পরিচয় করিয়ে দেয়, তবে আমি একই সাথে ইউনিফর্ম এবং পরিপ্রেক্ষিত প্রজেকশনটি জাম করতে চাইনি। তাই আমি দুটি ধারণা পৃথক। অভিক্ষেপের পরে, গভীরতার বাফারিং একটি যুক্তিসঙ্গত পরবর্তী পদক্ষেপ বলে মনে হয়েছিল, তারপরে কীভাবে রূপান্তর ও ম্যাট্রিক্স কাজ করে। এর পরে ক্যামেরা। চতুর্থাংশের সাথে আবর্তন একটি দেরি সংযোজন ছিল, তবে আমি অনুভব করি যে উদীয়মান গ্রাফিক্স প্রোগ্রামারটির জন্য কথা বলা একটি গুরুত্বপূর্ণ বিষয় ছিল।
আলোক টিউটোরিয়ালগুলি আবার অন্যটিতে তৈরি করে। ডিফিউজ, তারপরে প্রতি-খণ্ড আলো, তারপরে স্পেকুলার। গতিশীল পরিসীমা একটি আকর্ষণীয় পছন্দ ছিল। বেশিরভাগ সূচনা উপাদান এ থেকে দূরে থাকার চেষ্টা করে তবে আমি এটি আলিঙ্গন করি। আপনি যদি ভাবেন যে হালকা তীব্রতা সর্বদা [0, 1] এর সীমার মধ্যে থাকে তবে আপনি আজকাল কোনও গ্রাফিক্স প্রোগ্রামার নন। আপনি যদি লিনিয়ার রঙের পাইপলাইন বজায় রাখতে জানেন না তবে আপনি আজকাল কোনও গ্রাফিক্স প্রোগ্রামার নন।
আলোকসজ্জার ক্ষেত্রে চূড়ান্ত একটি ছিল এক অদ্ভুত। আমি টিউটোরিয়ালগুলি ডিজাইন করার চেষ্টা করি যা সমস্যাগুলি সমাধান করে কেবল কিছু ওপেনএল কার্যকারিতা প্রদর্শন করার চেয়ে, বিশেষত বইটি চলার পরে। আমার টিউটোরিয়াল ডিজাইনের বেশিরভাগ অংশ আসল বিষয়গুলি তৈরি করার সময় নির্দিষ্ট বিষয় সম্পর্কে কথা বলার উপায় খুঁজে পাওয়া এবং এটি সুস্পষ্ট নয়, "আমরা এখন এক্স শিখছি" " জ্যামিতির শেডারগুলি একটি কঠিন, কারণ তারা সত্যিই খুব বেশি সমস্যার সমাধান করে না।
ইমপোস্টাররা এমন একটি সমস্যা উপস্থাপন করেছিলেন যা জিএস এর সমাধানের জন্য আসলে কার্যকর ছিল। এছাড়াও, এটি আমাকে অন্য কম ব্যবহৃত জিনিসগুলির মতো কথা বলতে discard
এবং খণ্ডের গভীরতা পরিবর্তনের অনুমতি দেয়। এবং এটি সত্যই শেডারের শক্তি দেখায়: আপনি একটি সমতল বর্গক্ষেত্রকে একটি গোলক করে তুলতে পারেন।
টেক্সচারিং টিউটোরিয়ালগুলিও আকর্ষণীয়। তৃতীয়টি কিছুক্ষণের জন্য এসআরবিজি টেক্সচারের বিষয়ে কথা বলা বন্ধ রাখার আগে পর্যন্ত আমি ছড়িয়ে পড়া রঙের টেক্সচারের বিষয়ে কথা বলা বন্ধ করে দিয়েছিলাম। এইভাবে, আমি রৈখিক সমস্যাগুলি মোকাবেলা না করেই টেক্সচারের চারপাশের মূল সমস্যাগুলি (ডেটা লোড করা, তাদের ছায়ার গোছানো, ফিল্টারিং, ক্ল্যাম্পিং ইত্যাদি) সম্পর্কে কথা বলতে পারি। সুতরাং আমি ঠিক একটি বিষয় উপর একটি সম্পূর্ণ টিউটোরিয়াল ব্যয় করতে পারে। এটি আমাকে সত্যিই অনুমতি দেয় , একটি লিনিয়ার রঙের পাইপলাইন বজায় রাখা কতটা গুরুত্বপূর্ণ তা জোর দিয়েই।
এটি আমার পোষা প্রাণীগুলির মধ্যে একটি