2 ডি স্প্রাইট গেমের জন্য, আমি বুঝতে পারি যে স্প্রাইটগুলি এক্স এবং ওয়াই অক্ষের উপরে চলে যায়। যাইহোক, 3 ডি গেমসের জন্য, গেম ইঞ্জিনগুলি কীভাবে একটি ফ্ল্যাট 2 ডি কম্পিউটার মনিটরে 3 ডি পরিবেশ উপস্থাপন করতে হয় তা গণনা করে?
Math.PI
এটা অনেক।
2 ডি স্প্রাইট গেমের জন্য, আমি বুঝতে পারি যে স্প্রাইটগুলি এক্স এবং ওয়াই অক্ষের উপরে চলে যায়। যাইহোক, 3 ডি গেমসের জন্য, গেম ইঞ্জিনগুলি কীভাবে একটি ফ্ল্যাট 2 ডি কম্পিউটার মনিটরে 3 ডি পরিবেশ উপস্থাপন করতে হয় তা গণনা করে?
Math.PI
এটা অনেক।
উত্তর:
3 ডি স্প্রাইটগুলি একটি নতুন জেড অক্ষ পাবেন যা এক্স / ওয়াই বিমানের গভীরতা, স্কেলিং আকার এবং গতিবিধি সঞ্চয় করে। আরও দূরে থাকা একটি স্প্রাইটের বড় জেড মান রয়েছে। এখন, স্প্রাইটের আকার এবং এক্স / ওয়াই অক্ষগুলি জেড অক্ষ দ্বারা বিভক্ত করুন। অন্যরা যেমন উল্লেখ করেছে, এটি একটি 3D দৃষ্টিভঙ্গি প্রক্ষেপণ । আমি খুঁজে পেতে পারে সবচেয়ে ভাল উদাহরণ এখানে:
এটি ধারণাগতভাবে বোধগম্য করে কারণ আরও দূরের জিনিসগুলি আরও ছোট দেখায়। তাদের আপাত নড়াচড়াও আরও ছোট দেখায়।
এছাড়াও, কাছাকাছি অবজেক্টগুলিকে দূরবর্তী অবজেক্টগুলির শীর্ষে আঁকতে হবে। আবার এটি ধারণাগতভাবে বোধগম্য হয় কারণ নিকটবর্তী বস্তুগুলি তাদের পিছনের বস্তুগুলির দৃশ্যকে অন্তর্ভুক্ত করে।
এই কৌশলগুলি স্প্রাইট স্তরে প্রয়োগ করা যেতে পারে। তবে সর্বাধিক বাস্তবসম্মত প্রক্ষেপণের জন্য প্রতিটি স্প্রাইটের একটি 3 ডি মডেল থাকে এবং এটি পিক্সেল স্তরে রেন্ডার হয়।
এটি কীভাবে আপনি আমাদের বিশ্বের 2D ছবি ক্যামেরায় ক্যাপচার করতে পারেন তার সমান। 3 ডি পরিবেশটি এক্স, ওয়াই এবং জেড স্থানাঙ্কের ক্ষেত্রে বর্ণিত হয়েছে, তবে শেষ পর্যন্ত আপনাকে কেবল এক্স এবং ওয়াই অক্ষ দিয়ে 2 ডি স্ক্রিনে ম্যাপ করতে হবে। এটি অভিক্ষেপ দ্বারা সম্পন্ন করা হয় , যেখানে প্রতিটি 3 ডি পয়েন্ট 2 ডি ভিউ বিমানের দিকে প্রক্ষেপণ করা হয়।
এটিকে সহজভাবে বলতে গেলে, ভিউ প্লেনের মধ্য দিয়ে প্রজেকশন লাইনগুলি 3 ডি স্পেসে ভার্চুয়াল ক্যামেরা থেকে প্রতিটি 3 ডি পয়েন্টে যাওয়ার কল্পনা করতে পারেন। যে বিন্দুতে একটি প্রক্ষেপণ রেখা 2D প্লেনকে ছেদ করে তা হ'ল 3 ডি পয়েন্টের প্রক্ষেপণ। অর্থোগ্রাফিক প্রোজেকশনে এই প্রক্ষেপণ লাইনগুলি সমস্ত সমান্তরাল; অবজেক্ট এবং ক্যামেরার মধ্যকার দূরত্বটি অনুমানিত আকারের জন্য কোনও পার্থক্য করে না। এই ধরণের অভিক্ষেপটি বাস্তবসম্মত নয় তবে 3 ডি ইঞ্জিন ব্যবহার করে 2D গ্রাফিক্স আঁকার মতো উদাহরণগুলিতে দরকারী (উদাহরণস্বরূপ এইচডিডি)। অন্য ধরণের প্রক্ষেপণ হ'ল দৃষ্টিভঙ্গি প্রক্ষেপণ যেখানে এই রেখাগুলি আরও দূরবর্তী বস্তুগুলিকে আরও ছোট করে দেখায় এবং আরও বাস্তবসম্মত ফলাফল দেয়। এই পৃষ্ঠায় কিছু পরিসংখ্যান রয়েছে যা আপনাকে প্রক্রিয়াটি কল্পনা করতে সহায়তা করতে পারে।
প্রজেকশন হ'ল গ্রাফিক্স পাইপলাইনে বেশ কয়েকটি রূপান্তরকারী অবজেক্টগুলির মধ্যে একটি যা সাধারণত প্রজেকশন ম্যাট্রিক্স ব্যবহার করে করা হয় । মনে রাখবেন যে প্রজেকশনটি জেড স্থানাঙ্ক ত্যাগ করার ইঙ্গিত দিচ্ছে, বাস্তবে একটি রূপান্তরিত জেড মান এখনও পর্দার গভীরতার একটি পরিমাপ হিসাবে ব্যবহৃত হয় যাতে আমরা বলতে পারি যে কোন বস্তুগুলি দৃশ্যমান এবং কোনটি অন্য বস্তুর দ্বারা সংযুক্ত are এটি জেড-বাফারিং নামে পরিচিত ।
এটি প্রজেকশন সম্পর্কে , একটি জ্যামিতিক অপারেশন যা আপনাকে উচ্চতর মাত্রার অন্য একটি স্থান থেকে একটি স্থান নির্ধারণ করতে দেয় (মূলত, আপনার ক্ষেত্রে, আপনি একটি 3 ডি পরিবেশের থেকে 2D চিত্রের বর্ণনা দিচ্ছেন)।
সহজ কথায় বলতে গেলে, 3 ডি রেন্ডারিং ইঞ্জিনগুলি এভাবেই একটি চিত্র উত্পন্ন করে (একটি 3 ডি দৃশ্য এবং একটি অভিক্ষেপ দেওয়া):
ফলাফলের প্রতিটি পিক্সেলের জন্য
অবশ্যই এটি একটি সাধারণ মডেল, আমি বিশেষ প্রভাবগুলির যেমন ধূমপানের প্রতিফলিত / রিফেক্টিভ / ট্রান্সলুসেন্ট অবজেক্টের কথা বলছি না ...
ম্যাট্রিক্স । বা বরং, প্রচুর ম্যাট্রিক্স গণিত।
এটি নিরবিচ্ছিন্ন জন্য ভয়ঙ্কর জিনিস। স্ক্রিনে (জেড হিসাবে পর্দার গভীরতা সহ) মহাকাশে 3 ডি স্থানাঙ্কগুলির একটি গুচ্ছকে 2D স্থানাঙ্কে পরিণত করার সাথে সাধারণত তিনটি 4x4 ম্যাট্রিক রয়েছে।
3 ডি ম্যাট্রিক্স 4x4 গ্রিডে সজ্জিত 16 ভাসমান পয়েন্ট মানের একটি সেট। অ্যালগরিদমগুলি প্রয়োজনীয় মানগুলি উত্পন্ন করতে এবং তারপরে ম্যাট্রিক্স-ভেক্টর গুণমান ব্যবহার করে এই সংখ্যাগুলি একটি 3-মাত্রিক ভেক্টরকে (এক্স, ওয়াই, জেড) রূপান্তরিত করে।
[ 1, 0, 0, 0 ]
[ 0, 1, 0, 0 ]
[ 0, 0, 1, 0 ]
[ 0, 0, 0, 1 ]
এটি পরিচয় ম্যাট্রিক্স। এটি মূলত কোনও ভেক্টরের স্থানাঙ্কগুলিতে কিছুই করে না ।
প্রথমটি বিশ্ব বা মডেল ম্যাট্রিক্স। এই ম্যাট্রিক্স একটি পৃথক মডেল (যেমন একটি ক্রেট) উত্সটির চারপাশে মডেল করা হয়েছে (0, 0, 0) এবং শীর্ষস্থানীয় স্থানাঙ্কগুলিতে রূপান্তর করে। এর মধ্যে অবজেক্টটি স্কেলিং, এটির উত্সের চারদিকে ঘোরানো এবং অবশেষে এটি যেখানে দৃশ্যে অবস্থিত সেখানে অনুবাদ করা অন্তর্ভুক্ত থাকতে পারে।
দ্বিতীয় ম্যাট্রিক্স হল ভিউ ম্যাট্রিক্স। এটি বিশ্বকে সমন্বয় করে এবং তাদের রূপান্তর করে যাতে তারা দেখার প্রসঙ্গে থাকে। একটি ক্যামেরার ধারণাটি সাধারণত এই ম্যাট্রিক্সটি তৈরি করতে ব্যবহৃত হয়।
ক্যামেরাটিতে সাধারণত একটি অবস্থান ভেক্টর, একটি দিক বা লক্ষ্য ভেক্টর এবং একটি আপ ভেক্টর থাকে। এই আপ ভেক্টর ক্যামেরার 'স্পিন' বর্ণনা করে।
এই ভেক্টরগুলি ম্যাট্রিক্সের চেহারা বলে যা উত্পন্ন করতে ব্যবহৃত হয় ।
এটির প্রভাবটি বিশ্ব ম্যাট্রিক্সের সাথে একই রকম যে এটি মূলত ক্যামেরার চারদিকে বিশ্বকে ক্যামেরাটিকে "পজিশনে" অনুবাদ করে ।
এক্স অক্ষ সহ 10 টি ইউনিটযুক্ত একটি ক্যামেরা অন্য দিকের 10 টি ইউনিটকে ওয়ার্ল্ড কোঅর্ডিনেট অনুবাদ করে।
ধাঁধাটির চূড়ান্ত অংশটি হল প্রজেকশন ম্যাট্রিক্স। একটি ক্যামেরার মত দৃষ্টিকোণ প্রক্ষেপণে, ম্যাট্রিক্স প্রায় রূপান্তরিত করে এক্স ডিগ্রি দেখার ক্ষেত্রের সাথে একটি দৃষ্টিকোণের মায়া দিতে স্ক্রিনের স্থানাঙ্ককে ।
আপনি যদি পর্দার কোণার ক্ষেত্রে (640x480 গেমের জন্য) ভাবেন, তবে এভাবেই পর্দার 2 ডি স্থানাঙ্কের মধ্যে জেড অক্ষের সাথে স্থানাঙ্কগুলি "প্রান্তিককরণ" করে pro অর্থোগ্রাফিক অভিক্ষেপের জন্য, স্ক্রিনে জেড অক্ষের সাথে কোনও স্কেলিং হয় না। দৃষ্টিকোণের জন্য, বস্তুর আরও দূরে, পর্দার প্রসারিতের সাথে এটি ছোট হয়।