নতুন গ্রাফিক্স প্রোগ্রামারদের ওপেনজিএল পরিবর্তে ভলকান শিখতে হবে?


53

উইকির থেকে : "ভলকান এপিআই প্রথমে খ্রোনোর ​​দ্বারা 'পরবর্তী প্রজন্মের ওপেনজিএল উদ্যোগ' হিসাবে পরিচিত ছিল" এবং এটি "ওপেনজিএল এবং ওপেনজিএল ইএসকে একটি সাধারণ এপিআইতে একীকরণের একটি ভিত্তি-পুনর্নির্মাণ প্রচেষ্টা যা পিছনে থাকবে না will বিদ্যমান ওপেনএল সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ "।

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


1
আপনি যদি একটি এপিআইতে কিছু করতে পারেন তবে আপনি এটি অন্য যে কোনও এপিআই করতে পারেন, এটি করার উপায়টি এপিআইয়ের উপর নির্ভর করবে।
এ --- বি

উত্তর:


33

না!

এটি অনেকটা "নতুন প্রোগ্রামারদের সি এর পরিবর্তে সি ++ শিখতে হবে" জিজ্ঞাসা করার মতো বলে মনে হচ্ছে বা "নতুন শিল্পীদের শারীরিক চিত্রের পরিবর্তে ডিজিটাল পেইন্টিং শিখানো উচিত।"

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

বিশেষায়ণ খুব কমই একটি বিপণন দক্ষতা is

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

বিশেষায়িতকরণ খুব কমই একটি দক্ষ দৃষ্টান্ত।


2
: গুড উত্তর, আমার এই স্মরণ করিয়ে elise.com/quotes/heinlein_-_specialization_is_for_insects
উইল

7
এই সি ++ উপমা অনুপযুক্ত। ভলকান একটি নতুন পরবর্তী প্রজন্মের এপিআই যা ওপেনজিএল এর নির্মাতারা তৈরি করেছেন। সি ++ হ'ল একটি প্রতিষ্ঠিত, বেশিরভাগ পিছনের সাথে সামঞ্জস্যপূর্ণ প্রতিযোগী সি
মবি ডিস্ক

সেগুলি সাদৃশ্যটির সাথে সম্পর্কিত নয়।
mHurley

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

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

40

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

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

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

আমি প্রথমে উদ্বিগ্ন ছিলাম যে ভালকান এর বিরুদ্ধে প্রোগ্রাম করা আরও কঠিন, এবং বৃহত্তর সংস্থাগুলিতে অভিজ্ঞ বিকাশকারীদের পক্ষে এটি ঠিক থাকলেও ইন্ডি এবং শখের পক্ষে এটি একটি বিশাল বাধা হয়ে দাঁড়াবে। আমি ওয়ার্কিং গ্রুপের কিছু সদস্যদের কাছে এই প্রশ্নটি উত্থাপন করেছি এবং তারা বলেছে যে ইতিমধ্যে ভালকানে চলে গেছে তাদের সাথে যাদের কথা বলেছে তাদের কাছ থেকে তাদের কিছু ডেটা পয়েন্ট রয়েছে। এই ব্যক্তিরা এপিকের বিকাশকারী থেকে শুরু করে শখের গেম ডেভেলপারদের ইউই 4 ইন্টিগ্রেশন নিয়ে কাজ করে। তাদের অভিজ্ঞতা ছিল যে শুরু করা (অর্থাত্ স্ক্রিনে একটি ত্রিভুজটি ধারণ করা) আরও ধারণাগুলি শিখতে এবং দীর্ঘায়িত বয়লারপ্লেট কোড জড়িত, তবে এটি খুব জটিল ছিল না, এমনকি ভারতীয়দের জন্যও নয় ies তবে এই পর্যায়ে পৌঁছার পরে, তারা একটি বাস্তব, শিপযোগ্য অ্যাপ্লিকেশন গড়ে তোলা আরও সহজ বলে মনে করেছিল, কারণ (ক) বিভিন্ন বিক্রেতাদের বাস্তবায়নের মধ্যে আচরণটি অনেক বেশি অনুমানযোগ্য এবং (খ) সমস্ত প্রভাবগুলি ভালভাবে সঞ্চালিত এমন কোনও কিছুতে পাওয়া ততটা বিচার-ত্রুটির সাথে জড়িত নয়। বাস্তব বিকাশকারীদের এই অভিজ্ঞতার সাহায্যে, তারা আমাকে বোঝায় যে ভলকানের বিরুদ্ধে প্রোগ্রামিং গ্রাফিক্সের এক শিক্ষানবিশের জন্য এমনকি কার্যকর এবং আপনি টিউটোরিয়ালটি পাস করার পরে এবং অন্যান্য লোককে দিতে পারেন এমন ডেমো বা অ্যাপ্লিকেশন তৈরি শুরু করার পরে সামগ্রিক জটিলতা কম হয়।

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

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

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

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


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

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

