আমি কি ওপেনজিএল বা ডাইরেক্ট 3 ডি শিখি তা বিবেচনা করে?


11

এই দুটি এপিআই-এর মধ্যকার পার্থক্য কি ছোটখাট প্রয়োগের বিবরণ যার অর্থ একবার আমি একবার শিখে ফেলেছি আমি এটি সমস্ত কিছুর জন্য ব্যবহার করতে পারি? অথবা যদি ভবিষ্যতে অন্য একটি এপিআই না বলেই সাধারণভাবে এটি ব্যবহার করতে সক্ষম হতে চাই তবে অন্যটির চেয়ে একজনের শেখার কারণ রয়েছে? এক বা অন্য সাধারণ হয়?

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

পোর্টেবল কোডটি বিভিন্ন প্ল্যাটফর্মের (অপারেটিং সিস্টেম / আর্কিটেকচার) জুড়ে কীভাবে পার্থক্য রয়েছে? আমি এইগুলির সাথে কাজ করে এমন অন্যান্য গ্রন্থাগারের প্রাপ্যতা সম্পর্কে আগ্রহী এবং এক বা অন্য এর প্রশস্ত পরিবেশে লাইসেন্স কমিয়ে দেওয়ার সীমাবদ্ধতা সৃষ্টি করে কিনা। পরিমাপযোগ্য যেকোন কিছুই যা আমাকে সীমাবদ্ধ না রেখে কেবলমাত্র আমি শিখতে পারি এটির একটি পার্থক্য তৈরি করবে।


2
র‌্যাচেট ফ্রিকের উত্তরটি ভাল one আপনি যদি ডিরেক্ট 3 ডি শিখতে চান তবে আমার বিনামূল্যে বই "দ্য ডাইরেক্ট 3 ডি গ্রাফিক্স পাইপলাইন" পড়তে পারেন । এপিআই বিশদগুলি বেশিরভাগই ডিরেক্ট 3 ডি 9 হয় তবে ধারণাগুলি একই। কথাটি হ'ল, 1960 এর দশকের শেষের পরে প্রোগ্রামিং 3 ডি গ্রাফিক্সের ধারণাগুলি সত্যিই কোনও পরিবর্তন হয়নি। এই ধারণাগুলি প্রকাশের জন্য API গুলি অনেক বেশি স্মার্ট হয়েছে।
বৈধকরণ

উত্তর:


9

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

প্রোগ্রাম লিখতে শিখার সাথে তুলনা করুন। আপনি উদাহরণস্বরূপ জাভাতে প্রোগ্রাম লেখার ক্ষেত্রে যদি বেশ ভাল হন তবে আপনার C ++, উদ্দেশ্য-সি, সুইফট, বা অন্য কোনও অবজেক্ট-ভিত্তিক ভাষা শেখার ক্ষেত্রে তেমন সমস্যা হবে না। কারণ এটি ধারণা এবং চিন্তাভাবনা যা আপনি শিখেন thinking

ওপেনজিএল, ডাইরেক্ট 3 ডি এবং মেটালের মধ্যে পছন্দটি প্রাথমিকভাবে পছন্দ, যা আপনি অপারেটিং সিস্টেমকে লক্ষ্য করে। ডাইরেক্ট 3 ডি প্রাথমিকভাবে উইন্ডোজ, ওএস এক্স এবং আইওএসে ধাতব উপলভ্য এবং ওপেনজিএল ওএস এক্স, আইওএস, উইন্ডোজ এবং লিনাক্স সহ বেশিরভাগ সিস্টেমে সমর্থিত।

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

সুতরাং, আপনার প্ল্যাটফর্ম চয়ন করুন।


দাবি অস্বীকার: এখন পর্যন্ত আমি ডিরেক্ট 3 ডি বা মেটাল ব্যবহার করিনি did


2
> "উদাহরণস্বরূপ জাভাতে প্রোগ্রাম লেখার ক্ষেত্রে আপনি যদি বেশ ভাল থাকেন তবে আপনাকে সি ++ শিখতে এতটা সমস্যা হবে না" - এটি সত্য নয়। প্রত্যেকের কাছে সি ++ ব্যবহার শিখতে এবং ব্যবহার করতে প্রচুর পরিমাণে সমস্যা হবে । এটি জাভা বা অন্য কোনও নিরাপদ ভাষার সাথে তুলনা করা সম্পূর্ণ অনুপযুক্ত। আপনি তালিকাভুক্ত অন্য ভাষাগুলির জন্য (উদ্দেশ্য-সি, সুইফট বা অন্য কোনও বস্তু-কেন্দ্রিক ভাষা) যে বিবৃতিটি বেশিরভাগ ক্ষেত্রেই সত্য।
নাম

9

আমরা বর্তমানে এপিআই প্যারাডাইমগুলির ক্রান্তিকালে রয়েছি।

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

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

