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] до площини зображення.
це відстань до об'єкта.

Примітки[ред. | ред. код]

  1. Subhashis Banerjee (18 лютого 2002). The Weak-Perspective Camera. Архів оригіналу за 3 березня 2016. Процитовано 26 травня 2016.
  2. Alter, T. D. (July 1992). 3D Pose from 3 Corresponding Points under Weak-Perspective Projection (PDF) (Технічний звіт). Лабораторія комп’ютерних наук і штучного інтелекту МТІ. Архів оригіналу (PDF) за 17 серпня 2017. Процитовано 4 грудня 2016.
  3. 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..
  4. Riley, K F (2006). Mathematical Methods for Physics and Engineering. Cambridge University Press. с. 931, 942. doi:10.2277/0521679710. ISBN 0-521-67971-0.
  5. Goldstein, Herbert (1980). Classical Mechanics (вид. 2nd). Reading, Mass.: Addison-Wesley Pub. Co. с. 146–148. ISBN 0-201-02918-9.
  6. Sonka, M; Hlavac, V; Boyle, R (1995). Image Processing, Analysis & Machine Vision (вид. 2nd). Chapman and Hall. с. 14. ISBN 0-412-45570-6.

Посилання[ред. | ред. код]