সঠিক। বাস্তবায়ন সম্ভবত একটি খারাপ শব্দ পছন্দ। আমি আপনার প্রোগ্রামে 'ব্যবহার' বলতে চাইছিলাম। তবে আমি আপনার সম্পাদনাগুলি পছন্দ করি। ভাল করে রাখুন
রিচিস্যামস

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

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

26

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

সুতরাং প্রশ্নটি হ'ল: আপনি কীভাবে এপিআই ব্যবহার করবেন তা শিখতে চান? না আপনি গ্রাফিক্স শিখতে চান ?

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

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

তবে এগুলি আসলে গ্রাফিক্সের ধারণা নয়। এগুলি শেষ হওয়ার উপায়।

এটা একটা সময় লাগে অনেক কাজের এবং Vulkan সঙ্গে শেখার আগে আপনাকে বিন্দু যেখানে আপনি গ্রাফিক্স ধারণা শেখা শুরু করার জন্য প্রস্তুত হন পৌঁছাতে পারেন। শেডারগুলিতে ডেটা পাস করার জন্য সুস্পষ্ট মেমরি পরিচালনা এবং অ্যাক্সেসের সুস্পষ্ট সিঙ্ক্রোনাইজেশন প্রয়োজন। এবং তাই এগিয়ে।

বিপরীতে, ওপেনগিএলের সাথে এই মুহুর্তে পৌঁছাতে কম কাজ প্রয়োজন। এবং হ্যাঁ, আমি আধুনিক, শেডার-ভিত্তিক কোর-প্রোফাইল ওপেনজিএল সম্পর্কে বলছি।

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

যেমন OpenGL ইন ... এটা তিনটি কার্যকারিতা দেওয়া হল: glClearColor, glClear, এবং প্ল্যাটফর্ম-নির্দিষ্ট swap 'র কল বাফার। আপনি যদি আরও আধুনিক ওপেনএল ব্যবহার করছেন তবে আপনি এটিকে দুইটিতে নামিয়ে আনতে পারেন: glClearBufferuivএবং বাফারগুলি অদলবদল করুন। ফ্রেমবফার কী বা এর চিত্রটি কোথা থেকে এসেছে তা আপনার জানতে হবে না। আপনি এটি সাফ করুন এবং বাফারগুলি স্যুপ করুন।

যেহেতু ওপেনজিএল আপনার কাছ থেকে অনেক কিছু আড়াল করে, আপনি যেখানে গ্রাফিক্স হার্ডওয়্যার থেকে ইন্টারফেস শেখার বিপরীতে আপনি প্রকৃতপক্ষে গ্রাফিকগুলি শিখছেন সেখানে পৌঁছতে অনেক কম প্রচেষ্টা দরকার takes

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

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


যা যা বলা হচ্ছে, গ্রাফিকাল কৌশল শেখার চেয়ে গ্রাফিক্স শেখার আরও অনেক কিছুই রয়েছে। বিশেষত একটি অঞ্চল যেখানে ভুলকান জিতেছে।

