3D-проєкція
Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. Ви можете допомогти вдосконалити цю статтю, погодивши її із чинними мовними стандартами. |
3D проєкція — це будь-який спосіб відображення тривимірних точок на двовимірній площині. Оскільки більшість сучасних методів для відображення графічних даних базуються на планарних (піксельна інформація з декількох бітових площин) двомірних середовищах, використання цього типу проєкції широко поширене, особливо в галузі комп'ютерної графіки, інженерії та креслення.
Ортогональна проєкція
Коли людське око дивиться на сцену, віддалені об'єкти виглядають меншими, ніж об'єкти поруч. Ортогональна проєкція нехтує цим ефектом, що дозволяє створювати креслення в масштабі для будівництва і машинобудування.
Ортогональна проєкція — це невеликий набір перетворень, який часто використовується, щоб показати профіль, деталі або точні розміри тривимірного об'єкта.
Якщо нормаль площини перегляду (напрямок камери) паралельна одній з координатних осей (тобто, , або осі ), то математичне перетворення виглядає наступним чином; Для проєктування 3D-точки , , на 2D точку , ортогональною проєкцією, яка паралельна осі Y (вид профілю), то можна використати наступні рівняння:
де вектор s — довільний масштабний коефіцієнт, а c являє собою довільне зміщення. Ці константи не є обов'язковими, і можуть бути використані, щоб правильно вирівняти вікно перегляду. При використанні матричного множення, рівняння мають такий вигляд:
- .
У той час як орфографічно проєктовані зображення являють собою тривимірну природу проєктованого об'єкта, вони не уявляють об'єкт, як це було б записано фотографічно або, як це сприймається глядачем, який безпосередньо спостерігає за ним. Зокрема, паралельні довжини у всіх точках на ортогонально проєктованому зображенні одного і того ж масштабу, незалежно від того, чи є вони далеко або близько до віртуального перегляду. В результаті, довжини біля до глядача не малюються в ракурсі, як вони б виглядали в перспективному проєктуванні.
Слабка перспективна проєкція
«Слабка» перспективна проєкція використовує ті ж принципи ортогональної проєкції, але вимагає коефіцієнт масштабування, який необхідно вказати, таким чином гарантуючи, що ближчі об'єкти здаються більшими в проєкції, і навпаки. Це можна розглядати як гібрид між ортогональною і перспективною проєкціями, і описується або як перспективна проєкція з окремими глибинами точки заміненими середнім постійним глибини ,[1] або просто як ортогональна проєкція з масштабуванням.[2]
Таким чином, слабко-перспективна модель апроксимує перспективну проєкцію, використовуючи простішу модель, схожу на чисту (немасштабовану) ортогональну проєкцію. Це розумне зближення, коли глибина об'єкта уздовж лінії візування мала в порівнянні з відстанню від камери, а поле зору маленьке. При цих умовах можна припустити, що всі точки на 3D-об'єкті знаходяться на однаковій відстані від камери, без суттєвих помилок у проєкції (в порівнянні з повною перспективною моделлю).
Перспективна проєкція
Коли людське око бачить сцену, об'єкти на відстані здаються менше, ніж об'єкти поруч — це відомо як перспектива. У той час як ортогональна проєкція ігнорує цей ефект, щоб дозволити точні вимірювання, перспективна проєкція показує, що віддалені об'єкти менше, щоб забезпечити додатковий реалізм.
Перспективна проєкція вимагає більш активну участь визначення в порівнянні з ортогональною проєкцією. Концептуальною допомогою у розумінні механіки цієї проєкції є уявлення 2D проєкції, ніби об'єкт або об'єкти в цей час розглядається через видошукач камери. Положення камери, орієнтація і поле зору управління поведінкою перетворення проєкції. Наступні змінні визначені для опису цієї трансформації:
- — 3D-положення точки , яка повинна бути спроєктована.
- — 3D-положення точки , що представляє камеру.
- — орієнтація камери (представлена кутами Ейлера).
- — глядацьке положення щодо поверхні дисплея[3] яка проходить через точку , яка представляє камеру.
Що призводить до:
- — 2D-проєкція .
Коли та 3D-вектор проєктується на 2D вектор .
В іншому випадку, для обчислення ми спочатку визначимо вектор як положення точки стосовно системи координат, визначеній камерою, з початком в , і повернутої на відносно початкової системи координат. Це досягається шляхом віднімання матриці з і потім застосування обертання по . Це перетворення часто називають перетворенням камери, і воно може бути виражене, висловлюючи обертання в термінах обертань навколо осей , , і (ці розрахунки мають на увазі те, що осі впорядковані як лівостороння система осей): [4] [5]
Це уявлення відповідає обертанню на три кута Ейлера, використовуючи конвенцію , яку можна інтерпретувати як «обертання навколо зовнішніх осей (осі сцени) в порядку , , (читання справа наліво)» або «поворот навколо власних осей (осі камери) в порядку , , (читання зліва-направо)». Зверніть увагу, що якщо камера не повертається (), то матриці випадають (як тотожності), і це зводиться до простого зрушення:
Як альтернатива, без використання матриць:
- (де = і т. д., = , = ).
Це перетворення точки потім може проєктуватися на 2D площині, використовуючи формулу (тут x/у, використовується як площина проєкції; у літературі також може використовуватися x/z):[6]
Або в матричній формі з використанням однорідних координат, система
в поєднанні з аргументами, використання подібних трикутників призводить до поділу однорідними координатами, даючи
Відстань від поверхні дисплея до глядача, , безпосередньо пов'язана з полем зору, де це розглянутий кут.
Наведені вище рівняння можна переписати таким чином:
В якому — розмір дисплея, — розмір робочої поверхні диска (наприклад CCD), відстань від поверхні запису центру камери, та це відстань, від 3D точки проєктування, до ока користувача.
Подальші операції відсікання і масштабування можуть бути необхідними для відображення 2D площини на будь-якому дисплеї.
Схема
Для того, щоб визначити, який x-координатний екран відповідає точці, в помножимо координати точки на:
де
- x координата екрана.
- x координата моделі.
- фокусна відстань — осьова відстань від центра камери[en] до площини зображення.
- це відстань до об'єкта.
Примітки
- ↑ Subhashis Banerjee (18 лютого 2002). The Weak-Perspective Camera. Архів оригіналу за 3 березня 2016. Процитовано 26 травня 2016.
- ↑ Alter, T. D. (July 1992). 3D Pose from 3 Corresponding Points under Weak-Perspective Projection (PDF) (Технічний звіт). Лабораторія комп’ютерних наук і штучного інтелекту МТІ. Архів оригіналу (PDF) за 17 серпня 2017. Процитовано 4 грудня 2016.
- ↑ Ingrid Carlbom, Joseph Paciorek (1978). Planar Geometric Projections and Viewing Transformations (PDF). ACM Computing Surveys[en]. 10 (4): 465—502. doi:10.1145/356744.356750. Архів оригіналу (PDF) за 4 березня 2016. Процитовано 26 травня 2016..
- ↑ Riley, K F (2006). Mathematical Methods for Physics and Engineering. Cambridge University Press. с. 931, 942. doi:10.2277/0521679710. ISBN 0-521-67971-0.
- ↑ Goldstein, Herbert (1980). Classical Mechanics (вид. 2nd). Reading, Mass.: Addison-Wesley Pub. Co. с. 146–148. ISBN 0-201-02918-9.
- ↑ Sonka, M; Hlavac, V; Boyle, R (1995). Image Processing, Analysis & Machine Vision (вид. 2nd). Chapman and Hall. с. 14. ISBN 0-412-45570-6.
Посилання
Вікісховище має мультимедійні дані за темою: 3D-проєкція |
- A case study in camera projection
- Creating 3D Environments from Digital Photographs