পুরানো এবং নতুনের মধ্যে পছন্দটি আপনি কমান্ড বাফারটি বরাদ্দ করতে এবং তৈরি করতে ভিডিও মেমরিটি কতটা ভাল পরিচালনা করতে পারেন তার উপর ভিত্তি করে।

  • আপনি যদি এমন কিছু চান যা এমনকি পুরানো হার্ডওয়্যারেও "স্রেফ কাজ করে" তবে পুরানো স্কুল এপিআইগুলি আরও ভাল; এগুলি আরও ভাল পরিচিত এবং আপনি অনলাইনে তাদের আরও সহায়তা পাবেন।

  • অন্যদিকে, যদি আপনি আদেশগুলি প্রেরণের অ্যাসিনক্রোনাস প্রকৃতি পরিচালনা করতে পারেন এবং আপনার বরাদ্দকৃত সমস্ত বাফারগুলি ট্র্যাক করতে আপত্তি করবেন না। তারপরে নতুন এপিআইগুলি আপনার জন্য কিছু হতে পারে।


6
নতুন স্পষ্ট গ্রাফিক্স এপিআইগুলি গড় গ্রাফিক্স প্রোগ্রামার দ্বারা ব্যবহারের জন্য সত্যই ডিজাইন করা হয়নি, তারা ইঞ্জিনগুলিতে অবকাঠামোগত কাজ করা লোকদের জন্য বা যাদের সত্যিকারের পারফরম্যান্সের প্রয়োজন তাদের পক্ষে বেশি । তারা আপনাকে অনেক বড় বন্দুক দেয় এবং এটিকে আপনার পাদদেশে নির্দেশ করে।
পোরগলজম্প

3

আমি ব্যক্তিগতভাবে এটি বেশি গুরুত্বপূর্ণ বলে মনে করি না। আপনার প্রকল্পের জন্য উপযুক্ত একটি বেছে নিন। আমি অতীতে ডি 3 ডি এবং ওপেনজিএল উভয়ই ব্যবহার করেছি। এটি বিষয়গুলি ধারণাগুলি। আপনি যেটাকে ধরেন না কেন আপনার বুঝতে হবে (উদাহরণস্বরূপ):

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

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

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

দিনের শেষে, সমস্ত এপিআই আপনার মেশিনে একই হার্ডওয়্যার অ্যাক্সেস করে, তারা এটি "কীভাবে" অ্যাক্সেস করে তা কেবল বিষয়।


আপনি যদি এক্সবক্স কনসোলগুলির জন্য প্রোগ্রামিং করেন তবে ডাইরেক্ট 3 ডি হ'ল আপনি কী ব্যবহার করবেন।
বৈধকরণ

"সম্ভাব্য কিছুই নয়" বলতে কী বোঝ? ওয়াইন সমস্যা ছাড়াই শত শত ডি 3 ডি ভিত্তিক প্রোগ্রাম পরিচালনা করে এবং বহু বছর ধরে এটি করে চলেছে। অবশ্যই এখানে বাগ এবং অব্যবহৃত অংশ রয়েছে, তবে এটি পুরো এপিআই অকেজো করে তোলে না।
রুসলান

0

আমি গ্রাফিক্স কার্ড ছাড়াই রেন্ডারিং সম্পর্কে কয়েকটি শব্দ বলব।

নীথার ওপেনজিএল বা ডাইরেক্টএক্সের সত্যিই গ্রাফিক্স কার্ডের প্রয়োজন নেই। একটি বাস্তবায়ন সম্পূর্ণ সফ্টওয়্যার ত্বরণ হতে পারে।

লিনাক্সে ওপেনগিএলের জন্য মেসা সফটওয়্যার রাস্টারাইজার রয়েছে। আমার অভিজ্ঞতায় এটি ততক্ষণ ঠিক কাজ করবে যতক্ষণ আপনি এটিকে অদ্ভুত বৈশিষ্ট্যগুলি সংযুক্ত করে খুব বেশি চাপ দেবেন না (প্রদর্শন তালিকা + সূচী ভার্টেক্স অ্যারে)। আমি কল্পনা করি তাদের আসল বাগগুলির তালিকা মাইল উচ্চ। অবিচ্ছিন্ন পরীক্ষা করার বিষয়টি নিশ্চিত করুন!

উইন্ডোজে ওপেনজিএল ব্যবহার করার অভিজ্ঞতা আমার কম। আপনি যদি কিছু জানেন তবে উত্তর সম্পাদনা করুন!

ডাইরেক্টএক্স এসডিকে "রেফারেন্স রাস্টারাইজার" নামে একটি সফটওয়্যার রাস্টারাইজার সরবরাহ করা হয়। এটি বেশিরভাগই আমার মতে ডিবাগ করার জন্য তবে আমি কেবল কমপক্ষে একজন বন্ধুকে রেফারেন্স রাস্টারাইজার ব্যবহার করে জানি যখন কোনও ডিএক্স 10 শুধুমাত্র সক্ষম ল্যাপটপে ডিএক্স 11 বিকাশ করে। অন্যান্য উত্তরে যেমন উল্লেখ করা হয়েছে ডাইরেক্টএক্স কেবলমাত্র মাইক্রোসফ্ট।


আমার অভিজ্ঞতায় একটি ইন্টিগ্রেটেড গ্রাফিক্স কার্ড ব্যবহার করা উইন্ডোজে সর্বাধিক ওপেনজিএল বিকাশের জন্য যথেষ্ট ভাল হওয়া উচিত, কেবলমাত্র নিশ্চিত হয়ে নিন যে এটি একটি সাম্প্রতিক ওপেনএল সংস্করণ সমর্থন করে।
akaltar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.