গ্রাফিকাল পারফরম্যান্স

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

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

ওপেনজিএলে পারফরম্যান্স অর্জনের জন্য আপনাকে জানতে হবে বাস্তবায়নগুলি এটি করে, যাতে আপনি এড়াতে পারেন । আপনাকে বুঝতে হবে কোথায় বাস্তবায়ন গোপনে সিঙ্ক্রোনাইজেশন ইভেন্ট জারি করছে এবং তারপরে যতটা সম্ভব এড়াতে আপনার কোডটি পুনরায় লিখুন। তবে এপিআই নিজেই এটিকে সুস্পষ্ট করে না; আপনি কোথাও থেকে এই জ্ঞান অর্জন করতে হবে।

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

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

যদি আপনাকে এমন কিছু ফ্রেমবফার কাজ করতে হয় যা আপনাকে একটি নতুন রেন্ডারপাস তৈরি করতে বাধ্য করে ... প্রতিক্রিয়াগুলি ভাল যে আপনি এটি রেন্ডারপাসের একটি পৃথক সাবপাসে ফিট করতে পারলে এটি ধীর হবে। এর অর্থ এই নয় যে আপনি এটি করতে পারবেন না, তবে এপিআই আপনাকে সামনেই বলে দেয় যে এটি কোনও পারফরম্যান্স সমস্যার কারণ হতে পারে।

ওপেনজিএলে, এপিআই মূলত আপনাকে আপনার ফ্রেমবফার সংযুক্তিগুলি উইলি-নিলি পরিবর্তনের জন্য আমন্ত্রণ জানায়। পরিবর্তনগুলি দ্রুত বা ধীর হবে এমন কোনও নির্দেশিকা নেই।

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

আপনি গ্রাফিকাল রেন্ডারিং কৌশলগুলি শিখতে পারেন এমন পয়েন্টে পৌঁছাতে আরও অনেক বেশি সময় লাগবে।


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

1
@ ড্যানহুল্ম: সঠিক শেখার উপকরণগুলি ব্যবহার করার বিষয় এটি। অনলাইনে প্রচুর পরিমাণে এই জাতীয় উপকরণ রয়েছে যা আধুনিক প্রতিমা ব্যবহার করে। কারও কখনও রেফারেন্স ম্যানুয়াল বা স্পেসিফিকেশন পড়ে গ্রাফিক্স শেখার চেষ্টা করা উচিত নয়।
নিকল বোলাস

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

@ ড্যানহুল্ম: "ভুলকান এ ভুলটি পাওয়া সত্যিই কঠিন " কারণ আপনি অন্য সব কিছু ভুল করতে খুব ব্যস্ত হয়ে পড়েছেন ;) এছাড়াও, ভুলকানে পারফরম্যান্স ভুল পাওয়া এখনও বেশ সহজ। অপ্রয়োজনীয় সমন্বয় ization শুধুমাত্র "সাধারণ" চিত্রের বিন্যাস ব্যবহার করা হচ্ছে। সাবপাসগুলির সুবিধা নিচ্ছেন না। ঘন ঘন পাইপলাইন পরিবর্তন হয়। এবং তাই এগিয়ে। বলার অপেক্ষা রাখে না, ভলকানকে কীভাবে সেরা ব্যবহার করা যায় সে সম্পর্কে বিভিন্ন বিক্রেতারাও একমত নন।
নিকল বোলাস

2
@ ড্যানহুল্ম: আধুনিক ওপেনজিএল ব্যবহার করা কতটা সহজ, আমি এটিকে সহজ করার জন্য যথাসাধ্য চেষ্টা করি । লোকেরা যদি NeHe এর মতো আবর্জনা সংক্রান্ত সাইটগুলি থেকে বা র্যান্ডম ডকুমেন্টেশন পড়ে শিখতে জোর করে, তবে এটি কেউ সাহায্য করতে পারে না। আপনি ঘোড়াগুলিকে জলে নিয়ে যেতে পারেন, তবে আপনি তাদের পান করতে পারবেন না।
নিকল বোলাস

