3D проєкція — це будь-який спосіб відображення тривимірних точок на двовимірній площині. Оскільки більшість сучасних методів для відображення графічних даних базуються на планарних (піксельна інформація з декількох бітових площин) двомірних середовищах, використання цього типу проєкції широко поширене, особливо в галузі комп'ютерної графіки, інженерії та креслення.
Коли людське око дивиться на сцену, віддалені об'єкти виглядають меншими, ніж об'єкти поруч. Ортогональна проєкція нехтує цим ефектом, що дозволяє створювати креслення в масштабі для будівництва і машинобудування.
Ортогональна проєкція — це невеликий набір перетворень, який часто використовується, щоб показати профіль, деталі або точні розміри тривимірного об'єкта.
Якщо нормальплощини перегляду (напрямок камери) паралельна одній з координатних осей (тобто, , або осі ), то математичне перетворення виглядає наступним чином;
Для проєктування 3D-точки , , на 2D точку , ортогональною проєкцією, яка паралельна осі Y (вид профілю), то можна використати наступні рівняння:
де вектор s — довільний масштабний коефіцієнт, а c являє собою довільне зміщення. Ці константи не є обов'язковими, і можуть бути використані, щоб правильно вирівняти вікно перегляду. При використанні матричного множення, рівняння мають такий вигляд:
.
У той час як орфографічно проєктовані зображення являють собою тривимірну природу проєктованого об'єкта, вони не уявляють об'єкт, як це було б записано фотографічно або, як це сприймається глядачем, який безпосередньо спостерігає за ним. Зокрема, паралельні довжини у всіх точках на ортогонально проєктованому зображенні одного і того ж масштабу, незалежно від того, чи є вони далеко або близько до віртуального перегляду. В результаті, довжини біля до глядача не малюються в ракурсі, як вони б виглядали в перспективному проєктуванні.
Слабка перспективна проєкція
«Слабка» перспективна проєкція використовує ті ж принципи ортогональної проєкції, але вимагає коефіцієнт масштабування, який необхідно вказати, таким чином гарантуючи, що ближчі об'єкти здаються більшими в проєкції, і навпаки. Це можна розглядати як гібрид між ортогональною і перспективною проєкціями, і описується або як перспективна проєкція з окремими глибинами точки заміненими середнім постійним глибини ,[1] або просто як ортогональна проєкція з масштабуванням.[2]
Таким чином, слабко-перспективна модель апроксимує перспективну проєкцію, використовуючи простішу модель, схожу на чисту (немасштабовану) ортогональну проєкцію. Це розумне зближення, коли глибина об'єкта уздовж лінії візування мала в порівнянні з відстанню від камери, а поле зору маленьке. При цих умовах можна припустити, що всі точки на 3D-об'єкті знаходяться на однаковій відстані від камери, без суттєвих помилок у проєкції (в порівнянні з повною перспективною моделлю).
Коли людське око бачить сцену, об'єкти на відстані здаються менше, ніж об'єкти поруч — це відомо як перспектива. У той час як ортогональна проєкція ігнорує цей ефект, щоб дозволити точні вимірювання, перспективна проєкція показує, що віддалені об'єкти менше, щоб забезпечити додатковий реалізм.
Перспективна проєкція вимагає більш активну участь визначення в порівнянні з ортогональною проєкцією. Концептуальною допомогою у розумінні механіки цієї проєкції є уявлення 2D проєкції, ніби об'єкт або об'єкти в цей час розглядається через видошукач камери. Положення камери, орієнтація і поле зору управління поведінкою перетворення проєкції. Наступні змінні визначені для опису цієї трансформації:
— 3D-положення точки , яка повинна бути спроєктована.
— глядацьке положення щодо поверхні дисплея[3] яка проходить через точку , яка представляє камеру.
Що призводить до:
— 2D-проєкція .
Коли та 3D-вектор проєктується на 2D вектор .
В іншому випадку, для обчислення ми спочатку визначимо вектор як положення точки стосовно системи координат, визначеній камерою, з початком в , і повернутої на відносно початкової системи координат. Це досягається шляхом віднімання матриці з і потім застосування обертання по . Це перетворення часто називають перетворенням камери, і воно може бути виражене, висловлюючи обертання в термінах обертань навколо осей , , і (ці розрахунки мають на увазі те, що осі впорядковані як лівостороння система осей):
[4][5]
Це уявлення відповідає обертанню на три кута Ейлера, використовуючи конвенцію , яку можна інтерпретувати як «обертання навколо зовнішніх осей (осі сцени) в порядку , , (читання справа наліво)» або «поворот навколо власних осей (осі камери) в порядку , , (читання зліва-направо)». Зверніть увагу, що якщо камера не повертається (), то матриці випадають (як тотожності), і це зводиться до простого зрушення:
Як альтернатива, без використання матриць:
(де = і т. д., = , = ).
Це перетворення точки потім може проєктуватися на 2D площині, використовуючи формулу (тут x/у, використовується як площина проєкції; у літературі також може використовуватися x/z):[6]
в поєднанні з аргументами, використання подібних трикутників призводить до поділу однорідними координатами, даючи
Відстань від поверхні дисплея до глядача, , безпосередньо пов'язана з полем зору, де це розглянутий кут.
Наведені вище рівняння можна переписати таким чином:
В якому — розмір дисплея, — розмір робочої поверхні диска (наприклад CCD), відстань від поверхні запису центру камери, та це відстань, від 3D точки проєктування, до ока користувача.
Подальші операції відсікання і масштабування можуть бути необхідними для відображення 2D площини на будь-якому дисплеї.
Схема
Для того, щоб визначити, який x-координатний екран відповідає точці, в помножимо координати точки на: