মডেল ভিউয়ের ট্রান্সপোজড ইনভার্সটি কেন সাধারণ ভেক্টরকে রূপান্তর করতে ব্যবহার করা হয়?


22

অবজেক্টগুলিতে প্রয়োগ হওয়া ট্রান্সফর্মেশন সহ 3 ডি দৃশ্যের রেন্ডার করার সময়, মডেল ভিউ ম্যাট্রিক্সের ট্রান্সপোজড ইনভার্সের সাথে নরমালগুলি রূপান্তর করতে হয়। সুতরাং, একটি স্বাভাবিক সঙ্গে , modelViewMatrix এম , রুপান্তরিত স্বাভাবিক এন ' হলnMn

n=(M1)Tn

অবজেক্টগুলিকে রূপান্তর করার সময়, এটি স্পষ্ট যে নরমালগুলি সেই অনুযায়ী পরিবর্তন করা দরকার। তবে কেন, গাণিতিকভাবে, এটি কি একই রূপান্তর ম্যাট্রিক্স?


যদি মডেল ম্যাট্রিক্স অনুবাদ, ঘূর্ণন এবং স্কেল দিয়ে তৈরি হয় তবে আপনাকে সাধারণ ম্যাট্রিক্স গণনা করার জন্য বিপরীতমুখী ট্রান্সপোজ করার দরকার নেই। কেবল সাধারণ স্কোয়ার স্কেল দিয়ে ভাগ করুন এবং মডেল ম্যাট্রিক্স দ্বারা গুণিত করুন এবং আমরা সম্পন্ন করেছি। আপনি এটি লম্ব অক্ষ সহ যে কোনও ম্যাট্রিক্সে প্রসারিত করতে পারেন, কেবল তার পরিবর্তে আপনি যে ম্যাট্রিক্স ব্যবহার করছেন তার প্রতিটি অক্ষের জন্য স্কোয়ার স্কেল গণনা করুন। আমি আমার ব্লগে বিশদটি লিখেছি: lxjk.github.io/2017/10/01/Sop-Using- Normal
এরিক

উত্তর:


22

বিপরীতমুখী ট্রান্সপোজ প্রয়োজন হয় এমন একটি সহজ প্রমাণ এখানে। মনে করুন আমাদের একটি প্লেন রয়েছে, একটি সমতল সমীকরণ দ্বারা সংজ্ঞায়িত হয়েছে , যেখানে n সাধারণ। এখন আমি কিছু ম্যাট্রিক্স এম দ্বারা এই বিমানটি রূপান্তর করতে চাই । অন্য কথায়, আমি একটি নতুন প্লেন সমীকরণ n M x + d = 0 খুঁজে পেতে চাই যা পূর্ববর্তী সমীকরণের সমীকরণকে ঠিক একই x মানগুলির জন্য সন্তুষ্ট।nx+d=0nMnMx+d=0x

এটি করার জন্য, দুটি বিমান সমীকরণ সমান করে দেওয়া যথেষ্ট হবে ices (এটি নির্বিচারে বিমান সমীকরণ পুনরুদ্ধার করার ক্ষমতা ছেড়ে দেয় তবে এটি তর্কটির পক্ষে গুরুত্বপূর্ণ নয়)) তারপরে আমরা ডি সেট করতে পারি এবং এটি বিয়োগ করতে পারি। আমরা যা রেখেছি তা হ'ল:d=d

nMx=nx

আমি ম্যাট্রিক্স নোটেশনে প্রকাশিত ডট পণ্যগুলির সাথে এটি আবার লিখব (ভেক্টরগুলিকে 1-কলামের ম্যাট্রিক হিসাবে ভাবা):

nTMx=nTx

এখন সমস্ত এক্স এর জন্য এটি সন্তুষ্ট করতেx আমাদের অবশ্যই থাকতে হবে:

nTM=nT

এখন জন্য সমাধানে পরিপ্রেক্ষিতে এন ,nn

nT=nTM1n=(nTM1)Tn=(M1)Tn

