কেন?
কারণ, একটি ক্যামেরা একটি প্রক্ষেপণ দৃশ্যের প্রতিনিধিত্ব করে।
তবে থ্রিডি ক্যামেরা (ভার্চুয়াল ক্যামেরা) এর ক্ষেত্রে ক্যামেরা বিশ্বের পরিবর্তে চলে। আমি এই উত্তর পরে একটি বিস্তারিত ব্যাখ্যা করেছি।
গাণিতিকভাবে বোঝা
প্রজেকশন ভিউ স্থানের চারপাশে চলে এবং তার অভিমুখ পরিবর্তন করে। প্রথমে লক্ষ্য করার বিষয়টি হ'ল স্ক্রিনে কাঙ্ক্ষিত প্রজেকশন দেখার দিক দিয়ে পরিবর্তন হয় না।
এই কারণে, আমরা পছন্দসই অভিক্ষেপ পেতে অন্যান্য জিনিস রূপান্তর করি।
Http://opengl.org থেকে বোঝা
ক্যামেরাটি সরানোর চেহারাটি দিতে, আপনার ওপেনজিএল অ্যাপ্লিকেশনটিতে অবশ্যই ক্যামেরা রূপান্তরটির বিপরীতটি দিয়ে দৃশ্যটি সরানো হবে। ওপেনজিএল যেখানে উদ্বিগ্ন সেখানে কোনও ক্যামেরা নেই। আরও সুনির্দিষ্টভাবে বলা যায়, ক্যামেরা সর্বদা চোখের স্থান স্থানাঙ্কে অবস্থিত (0, 0, 0)
Http://open.gl থেকে বোঝা
এছাড়াও http://open.gl/transformations এর ম্যাট্রিক্স অংশ থেকে নিম্নলিখিত লাইনগুলি ভাগ করতে চান
একটি ক্যামেরার রূপান্তর অনুকরণ করতে, আপনাকে আসলে সেই রূপান্তরটির বিপরীতটি দিয়ে বিশ্বকে রূপান্তর করতে হবে। উদাহরণ: আপনি যদি ক্যামেরাটি উপরে নিয়ে যেতে চান তবে আপনাকে পরিবর্তে বিশ্বকে সরিয়ে নিতে হবে।
দৃষ্টিকোণ দ্বারা বোঝা
বাস্তব বিশ্বে আমরা জিনিসগুলিকে এমনভাবে দেখি যা "দৃষ্টিভঙ্গি" বলে।
দৃষ্টিভঙ্গি এমন ধারণাটিকে বোঝায় যেগুলি আপনার কাছাকাছি অবস্থিত বস্তুগুলির থেকে আরও দূরে অবস্থিত objects দৃষ্টিভঙ্গির অর্থ হ'ল আপনি যদি সরল রাস্তার মাঝখানে বসে থাকেন তবে আপনি রাস্তার সীমানা দুটি রূপান্তরকারী রেখা হিসাবে দেখতে পাচ্ছেন।
এটাই দৃষ্টিকোণ। থ্রিডি প্রকল্পগুলিতে দৃষ্টিভঙ্গি গুরুত্বপূর্ণ। দৃষ্টিকোণ ছাড়াই 3 ডি ওয়ার্ল্ডটি আসল দেখাচ্ছে না।
এটি প্রাকৃতিক এবং সুস্পষ্ট বলে মনে হতে পারে, তবে এটি বিবেচনা করা গুরুত্বপূর্ণ যে আপনি যখন কম্পিউটারে 3 ডি রেন্ডারিং তৈরি করেন আপনি কম্পিউটার স্ক্রিনে 3 ডি ওয়ার্ল্ডকে সিমুলেট করার চেষ্টা করছেন যা 2D পৃষ্ঠের একটি পৃষ্ঠ।
কল্পনা করুন যে কম্পিউটারের পর্দার পিছনে রয়েছে প্রকারের একটি বাস্তব 3 ডি দৃশ্য এবং আপনি এটি আপনার কম্পিউটারের পর্দার "কাঁচ" দিয়ে দেখছেন। দৃষ্টিভঙ্গি ব্যবহার করে, আপনার লক্ষ্যটি এমন কোড তৈরি করা যা আপনার স্ক্রিনের এই "কাঁচ" এ "প্রজেক্টেড" কীভাবে রেন্ডার করে তা মনে হয় পর্দার পিছনে এই বাস্তব 3 ডি ওয়ার্ল্ড রয়েছে। একমাত্র সতর্কতা হল এই 3 ডি বিশ্বটি বাস্তব নয় ... এটি কেবল 3 ডি ওয়ার্ল্ডের গাণিতিক সিমুলেশন।
সুতরাং, যখন থ্রিডি রেন্ডারিং ব্যবহার করে কোনও দৃশ্যের 3D তে অনুকরণ করতে এবং তারপরে আপনার স্ক্রিনের 2D পৃষ্ঠের উপরে 3 ডি দৃশ্যের প্রজেক্ট করা হয়, তখন প্রক্রিয়াটিকে দৃষ্টিভঙ্গি প্রক্ষেপণ বলা হয়।
আপনি কী অর্জন করতে চান তা স্বজ্ঞাতভাবে কল্পনা করেই শুরু করুন। যদি কোনও বস্তু দর্শকের কাছাকাছি থাকে তবে অবজেক্টটি অবশ্যই বড় হতে হবে। যদি বস্তুটি আরও দূরে থাকে তবে এটি অবশ্যই ছোট হতে হবে। এছাড়াও, যদি কোনও বস্তু দর্শকের কাছ থেকে সরাসরি সরলরেখায় ভ্রমণ করে তবে আপনি এটি পর্দার কেন্দ্রের দিকে রূপান্তর করতে চান কারণ এটি আরও দূরে সরে যায়।
গণিতে দৃষ্টিভঙ্গি অনুবাদ করা
আপনি নিম্নোক্ত চিত্রটিতে চিত্রটি দেখে, ধারণা করুন যে কোনও উপাদান আপনার 3D দৃশ্যে অবস্থান করছে। থ্রিডি ওয়ার্ল্ডে, আই-পয়েন্টের উত্সের সাথে 3 ডি স্থানাঙ্ক সিস্টেমকে উল্লেখ করে, অবজেক্টের অবস্থানটি xW, yW, zW হিসাবে বর্ণনা করা যেতে পারে। স্ক্রিন ছাড়িয়ে 3 ডি দৃশ্যে বস্তুটি আসলে সেখানে অবস্থান করছে।
দর্শকের পর্দায় এই অবজেক্টটি দেখার সাথে সাথে থ্রিডি অবজেক্টটি এক্সপি এবং ওয়াইপি হিসাবে বর্ণিত একটি 2D পজিশনে "অভিক্ষিপ্ত" হয়, যা স্ক্রিনের 2D স্থানাঙ্ক ব্যবস্থা (প্রজেকশন প্লেন) উল্লেখ করে।
এই মানগুলিকে গাণিতিক সূত্রে রাখার জন্য, আমি বিশ্বের স্থানাঙ্কগুলির জন্য একটি 3D স্থানাংক ব্যবস্থা ব্যবহার করব, যেখানে এক্স অক্ষটি পর্দার অভ্যন্তরে ডান, y পয়েন্ট আপ এবং ধনাত্মক z পয়েন্টগুলিকে নির্দেশ করবে। 3D উত্স দর্শকের চোখের অবস্থান বোঝায়। সুতরাং, স্ক্রিনের গ্লাসটি জেড-অক্ষে একটি বিমানের অরথোগোনাল (ডান কোণে) রয়েছে, কিছু জেডে আমি zProj কল করব।
আপনি xW এবং yP, বিশ্ব অবস্থানগুলি xW, এবং yW কে zW দ্বারা ভাগ করে ভবিষ্যদ্বাণী করা অবস্থানগুলি গণনা করতে পারেন:
xP = কে 1 * xW / zW yP = K2 * yW / zW
কে 1 এবং কে 2 হ'ল ধ্রুবক যা জ্যামিতিক কারণগুলি থেকে উত্পন্ন যেমন আপনার প্রক্ষেপণ বিমানের দিক অনুপাত (আপনার ভিউপোর্ট) এবং আপনার চোখের "দেখার ক্ষেত্র", যা প্রশস্ত-কোণ দৃষ্টিভঙ্গির ডিগ্রিকে বিবেচনা করে।
আপনি দেখতে পারেন কীভাবে এই রূপান্তরটি দৃষ্টিভঙ্গি অনুকরণ করে। চোখের (zWW) দূরত্ব বাড়ার সাথে সাথে স্ক্রিনের পাশের পয়েন্টগুলি কেন্দ্রের দিকে ধাক্কা দেয়। একই সময়ে, কেন্দ্রের নিকটবর্তী পয়েন্টগুলি (0,0) চোখ থেকে দূরত্ব দ্বারা খুব কম প্রভাবিত হয় এবং কেন্দ্রের কাছাকাছি থাকে।
Z দ্বারা এই বিভাগটি বিখ্যাত "দৃষ্টিকোণ বিভাজন"।
এখন, বিবেচনা করুন যে 3 ডি দৃশ্যে কোনও অবজেক্টকে একটি शिरोখণ্ডের ধারা হিসাবে সংজ্ঞায়িত করা হয়েছে। সুতরাং, এই জাতীয় জ্যামিতির সমস্ত সূচকে রূপান্তরিত করে প্রয়োগ করে আপনি কার্যকরভাবে নিশ্চিত করতে পারেন যে চোখের বিন্দু থেকে আরও দূরে গেলে বস্তুটি সঙ্কুচিত হবে।
অন্যান্য গুরুত্বপূর্ণ মামলা
- 3 ডি ক্যামেরা (ভার্চুয়াল ক্যামেরা) এর ক্ষেত্রে, ক্যামেরা বিশ্বের পরিবর্তে চলে।
3 ডি ক্যামেরার আরও ভাল ধারণা পেতে, আপনি একটি চলচ্চিত্রের শুটিং করছেন বলে ধারণা করুন imagine আপনি একটি দৃশ্য সেট করতে হবে যা আপনি অঙ্কুর করতে চান এবং আপনার একটি ক্যামেরা দরকার। ফুটেজটি পেতে, আপনি আপনার ক্যামেরার সাথে দৃশ্যে ঘুরে বেড়াবেন, দৃশ্যের বিভিন্ন কোণ এবং দৃষ্টিকোণ থেকে দৃশ্যগুলিকে শুটিং করবেন।
একই চিত্রগ্রহণ প্রক্রিয়াটি একটি 3D ক্যামেরার সাথে ঘটে। আপনার একটি "ভার্চুয়াল" ক্যামেরা দরকার যা আপনার তৈরি করা "ভার্চুয়াল" দৃশ্যের চারপাশে ঘোরাঘুরি করতে পারে।
দুটি জনপ্রিয় শ্যুটিং শৈলীর সাথে একটি চরিত্রের চোখের মাধ্যমে বিশ্ব দেখার (প্রথম ব্যক্তির ক্যামেরা হিসাবে পরিচিত) বা ক্যামেরাকে কোনও চরিত্রের দিকে ইশারা করা এবং তাদের সামনে রাখা (তৃতীয় ব্যক্তি ক্যামেরা হিসাবে পরিচিত) জড়িত।
এটি একটি 3 ডি ক্যামেরার প্রাথমিক ভিত্তি: একটি ভার্চুয়াল ক্যামেরা যা আপনি 3D দৃশ্যের চারপাশে ঘোরাঘুরি করতে এবং নির্দিষ্ট দৃষ্টিকোণ থেকে ফুটেজ রেন্ডার করতে পারেন।
বিশ্ব স্থান এবং দর্শন স্থান বোঝা
এই ধরণের আচরণকে কোড করার জন্য, আপনি কেবলমাত্র বিশ্বের সমন্বিত সিস্টেমের দৃষ্টিকোণ বা অন্য কোনও স্থির দৃষ্টিকোণ থেকে নয়, 3 ডি ওয়ার্ল্ডের সামগ্রীগুলি ক্যামেরার দৃষ্টিকোণ থেকে রেন্ডার করবেন।
সাধারণত বলতে গেলে, একটি 3 ডি দৃশ্যে 3 ডি মডেলের একটি সেট থাকে। মডেলগুলি তাদের নিজস্ব সমন্বিত সিস্টেমে রেফারেন্স করে উল্লম্ব এবং ত্রিভুজগুলির একটি সেট হিসাবে সংজ্ঞায়িত করা হয়। যে জায়গাতে মডেলগুলি সংজ্ঞায়িত করা হয় তাকে মডেল (বা স্থানীয়) স্থান বলা হয়।
মডেল অবজেক্টগুলিকে 3 ডি দৃশ্যে রাখার পরে, আপনি "ওয়ার্ল্ড ট্রান্সফর্ম" ম্যাট্রিক্স ব্যবহার করে এই মডেলগুলির উল্লম্ব রূপান্তর করবেন। প্রতিটি বস্তুর নিজস্ব ওয়ার্ল্ড ম্যাট্রিক্স রয়েছে যা সংজ্ঞা দেয় যে বস্তুটি পৃথিবীতে কোথায় এবং এটি কীভাবে ওরিয়েন্টেড।
এই নতুন রেফারেন্স সিস্টেমটিকে "ওয়ার্ল্ড স্পেস" (বা গ্লোবাল স্পেস) বলা হয় it এটি পরিচালনা করার একটি সহজ উপায় হ'ল প্রতিটি বস্তুর সাথে বিশ্ব রূপান্তর ম্যাট্রিক্স যুক্ত করে।
3 ডি ক্যামেরার আচরণ বাস্তবায়নের জন্য আপনাকে অতিরিক্ত পদক্ষেপগুলি সম্পাদন করতে হবে। আপনি বিশ্বকে বিশ্বের উত্স হিসাবে নয় - বরং 3D ক্যামেরার রেফারেন্স সিস্টেমে উল্লেখ করবেন।
একটি ভাল কৌশল ক্যামেরাকে 3 ডি ওয়ার্ল্ডের আসল 3 ডি অবজেক্ট হিসাবে বিবেচনা করা জড়িত। অন্য যে কোনও 3 ডি অবজেক্টের মতো, ক্যামেরাটি 3 ডি ওয়ার্ল্ডে কাঙ্ক্ষিত অবস্থান এবং ওরিয়েন্টেশনে রাখার জন্য আপনি "ওয়ার্ল্ড ট্রান্সফর্ম" ম্যাট্রিক্স ব্যবহার করেন। এই ক্যামেরা ওয়ার্ল্ড ট্রান্সফর্ম ম্যাট্রিক্স ক্যামেরার অবজেক্টটিকে আসল বিশ্বের (xc, yc, zc) পজিশনে এবং ওয়ার্ল্ড রোটেশনে মূল ঘোরের (z-axis বরাবর) অপেক্ষায় আসল থেকে ক্যামেরা অবজেক্টকে রূপান্তর করে।
নিম্নলিখিত চিত্রটি ওয়ার্ল্ড (এক্স, ওয়াই, জেড) সমন্বিত সিস্টেম এবং ভিউ (ক্যামেরা) (x ', y', z ') সমন্বয় সিস্টেমের মধ্যে সম্পর্কগুলি দেখায়।