7

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


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

1
@ ডারিওইউ ওপেনজিএল তাত্ক্ষণিক মোডটি আপনি যে-কল-দ্য-থিম-তা-তাত্ক্ষণিক-মোড নয় তার চেয়ে বেশি সহজ উপায়, তবুও এটি প্রস্তাবিত নয়।
ব্যবহারকারী 253751

1
@ গ্যাভিন: এটি লক্ষ্য করা উচিত যে ওপেনজিএল সংস্করণগুলি ৪.২ বা তার বেশি সংস্করণ ওএসএক্স-তে সমর্থিত নয়। সুতরাং আপনি যদি ওএসএক্স-এ ওপেনজিএল থেকে সাম্প্রতিক কিছু ব্যবহার করতে চান তবে আপনি পারবেন না। এবং অ্যাপল ওপেনজিএল সংস্করণগুলি পরে গ্রহণ করার পক্ষে খুব বেশি সম্ভাবনা রয়েছে। অ্যাপল প্ল্যাটফর্মটি মেটাল-এ সর্বস্বরে রয়েছে, সুতরাং ক্রস-প্ল্যাটফর্মটি উভয় উপায়েই একটি আবদ্ধ।
নিকল বোলাস

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


4

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

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

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

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

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


2

আমি কয়েক মাস ধরে গ্রাফিক্স প্রোগ্রামিংয়ের সাথে "প্রবেশ করতে" চলেছি।

এই মুহূর্তে আমি এখনও উচ্চ বিদ্যালয়ে আছি এবং আমি আপনাকে বলতে পারি আমি প্রায় সবসময় ক্রস প্ল্যাটফর্ম অ্যাপ্লিকেশন বিকাশ করতে চাই। এটি আসলে ভুলকান সম্পর্কে আমার প্রথম সমস্যা - এটি সমস্ত প্ল্যাটফর্মে কাজ করার জন্য তৈরি হয়নি isn't আমি জাভাতে ওপেনজিএল নিয়ে কাজ করি এবং 6 মাসেরও বেশি সময় ধরে।

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

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

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

আমি ওপেনজিএল আপডেটগুলি চিরকালের জন্য ধরে রাখতে পারি না, আমিও তা করব না। তবে এটি বিকাশের জন্য আমার পছন্দ।


"আমার আর একটি সমস্যা হচ্ছে ভলকানের দাবির সাথে যে এটি কীভাবে আরও ভাল দাবি করে is " ভলকান কিছুই বলে দাবি করেন না। এটি কেবল একটি এপিআই; এটি দাবি করতে পারে না
নিকল বোলাস

আপনি কি বুঝতে পেরেছেন যে ভুলকান এবং জিএল বেশিরভাগ একই ব্যক্তি তৈরি করেছেন?
ড্যান হাল্মে

হ্যাঁ আমি কি. আমি এখনও জিএল
শীতকালীন রবার্টস

2

আমি আপনাকে এই বিষয়টিতে আমার গ্রাফিক্সের প্রাথমিক দৃষ্টিভঙ্গি দিতে চাই। আমি যেটা বুঝতে পেরেছি (বহু বছরে অন্য ক্ষেত্রে ইঞ্জিনিয়ার হিসাবে কাজ করে) তা হ'ল মৌলিক ধারণাটি সবচেয়ে গুরুত্বপূর্ণ অঙ্গ। একবার তাদের সম্পর্কে দৃ understanding় ধারণা অর্জনের পরে, শেষ চকচকে নতুন এপিআই শিখাই সর্বনিম্নতম অংশ। আপনি যদি নতুন স্কাইরিম প্রোগ্রাম করার চেষ্টা করছেন এমন কোনও শখের বা আপনি যদি সিজি ক্ষেত্রে কোনও চাকরি খুঁজছেন তবে আমি জানি না।