Presto! যদি পয়েন্ট কোনও ম্যাট্রিক্স এম দ্বারা রূপান্তরিত হয় তবে বিমানের সমীকরণ সংরক্ষণের জন্য প্লেনের নরমালগুলি অবশ্যই এম এর বিপরীত স্থানান্তর দ্বারা রূপান্তর করতে হবে byxMM

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

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

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


2
দুর্দান্ত ব্যাখ্যা তবে 2 পয়েন্টে কিছুটা দ্রুত, আরও কিছু বিশদ পছন্দ হবে: ১. আপনি কীভাবে ডট পণ্য থেকে ম্যাট্রিক্স পণ্যগুলিতে ঝাঁপিয়ে পড়বেন? ২. শেষ উদ্ধৃত অংশের লাইন 2 এবং 3 এর মধ্যে, কী ঘটে (এন আমার কাছে
বুদ্ধি

4
১. (a ^ T) b ডট (a, b) এর সমান, যদি ক এবং বি একই মাত্রার কলাম ম্যাট্রিক হয়। নিজের জন্য গণিত চেষ্টা করে দেখুন! 2. (এবি) ^ টি = (বি ^ টি) (এ ^ টি), এবং (এ ^ টি) ^ টি = এ আরও ম্যাট্রিক্স পরিচয়ের জন্য, ম্যাট্রিক্স কুকবুকটি দেখুন
মোকোশা

3
@ v.oddou হ্যাঁ, মোকোশা ঠিক বলেছেন। বিন্দু পণ্যটি 1 × n ম্যাট্রিক্স (সারি ভেক্টর) কে একটি × 1 ম্যাট্রিক্স (কলাম ভেক্টর) দিয়ে গুণমান হিসাবে প্রকাশ করা যেতে পারে; ফলাফলটি 1 1 × ম্যাট্রিক্স যার একক উপাদানটি ডট পণ্য। একটি কলাম ভেক্টরের স্থানান্তর একটি সারি ভেক্টর, তাই আমরা একটি · b কে ^ T বি হিসাবে লিখতে পারি। দ্বিতীয় প্রশ্নের জন্য, ম্যাট্রিকের একটি পণ্য স্থানান্তর পৃথক কারণগুলি স্থানান্তর এবং তাদের ক্রমকে বিপরীত করার সমতুল্য।
নাথান রেড

নিখুঁত, এখন ইস্যু ছাড়াই সব পরিষ্কার। উভয় ধন্যবাদ
v.oddou

@ নাথানরিদ (গোশ এই প্রথমবারের মতো পাওয়ারভিআর দিনগুলিতে আমাকে ফিরিয়ে নিয়ে যায় যেখানে আমরা বেশিরভাগ জিনিসকে প্লেন দিয়ে মডেল করেছিলাম)। এটি উল্লেখ করার মতোও হতে পারে, অপ্টিমাইজেশনের উদ্দেশ্যে, আপনার যদি এমন একটি ম্যাট্রিক্স মিঃ থাকে যা কেবলমাত্র ঘূর্ণন ধারণ করে (তবে অর্থোথোনাল) তবে বিপরীত ( মিঃ ) = ট্রান্সপোজ ( মিঃ ), এবং তাই ট্রান্স (বিপরীত ( মিঃ ) = _ মিঃ এছাড়াও আপনি SGL PowerVR গ্রাফিক্স লাইব্রেরি অনুবাদ অংশ দিয়ে শর্টকাট লাগতে পারে এবং আপনি যদি জানেন স্কেলিং অভিন্ন হয় FWIW আমরা ট্র্যাক করতে একটি রূপান্তর ম্যাট্রিক্স স্বাভাবিক রূপান্তরের সঙ্গে খরচ বাঁচাতে এই বৈশিষ্ট্য ছিল কিনা Booleans রাখা করতেন।।
সাইমন এফ

6

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

এ সম্পর্কে আরও জানার জন্য একটি দুর্দান্ত উত্স হ'ল গ্রাসম্যান বীজগণিত সম্পর্কিত এরিক লেঙ্গেল এর উপস্থাপনা


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