বেশিরভাগ টিউটোরিয়াল পুরানো হয়ে গেলে ওপেনজিএল দিয়ে শুরু করা [বন্ধ]


16

আমি নিশ্চিত যে এরই মধ্যে জিজ্ঞাসিত মতো অনেকগুলি প্রশ্ন ইতিমধ্যে রয়েছে তবে ওপেনজিএল লাইব্রেরিটির অবিচ্ছিন্ন আপডেটগুলি এগুলি সমস্তই ছুঁড়ে ফেলেছে এবং এক-দু'মাসে, এখানে উত্তরগুলি আবার অর্থহীন হবে।

আমি সি ++ ব্যবহার করে ওপেনজিএলে প্রোগ্রামিং শুরু করতে প্রস্তুত। আমি একটি কার্যকারী সংকলক পেয়েছি (ডিভ্প্প্প; ভিসি ++ এ সরে যেতে আমাকে জিজ্ঞাসা করবেন না, এবং কেন আমাকে জিজ্ঞাসা করবেন না)। এখন আমি কীভাবে ওপেনজিএল দিয়ে প্রোগ্রাম করব তার একটি কঠিন টিউটোরিয়াল সন্ধান করছি। আমার সহকারী নেহ প্রোডাকশন দ্বারা সরবরাহিত টিউটোরিয়ালটি খুঁজে পেয়েছিলেন, তবে আমি এটি জানতে পেরেছি, এটি তারিখের বাইরে! (যদিও আমি একটি ওপেনএল ক্যানভাস সমর্থন করার জন্য একটি বেসিক উইন্ডো একসাথে টেনেছি)

তারপরে আমি অনলাইনে গিয়ে ওপেনজিএল সুপারবিবেল পেয়েছি, যা স্পষ্টতই ফ্রিগ্লুট ব্যবহার করে? তবে আমি যা জানতে চাই তা হ'ল সুপারবিবল 5 তম সংস্করণটি আর আপ টু ডেট। আমি নিখরচায়িত পরামর্শটি বলেছিলাম যে সর্বশেষ সংস্করণটি ছিল ২.6.০ তবে এখন এটি ২.৮.০!

  • ওপেনজিএল সুপারবিবলটি কি এখনও একটি ভাল, এবং মোটামুটি আপ-টু-ডেট জায়গা শুরু করতে হবে?
  • ওপেনজিএল শিখতে যাওয়ার আরও ভাল জায়গা কি আছে?
  • আমি কি কেবল ডিপিসপিতে ফ্রিগ্লুট সংরক্ষণ করার অনুমতি পাই ডিরেক্টরিটি (সম্ভবত জিএল মধ্যে) অন্তর্ভুক্ত করতে পারি, বা কোনও গুরুত্বপূর্ণ পদ্ধতি আছে?
  • আমি কি কেবলমাত্র শুরু থেকেই জিজ্ঞাসা করতে ভাবিনি এমন কোনও মন্তব্য বা পরামর্শ আছে?

@ ড্রেটা আমার জন্য কিছু জিনিস সাফ করে দিয়েছে, তাই এখন কী জিজ্ঞাসা করব সে সম্পর্কে আমার আরও ভাল ধারণা রয়েছে:

আমার মনে হয় যে আমি ওপেনজিএল থেকে সরাসরি ওপেনজিএল অ্যাক্সেস না করে একটি মোড়ক লাইব্রেরি ব্যবহার করে শুরু করতে চাই।
আমি কেবল এটিই মনে করি যে কোনও শিক্ষানবিসের জন্য, প্রোগ্রাম করা এবং ভাল ফলাফল পাওয়া আমার পক্ষে সহজতর হবে, যদিও আমাকে এখনও সমস্ত ভয়ানক বিবরণ বুঝতে হবে না (যেমন @ স্টেফেল্টন উল্লিখিত)।