কম্পিউটার গ্রাফিক্স "প্রো এর মতো" শেখার পক্ষে এটি আমার মতে সেরা পন্থাটি আমি কী বলেছি তা আমি আপনাকে বলছি ।

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

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


0

আমি কোনও আনুষ্ঠানিক শিক্ষা ছাড়াই সি ++ তে নিজেই শিখিয়েছি এবং গত 15 বছর ধরে আমি মডার্ন ওপেনজিএল এবং ডাইরেক্টএক্স 9 সি, 10 এবং 11 এর মাধ্যমে ওপেনজিএল 1.0 শিখেছি আমি ডাইরেক্টএক্স 12 তে প্রবেশ করি নি এবং আমি চাই আমার হাতটি ভলকান দিয়ে দেখুন আমি ভ্যালকান সহ একটি সাধারণ ত্রিভুজ বা একটি সাধারণ স্পিনিং কিউব আঁকতে কেবল কয়েকটি বেসিক টিউটোরিয়াল সম্পন্ন করেছি। ডাইরেক্টএক্স 11 এবং ওপেনজিএল 3.3+ এর মতো আমি 3 ডি গেম ইঞ্জিনগুলি সম্পূর্ণরূপে কাজ করে লিখেছি এবং এমনকি সাধারণ গেমস তৈরি করতে তাদের ইঞ্জিন ব্যবহার করেছি।

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

যদি আমরা এর প্রোগ্রামিং দিক থেকে দূরে থাকি এবং কীভাবে কৌশলগুলি ব্যবহার করে বিভিন্ন ধরণের গণিতের ডেটা সেট এবং ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলিতে জড়িত সেগুলি সম্পর্কে কী দৃষ্টি নিবদ্ধ করা হয়; 3 ডি গেম ইঞ্জিন তৈরি করার বা বিদ্যমানটিকে কার্যকরভাবে ব্যবহার করার চেষ্টা করার আগে আপনাকে অনেক কিছুই জানতে ও বুঝতে হবে।

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

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

আমি এটি উল্লেখ করছি কারণ আপনি যদি নিজের থ্রেড এবং অ্যাক্সেসের সময় সহ সঠিকভাবে আপনার স্মৃতি পরিচালনা করতে না জানেন; ভলকান তোমাকে পাছায় কামড়ে দেবে! যেখানে ওপেনজিএল এবং ডাইরেক্টএক্স আরও অনেক বেশি সিপিইউ শক্তি গ্রহণের মাধ্যমে আপনার হাত ধরে রাখবে।

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

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

সুতরাং আপনি দেখতে পাচ্ছেন যে ভালকান এই ক্ষেত্রের প্রারম্ভিক প্রোগ্রামারগুলির প্রতি সত্যই আগ্রহী নয়। থ্রেডিং, মেমরি সিঙ্ক্রোনাইজেশন, সমান্তরাল প্রোগ্রামিং সহ বিভিন্ন গণিত, প্রোগ্রামিং প্যারাডিজম, বিভিন্ন ধরণের ডেটা সেট এবং অ্যালগরিদমের সমস্ত বিষয়ে আপনার বিস্তৃত জ্ঞান থাকতে হবে। এবং তারপরেও এটি কেবল পর্দায় একটি সাধারণ 2 ডি ত্রিভুজ লোড করার জন্য অ্যাপ্লিকেশনটি পেতে to ওপেনগিএলে প্রায় 100 লাইনের কোডে বা ডাইরেক্টএক্সে 250 লাইনের কোডে কি করা যায় ভুলকানে কোডের প্রায় 1000 লাইন লাগে!

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

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

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


-1

