Поєднання фотографії та 3d оточення - Блог

Поєднання фотографії та 3d
Отже, найперше, що нам необхідно, це фотографія, наприклад якого дивана, який ми згодом будемо вставляти в інтер'єр. Нехай ми працюватимемо з такою моделлю.
Хочу відразу зауважити, якщо фотографія зроблена, наприклад, з відстані 2м від об'єкта, то при суміщенні фотографії і 3d, Ви отримаєте рендер з такої ж відстані. Лише в малому діапазоні Ви можете коригувати положення камери, інакше обов'язково отримаєте викривлення моделі.
Пояснюється це тим, що камера при віддаленні від об'єкта вносить корективи у відображення форми об'єкта. На малюнку знизу два куби розмірами 1х1х1м, накладені один на одного, для наочності.
Фотографія темного куба, зроблена з відстані 1м, а помаранчевого з відстані 2м, але збільшеного до розмірів першого для наочності.
Бачите, як змінився об'єкт залежно від відстані знімання. Це означає, що фізично буде не правильно, якщо вставити фотографію об'єкта в 3d оточення на відстань, відмінну від знімального. Іншими словами, інтер'єр є 3D об'єктом і його спотворення буде контролюватись відповідно до положення камери в 3d просторі, а фотографія не може бути скоригована, тому що не є 3d об'єктом.
Запам'ятайте, це правило.Інакше ви отримаєте або спотворення самої моделі, або "розрив" осей фотографії та інтер'єру.
Сподіваюся, що з цим все зрозуміло і далі.
У вікнах проекції з'явиться план з картинкою і сплайн осей. Посуньте, але не закривайте, вікно скрипта, він нам ще знадобиться.
Перейдіть у вікно передньої проекції та виберіть режим відображення Smooth+highlights. Тепер нам належить найвідповідальніша робота, відякою залежить якість суміщення фотографії та 3d. За допомогою вертекс нам потрібно виставити осі, які дозволять правильно налаштувати розташування камери. Відповідність сегментів сплайну осям можна побачити на зображенні:
Після розміщення вертексів, як на картинці, натискаємо кнопку SOLVE
І скрипт створить дві камери, камера з ім'ям 111_cm_camera нам не потрібна, її можна видалити. А ось камера 111_cm_cameraAligned налаштована на потрібний ракурс, вона нам і знадобиться надалі.
Видаліть план з фотографією, сплайн осей і закрийте вікно скрипта, більше вони не нам не потрібні.
Виберіть камеру у вікні Perspective. Натисніть ALT+B і завантажте зображення в Background Source. Розставте галки відповідно до картинки:
Тепер фотографія об'єкта у нас на задньому фоні. Створіть примітив Box, переведіть його до Edit Poly. Встановіть прапорець See-Through на вкладці Display, це зробить об'єкт напівпрозорим і зробить більш зручним припасування об'єкта до фотографії.
Переміщаючи вертекси, зробіть так, щоб габаритні розміри Box були трохи більшими за габарит дивана.
Тепер наше завдання створити матеріал для Box.
Відкрийте Material editor, виберіть будь-який слот із матеріалом, наприклад перший, і в слот Diffuse вставте карту Camera Map Per Pixel
Натисніть на слот Camera у карті Camera Map Per Pixel та виберіть у вікні проекцій камеру 111_cm_cameraAligned. Тепер у слот Texture встановіть фотографію дивана, яку Ви ставили на скрипт та заднє тло.
Скопіюйте цю картку в слот Opacity того ж матеріалу, відкрийте скопійовану картку та замініть файл у слоті Texture, на картинку з чорно-білою маскою для дивана. Параметр Self Illumination виставте на 100. Ось так має бути:
Використовуйте матеріал на Box. Виберіть вікнокамери проекції. та натисніть F9 (рендер). Якщо ви все зробили правильно, у вас повинен з'явитися рендер дивана:
Таке диво вийшло завдяки Camera Map Per Pixel у слоті Difuse матеріалу, тобто. Ви створили свого роду проектор, де камера була проектором зображення дивана, а Box служив полотном, на яке проектувалося зображення. Згадайте кінотеатр, якщо хтось попереду стане і перегородить промінь проектора, то на проекційному екрані буде видно силует людини. Але тут все набагато краще, тому що камера нічого не бачить аж до самого Box. І нічим не можна перекрити проекційний промінь.
А ось карта Camera Map Per Pixel у слоті Opacity матеріалу з чорно-білою маскою обрізала все зайве крім самого дивана. Для тих, кому, цікаво. приберіть карту зі слота Opacity, натисніть на рендер і подивіться, як вийшло без використання маски.
Тепер у Вас є гова сцена, в якій камера, яка грає роль проектора, налаштована в такому ж ракурсі, як і знімальна на вихіднику.
Відкрийте будь-який готовий інтер'єр, в який Ви бажаєте вставити диван. Перекиньте у вікно проекції Top сцену з налаштованою камерою та боксом за допомогою Merge
Далі, виберіть нашу камеру 111_cm_cameraAligned як джерело для рендеру. Перемістіть групу з камери і Box, в потрібне місце на сцені, так що група може не відповідати дійсним розмірам дивана, при необхідності скористайтеся масштабуванням. Але тільки групи повністю,не розгруповуйте її.
Зайдіть у вкладку Render Setup і виставте роздільну здатність рендеру таке ж, як і на фотографії вихідного коду, головне щоб співвідношення сторін було таке саме як і на вихідному.
Переходимо на вікно проекції камери і тиснемо F9 (рендер). Ось що вийшло:
От і все!. Сподіваюся, що урок був вам корисним.Поєднання фотографії та 3d у такий спосіб, дає досить якісний результат. Готові роботи із застосуванням такого методу, можете подивитися у галереї у розділі 2D+3D.