সমস্যাটি হ'ল, আমি এমন কোনও লাইব্রেরি খুঁজে পাচ্ছি না যেখানে সমর্থিত ফাংশনগুলির সাথে পূর্বনির্ধারিত উল্লেখ নেই। ফ্রিগ্লুট অপারেশনাল শোনায় তবে এটি এখনও জিএলইউ ব্যবহার করে।
কেউ কি জানে আমি কী করতে পারি?
এছাড়াও, আমি প্রথম সুপারিবিলের উত্সটি সংকলনের চেষ্টা করেছি, তবে আমি ত্রুটি পেয়েছি যেহেতু জিএলপিআই কোনও ধরণের হিসাবে সংজ্ঞায়িত করা হচ্ছে না, জিএলইউ লাইব্রেরিতে উত্পন্ন ত্রুটি।

আমি সুপারবিবলটি ব্যবহার করতে চাই তবে এটি কীভাবে ঠিক করতে হয় তা আমি জানি না।


2
আপনার জিসিসিতে স্যুইচ করা উচিত।
notlays

DevCpp হ'ল একটি আইডিই; যা জিসিসি চালায় (নির্দিষ্ট হওয়ার জন্য মিংডাব্লু)। তবে যেহেতু এটি উল্লেখ করা হয়েছিল, গ্রহন সিডিটি পছন্দনীয় হবে, কারণ এটি গত 10 বছর ধরে পরিত্যক্ত নয়।
ক্যাস্পার বেয়ার

4
@ ক্যাস্পার দেবসিপিসি উত্তরাধিকারের উত্তরাধিকারী কোড :: ব্লক ছিল এবং এখনও নিয়মিত আপডেট হয়।
অ্যালেক্স শ্যাপার্ড

1
আপনি যদি ওপেনজিএল এর চারপাশে একটি মোড়ক লাইব্রেরি চান তবে আমি আপনাকে এসএফএমএল চেষ্টা করার পরামর্শ দিই । এসএফএমএল উইন্ডো তৈরি, টাইমার ইত্যাদির মতো সাধারণ জিনিস সরবরাহ করে যখন আপনি পাঠ্য এবং সাধারণ আকারগুলি আঁকতে পারবেন। আপনি যখনই চান এসএফএমএল ফাংশন এবং কাঁচা এপিআই কলগুলি মিশ্রিত করে "কাঁচা" ওপেনজিএল ব্যবহার করতে ডুবতে পারেন।
ওস্কর এন।

1
আপনি শিরোনামে "OS বন্ধ}" যুক্ত করে একটি প্রশ্ন "বন্ধ" করতে পারবেন না। প্রশ্নগুলি মডারেটর দ্বারা বন্ধ করা হবে বা পর্যাপ্ত ব্যবহারকারীরা যদি প্রশ্নটি বন্ধ করার পক্ষে ভোট দেয়। আমি আপনার সম্পাদনাগুলি আবার ঘুরিয়ে দেব .. মডারেটররা এটি বন্ধ করার সিদ্ধান্ত নিলে "বন্ধ" স্বয়ংক্রিয়ভাবে আপনার শিরোনামে যুক্ত হয়ে যাবে ..
বামমজ্যাক

উত্তর:


19

আমাদের বাসিন্দা নিকল বোলাস আধুনিক গ্রাফিক্স প্রোগ্রামিং সম্পর্কিত একটি অন-লাইন বই বজায় রাখে । এটি আধুনিক ওপেনজিএল ব্যবহার করে, সবকিছু দ্রুত গতিতে গ্রাস করার সহজ উপায়ে প্রবর্তিত হয়, এটি শুরু করার জন্য ভাল জায়গা। আমি আধুনিক ওপেনএল শিখতে এটি ব্যবহার করছি এবং এটি গত 2 মাসে আমার বিস্ময়কর কাজ করে চলেছে।

পাশেই এখানে জ্ঞানের বিট রয়েছে। ওপেনজিএল উইকি বেশ ভালভাবে বজায় রয়েছে। কোডটি "সেরা অনুশীলনগুলি" নয় এবং কখনও কখনও ওপেনজিএল সংস্করণে আসে তখন অস্পষ্টতা থাকে তবে এই বিরল অনুষ্ঠানের বাইরে এটি একটি দুর্দান্ত উত্স।