আপনার প্রথমে ওপেনজিএল শিখানো উচিত, কারণ এটি গ্রাফিক্সের মান, এতগুলি প্ল্যাটফর্ম জুড়ে।

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

  1. কেউ এখনই খাপ খাইয়ে নিতে চাইছে না এবং কোনও অ-স্থিতিশীল ফ্রেমওয়ার্ক / লাইব্রেরি দিয়ে নিজেকে শেষ করতে চাইবে না।

  2. তাদের তাদের বর্তমান ওপেন-জিএল প্রোগ্রামারদের নিয়োগ / পুনরায় প্রশিক্ষণের প্রয়োজন হবে এবং তাদের প্রয়োজন নেই।


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

এই উত্তরটি আমি সবেমাত্র পেয়েছি বলে মনে হচ্ছে অনেক দুর্দান্ত তথ্য রয়েছে

https://gamedev.stackexchange.com/questions/96014/what-is-vulkan-and-how-does-it-differ-from-opengl


আর একটি বিষয় যা বিবেচনা করার মতো তা হ'ল ওপেনজিএল 1 দিয়ে ফিরে আসা সমস্যাটি।

ওপেনজিএল 1 ওপেনজিএল 2 তে মজোর পরিবর্তন হয়েছিল এবং যেহেতু অনেক লোক ওপেনজিএল 1 ব্যবহার করে এবং হার্ডওয়্যার এটি সমর্থন করে তাই কিছু অ্যাপ্লিকেশন / ইঞ্জিনগুলিতে প্রয়োগ করার জন্য ভারী পিছনের সামঞ্জস্যতা রয়েছে এবং এটি কখনও কখনও ডেভসদের সমর্থন জানাতে কষ্টদায়ক হয় ।

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

এটি জাভাএফএক্সের (1.x থেকে 2.x) এবং প্লে এর মতো ফ্রেমওয়ার্কগুলির সাথে ঘটেছে! ফ্রেমওয়ার্ক (এছাড়াও 1.x থেকে 2.x)। কাঠামোর সম্পূর্ণ পরিবর্তন, যার অর্থ আমাদের পুনরায় শিখতে হবে ... সবকিছু ...


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


ভলকান এখনই স্থিতিশীল। আপনার জিএল 1.0 বনাম 2.0 উপমাটি উপযুক্ত। এখনই জিএল দিয়ে শুরু করা জিএল ২.০ বের হওয়ার ছয় মাস পরে GL শেখা শুরু করার মতো হবে।
ড্যান হাল্মে

1
ভুলকান "স্থিতিশীল" হতে পারে এর অর্থ এই নয় যে জিনিসগুলি বদলাবে না, এটি ভাষাগুলির প্রকৃতি, যা আমি গত কয়েক বছরে ভাষাগুলিতে 2 সাম্প্রতিক পরিবর্তনগুলি উপস্থাপন করেছি, তবে কীভাবে আমরা জানি যে ভুলকানের সাথে এটি ঘটবে না? আপনি মূলত বলছেন যে ওপেনজিএল শেখা একটি অপচয়, এবং এটি মিথ্যা। এটিকে দেখে মনে হচ্ছে ওপেনজিএল মারা গেছে এবং আর ব্যবহার করা হবে না ... এটিও মিথ্যা। তদুপরি, আমি একমাত্র তিনিই নন যে বিশ্বাস করেন যে ভলকানের স্থায়িত্বের সমস্যা হতে পারে। এটি নাও হতে পারে, তবে কোনও নতুন ভাষার সাথে, আপনি যা খুঁজছেন তা।
জাওলিংবাও

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

1
@ লাসাগনা: " এটি পরিবর্তনের বিষয়, অনেক সংস্থাই এখনই এটি ব্যবহারের সাথে খাপ খাইয়ে নেবে না " ভালভ ve এপিক। ইউনিটি। এগুলির সমস্তগুলি ভলকানে তাদের ইঞ্জিনগুলি কাজ করতে ব্যাপকভাবে বিনিয়োগ করা হয়। ক্রিটেক এবং আইডি এটিকে একেবারেই উপেক্ষা করছে না ignoring সুতরাং আপনার বক্তব্য সত্যের সাথে সামঞ্জস্যপূর্ণ নয়।
নিকল বোলাস

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