আপনি যদি জিএলএসএল সম্পর্কে জানতে চান তবে বাতিঘর 3 ডি থেকে জিএলএসএল কোর টিউটোরিয়াল রয়েছে । যদিও এটিই কেবলমাত্র মূল জ্ঞান যা আমি সাইটে "বিশ্বাস" করি, বিশ্রামটি পুরানো হতে থাকে।

আপনি কীভাবে আধুনিক ওপেনএলটি করা হয় তা বুঝতে শুরু করলে আপনার নির্দিষ্ট তথ্য সন্ধান করা, পুরানো কোড ফিল্টার করে এবং সর্বাধিক গুরুত্বপূর্ণভাবে স্পেসিফিকেশনটি পড়তে আপনার পক্ষে সহজ সময় হবে। আপনাকে শুধু কোথাও শুরু করতে হবে।

ওপেনজিএল উপলভ্য সমস্ত বইয়ের মধ্যে বেশিরভাগই পুরানো। নতুন সুপারবাইলটি কোনও ধরণের ফ্রিক এবং আমি এটি কারও কাছে সুপারিশ করব না। ওপেনজিএল 4.1 এর জন্য ওপেনএল প্রোগ্রামিং গাইড 16 ই সেপ্টেম্বর প্রকাশিত হয়েছে, দুর্ভাগ্যক্রমে 7 তম সংস্করণটি অবচয় কোড ব্যবহার করেছে, সুতরাং আপনাকে কেবল অপেক্ষা করতে হবে, আমি নিশ্চিত am

এবং অবশ্যই, আপনি এখানে সর্বদা প্রশ্ন জিজ্ঞাসা করতে পারেন।


1
কেন আপনি সুপারবাইলকে পরামর্শ দিবেন না?
কোডস্মিত

3
@ অটো সুপারবাইজের 5 তম সংস্করণটি "অ্যাক্সেসযোগ্য" করতে ওপেনগিএলের চারপাশে একটি কাস্টম মোড়ক ব্যবহার করে। উদাহরণগুলির মধ্যে অনেকগুলি কাস্টম মোড়কে অতিরিক্ত ব্যবহার করে। এটি আপনাকে কী শিক্ষা দেয় না তা ওপেনজিএল মূল স্পেসিফিকেশন শেখায় না। আমি এটি যেভাবে দেখছি, যদি আপনাকে স্পষ্টভাবে অবহিত ওপেনজিএল শিখতে না হয় তবে কেবল এটি ভুলেও এটি বিদ্যমান। এটি শেখার কোনও মানে নেই। মূল স্পেসিফিকেশন অনেক বেশি পরিষ্কার এবং শক্তিশালী।
dreta

@ অটো মূল স্পেসিফিকেশন শুরুতে অনেক বেশি দাবিদার, এটি একটি ভাল জিনিস। এটি আপনাকে বেশিরভাগ রেন্ডারিং প্রক্রিয়াটির যত্ন নিতে বাধ্য করবে, আপনাকে এর উপর সম্পূর্ণ বোঝাপড়া এবং নিয়ন্ত্রণ প্রদান করবে। এটি অবহেলিত কোডের চেয়ে অনেকগুলি এবং আরও অনেক সম্ভাবনা খোলে। এর পরে যদি আপনি আপনার ওএসের এপিআই এবং এর অধীনে ল্যানুচ ওপেনজিএল শিখতে পারেন তবে আঠার মতো জিনিস নেই।
dreta

ঠিক আছে, সুতরাং আমি আপনাকে একটি গুরুত্বপূর্ণ প্রশ্ন জিজ্ঞাসা করি: জিএলইউ লাইব্রেরিটি অবচিত এবং সম্পূর্ণরূপে অসমর্থিত বলে মনে হচ্ছে; স্পেসিফিকেশন ব্যবহার করে, আমি কী জিএলইউর প্রয়োজনীয়তা বাইপাস করে সরাসরি অ্যাক্সেস পাব? এরকম, আমি জিএলইউ লাইব্রেরি দ্বারা উল্লিখিত অ-বিদ্যমান ফাংশনগুলিতে আর কোনও লিঙ্কার ত্রুটি পাব না?
কোডস্মিত

@ অটো জিএলইউ সম্পূর্ণ অপ্রয়োজনীয়, আমি গ্রাফিক্স প্রোগ্রামিং ক্লাস চলাকালীন কেবল 10 ফুট খুঁটির সাথে এটি স্পর্শ করেছিলাম (আমাদের অনুন্নত কোডটি ব্যবহার করতে হয়েছিল, এটি বেদনাদায়ক ছিল, পাঠ্যক্রমের তুলনায় মানগুলি দ্রুত পরিবর্তিত হয়েছিল, আমার ধারণা)। এটি কেবলমাত্র একটি লাইব্রেরি যা হ্রাসকারী কোডে সহায়তা করে। আপনার কোডটি যদি GLU এর সাথে সেট আপ করে থাকে তবে সম্ভবত এটি দুর্গন্ধযুক্ত।
dreta

1

এই প্রশ্নটি জিজ্ঞাসা করার পরে এটি বেশ কিছুক্ষণ হয়েছে তবে আমি আশা করি এটি আপনার মতো প্রশ্নযুক্ত লোকদের সহায়তা করবে।

আমি একটি মিনিবুক পড়ে ওপেনজিএল দিয়ে শুরু করেছি arcsynthesis.org। কে লিখেছেন তা নিশ্চিত নন। দেখে মনে হচ্ছে সাইটের নিবন্ধনটি কোনও সমস্যা হারিয়ে ফেলেছে বা অন্য কিছু হয়েছে তবে আপনি এটি এখানে খুঁজে পেতে সক্ষম হবেন: http://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/ । এটি ওপেনএল ৩.৩ ব্যবহার করে, তাই আপনি আধুনিক পাইপলাইন এবং এতে অন্তর্ভুক্ত সমস্ত অনুশীলনগুলি ব্যবহার করবেন তবে আপনাকে টেসলেসেশন বা কম্পিউট শেডারগুলি প্রকাশ করা হবে না।

দেখার মতো আরও একটি সাইট হ'ল https://open.gl/ । এটি মনে হয় খুব সূক্ষ্ম কেন্দ্রীভূত এবং উপরের উপাদানগুলির মতো গভীরতার সাথে বিষয়গুলি কভার করে না, তবে যারা কেবল শুরু করছেন তাদের পক্ষে এটি একটি সূচনা পয়েন্ট হতে পারে।

ওপেনজিএল উইকি পড়তে ভুলবেন না এবং আপনার যদি সহায়তা প্রয়োজন হয় তবে আপনার ফাংশনটির নাম গুগল করুন। উইকির কয়েকটি পৃষ্ঠাগুলি সম্পূর্ণরূপে অকেজো, তবে অন্যরা রেফারেন্স এবং শেখার উপাদান হিসাবে যথেষ্ট সহায়ক।


1
গৃহীত উত্তরে উল্লিখিত ব্যক্তি এটি লিখেছেন নিকোল বোলাস - গেমদেব.স্ট্যাকেক্সেঞ্জিং
জেসি ডরসি

0

এই পুরাতন টিউটোরিয়ালগুলি এখনও প্রাথমিকভাবে প্রাসঙ্গিক। আসলে, আমি ওপেনজিএল এর সাম্প্রতিক সংস্করণগুলির চেয়ে সেখানে শুরু করার পরামর্শ দেব। আরও সাম্প্রতিক সংস্করণগুলি জ্যামিতি আঁকার কয়েকটি সহজ পদ্ধতি (যথা তাত্ক্ষণিক-মোড অঙ্কন) বাতিল করেছে।

সাম্প্রতিক সংস্করণগুলির সাথে, আপনাকে শিখুনের অ্যারেগুলি প্রস্তুত এবং প্রেরণ করতে হবে এবং আপনার সরবরাহ করা অ্যারেতে কীভাবে আপনার উল্লম্বগুলি সাজানো হয়েছে তা ভিডিও কার্ডটি জানাতে হবে। এই জিনিসগুলি ডিবাগ করার জন্য জটিল।

কিছু সংস্করণ (ওপেনজিএল ইএস ২.x নামে) আপনার নিজের আলোকসজ্জা সমীকরণগুলি সরবরাহ করতে হবে (ফ্রেগমেন্ট শেডারগুলির আকারে) এবং আপনার নিজস্ব ভার্টেক্স ডেটা রূপান্তর করতে হবে যাতে এটি যেখানে আপনি চান তার পর্দায় শেষ হয় (ভার্টেক্স শেডার)। এটি ডিবাগ করা আরও শক্ত এবং এটি কোনও শিক্ষানবিশের (আমার মতে) কোনও স্থান নয়।

সুতরাং আমি আসলে আপনাকে পরামর্শ দেব যে আপনি সেই NeHe টিউটোরিয়ালগুলিতে ফিরে যান এবং সেখানে শুরু করুন। তারা "পুরানো" হতে পারে তবে তারা এখনও কাজ করে। আপনি যখন ওপেনজিএলে রেন্ডারিং পাইপলাইনে আসলে কী ঘটে থাকে তা বুঝতে শুরু করেন এবং কিছু জিনিস গাণিতিক ধারণাগুলির জন্য অনুভূতি পান যা এই বিষয়গুলিকে কার্যকর করে তোলে, তখন আপনি আরও কিছু আপ-টু-ডেট পদ্ধতির সন্ধানের জন্য প্রস্তুত থাকবেন ওপেনজিএলে রেন্ডারিং।


আসলে তারা কাজ করে না। এই কারণেই আমি এই প্রশ্নটি পোস্ট করেছি। তারা গ্লু পার্সপ্রেসিভ ফাংশনটি ব্যবহার করছেন যা অবহিত করা হয়েছে এবং এর কোনও পরম বিকল্প নেই।
কোডস্মিত

1
এটি ওপেনজিএল ফাংশন নয়। এটি অন্য লাইব্রেরির দ্বারা সরবরাহিত একটি পৃথক ইউটিলিটি ফাংশন। আপনি এর জন্য কোডটি সহজেই সন্ধান করতে পারেন - এটি খুব কঠিন নয়।

ধন্যবাদ, তবে আমি কেবলমাত্র একটি অপূর্ণ বিকল্প খুঁজে পেয়েছি যা আমি কীভাবে ব্যবহার করতে জানি না। এটি "ফ্লোট * ম্যাট্রিক্স" যুক্তি স্বীকার করে, যেখানে পুরানোটি কিছু অভ্যন্তরীণ ম্যাট্রিক্স ব্যবহার করে। আমি তখন এর জন্য কী রাখব?
কোডস্মিত

"GluPersPoint প্রয়োগকরণ" এর জন্য গুগলে প্রথম হিটটি আপনি যা খুঁজছেন ঠিক তেমনই। এটি glFrustum কল করে, যা ওপেনজিএলের কয়েকটি সাম্প্রতিক সংস্করণে পাওয়া যায় না (ইএস 2.x এটি অন্তর্ভুক্ত করে না)। এমনকি এটি জন্য প্ররোচিত খুঁজে পাওয়া খুব কঠিন নয়।
notlays

0

অন্যরা যেমন বলেছে, বেশিরভাগ বই হয় অবচিত বা খুব উন্নত। তবুও, আমি সুপারবাইলের 5 তম সংস্করণটির সুপারিশ করব তবে কেবল ওপেনজিএলে কী করা যায় তার একটি তাত্ক্ষণিক ধারণা পেতে এবং ভিউ / প্রজেকশন ইত্যাদির মতো জিনিসগুলির সাথে পরিচিত হতে পারি

আধুনিক ওপেনলিতে তাত্ক্ষণিকভাবে ডুব দেওয়া সম্ভবত প্রথমে আপনাকে অভিভূত করতে পারে, তাই এখন হ্রাস করা সংস্করণগুলিতে কিছু বেসিক কাজ করা শিখার বিষয়টি বিবেচনা করুন।

আমি ইদানীং খুঁজে পাওয়া ভাল টিউটোরিয়াল সহ একটি সাইট যুক্ত করতে চাই http://ogldev.atspace.co.uk/


ধন্যবাদ, আমি এই টিউটোরিয়ালটি পরীক্ষা করব; তবে ওপেনজিএল সুপারবাইল ব্যবহার করার জন্য, আমার প্রশ্নটি এখনও রয়ে গেছে: আমি কীভাবে জিএলইউ ঠিক করব, যেহেতু ফ্রিগ্লুট এটি ভিত্তি করে?
কোডস্মিত

@ অটো: ফ্রিজিএলটি জিএলইউ "ভিত্তিক বন্ধ" নয়। কিছু ফ্রিগ্লুট ফাংশন জিএলইউ কল করে তবে আপনি যদি এই ফাংশনগুলি কল না করেন তবে আপনার কোনও সমস্যা হবে না।
নিকল বোলাস

তবে সম্ভবত সুপারবিবল এই ফাংশনগুলিকে কল করে না? এবং যদি এটি হয়, আমি এটি ব্যবহার করতে পারি না
কোডস্মিত

সত্যিই, আমার মতামতটি সুপারবিলের সাথে সরবরাহিত উত্স কোডটি নিয়ে বিরক্ত না করা। এটি পড়ুন তবে স্ক্র্যাচ থেকে সবকিছু তৈরি করার চেষ্টা করুন। জিএলইউ নিয়ে আপনার সমস্যার বিষয়ে আমার সেরা অনুমানটি হ'ল আপনি আপনার লাইব্রেরিগুলি সঠিকভাবে কনফিগার / ইনস্টল করেন নি। MinGW এর সর্বশেষতম সংস্করণটি ডাউনলোড করুন। ফ্রিগ্লুট এর সর্বশেষতম সংস্করণটিও ডাউনলোড করুন এবং এটি সংকলন করুন বা একটি প্রাক-সংকলিত লাইব্রেরিটি সন্ধান করুন। যাইহোক, আপনার কীভাবে শুরু করবেন পরিকল্পনায় এতটা সময় ব্যয় করার পরিবর্তে কিছু জিনিস শেখা শুরু করা উচিত।
গ্রিভারহার্ট

@ অটো: সম্ভবত সুপারবিবল তাদের ডাকছে কেন? এটি যদি তাদের কল করে, সুপারবাইলের কোডটি কাজ করবে না। এটি কেন তাদের কল করে না
নিকল বোলাস

0

দুর্ভাগ্যক্রমে, arcsynthesis.org (গৃহীত উত্তরে উল্লিখিত সাইট) নিচে এবং বাইরে বলে মনে হচ্ছে। (সম্পাদনা: এটি এই লিঙ্কে উপলব্ধ !)।

ওপেনজিএল 4 এর জন্য অ্যান্টন গার্ডেলেনের টিউটোরিয়ালগুলি 2014 সালের মাঝামাঝি খুব পাঠযোগ্য এবং আধুনিক to প্রথম কয়েকটি বিনামূল্যে, বাকিগুলি অ্যামাজনে পাওয়া যায়, যেখানে অল্প দামে তাদের দুর্দান্ত পর্যালোচনা রয়েছে। এখনও পর্যন্ত আমি সন্তুষ্ট হয়েছে।

Http://www.opengl-tutorial.org/ এ ওপেনজিএল 3.3+ এর জন্য আরও কিছু বিনামূল্যে টিউটোরিয়াল রয়েছে । এগুলি ২০১২ সালের, তবে অন্যান্য উত্সগুলির জন্য এটি পরিপূরক উপাদান হতে পারে।


ওজিএলডিভ বর্তমান, গভীরতর এবং বিনামূল্যে। ogldev.atspace.co.uk/index.html
ইয়ত্তাবাইট


এটি উপলব্ধ দেখতে দুর্দান্ত! আমি এই উপকরণগুলিও পরীক্ষা করে দেখব।
iHateCamelCase
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.