Определение размеров объекта при моделировании

В работе 3D моделера очень часто  бывает, что информация по объекту, который подлежит трехмерному моделированию, очень скудна. Например, совсем нет размеров элементов, а есть только его габаритные размеры. Так почти всегда бывает с мебелью, потому что при выборе мебели всех интересуют именно габаритные размеры, а детальные чертежи не выходят за пределы фабрик-изготовителей.

Чертежи мебели для моделирования
Чертежи мебели для моделирования не всегда содержат полную информацию об объекте.

 

Или при моделировании архитектурных объектов частенько в наличии есть какой-никакой план этажей, но полностью отсутствует информация о фасадах. А ведь именно фасады и предстоит моделировать и планировочные решения в данном случае не представляют практически никакой пользы.

Что же делать?

Сегодня в этом уроке я решил рассказать о методе, который использую в своей повседневной работе. Этот метод не является ни моим изобретением, ни ноу-хау, известен тысячу лет, однако многие специалисты при создании 3D моделей сталкиваются с трудностями при определении правильных размеров. Метод основывается на вычислении правильных пропорций, а не точных размеров.  Правда, в идеальном случае, размеры будут очень точными. Как бы то ни было, метод позволяет смоделировать почти идеально выглядящую модель.

Алгоритм

Алгоритм определения размеров состоит из нескольких шагов:

  1. Взять 1 размер предмета, который мы точно или приблизительно знаем.
  2. Измерить отношение числового значения размера к его размеру в пикселях
  3. Составить пропорцию.
  4. Измерить любой интересный для нас параметр объекта
  5. Пользуясь составленной пропорцией вычислить реальное значение параметра

Как делать?

Первая задача, которую необходимо решить — получить хотя бы один размер, примерно соответствующий истине. В случае изображений мебели выше, такие размеры у меня уже есть — это габаритные размеры. Больше мне не нужно, дополнительные размеры просто сэкономят мне время, так как мне не придется их вычислять.

Возьмем вот такую схему дивана:

Диван с размерами
Стандартная схема дивана

Я открываю это изображение в Photoshop’е, но это может быть любой другой редактор, в котором есть инструмент Ruler tool(«Линейка»), который позволяет измерять расстояние.

В Photoshop’е я работаю с пикселями, для этого нужно включить отображение линеек (Ctrl+R) и в меню, открывшемся по правому клику выбрать Pixels.

Выбор единиц измерения в Photoshop
Выбор единиц измерения в Photoshop

Следующим шагом я измеряю, скольким пикселям соответствует указанный на изображении размер. Для этого использую уже упомянутый Ruler tool в Photoshop’е.

Выбор Ruler tool
Выбор Ruler tool

 

И следующим шагом просто измеряю горизонтальный размер, удерживая при этом клавишу Shift, чтобы измерять строго по горизонтали. При этом результаты измерений отображаются в окне «Info«.

Измерение расстояния в Photoshop
Измерение расстояния в Photoshop

 

 Итак, мы получили, что расстояние в 86″ равно 303 пикселям.

Теперь чтобы узнать любой размер, указанный на этом изображении мне достаточно составить простейшую пропорцию. Измеряю в Photoshop’е вертикальный размер дивана, для удобства использую гайды (guides):

Измерение высоты дивана
Измерение высоты дивана

 

Составляю простейшую пропорцию:

303px   =   86

110px   =   X

Отсюда X = 110px * 86″ / 303px = 31.2″  Немного округляю и получаю 31″ = 78.74 см.

Из-за небольшого размера исходного изображения ошибка измерения на 1 пиксель дает погрешность в 0,284 дюйма, что равно 7 мм. Но в целом, метод сильно упрощает жизнь, избавляя меня от вставки изображения в 3D редактор и моделированию исходя из изображения со всеми вытекающими отсюда неудобствами.

 Проверка боем

Как-то шел мимо «сталинского» дома недалеко от места проживания и подумал, что фасад такого дома хорошее упражнения для начинающих 3D моделеров и визуализаторов. Недолго думая, я сделал несколько фотографий с разных сторон. Бонусом послужило хорошее разрешение моего телефона (40Mpix), спасибо Nokia.

По щелчку на картинке — полноразмерные фото.

"Сталинский" дом. Фронтальный вид.
«Сталинский» дом. Фронтальный вид.
"Сталинский дом". Вид сбоку
«Сталинский дом». Вид сбоку
"Сталинский дом". Детали
«Сталинский дом». Детали

 

Я, как, предполагаю, и вы, почти никогда не ношу с собой рулетку, поэтому измерить какой-либо элемент этого дома я не смог. Казалось бы это тупик, однако я знал адрес этого дома, поэтому просто, найдя дом на Яндекс.Картах, я узнал примерную длину фасада и взял для удобства ее равной 22 метрам.

Карта с размерами
Карта с размерами

 

Есть один размер.  Все что нужно чтобы узнать остальные — измерить их. Для этого я загрузил фронтальную фотографию в Photoshop и с помощью инструмента Edit->Transform->Perspective убрал перспективные искажения, сделав вертикали параллельными и вертикальными.

Выровнял вертикали на фото
Выровнял вертикали на фото

 

Теперь, зная ширину здания и имея возможность измерять по фотографии без искажений, можно действовать по такому же алгоритму, как я использовал с диваном выше по тексту.

Может быть, ширина здания и не 22 метра, а 20 или 23 метра. Это в данном случае не главное. Главное, что мы можем узнать любой размер и он будет пропорционально соответствовать оригинальному зданию. А сделать всю немного меньше или немного больше всегда можно.

А что если бы я не знал, где находится это здание, спросите вы? Я бы мог отталкиваться от высоты этажа, в зданиях подобного типа высота потолков около 3-3,5 метров. Или от размера автомобиля, стоящего наиболее близко к зданию. Или от размера любого другого предмета, размер которого стандартен или я могу его узнать с определенной степенью точности. Главное не супер-точный размер, а пропорциональность модели и относительное соответствие ее размеров оригиналу. Даже +/- 1 метр при пропорциональной модели никто не заметит, я проверял. 🙂

Спасибо за внимание, надеюсь, этот метод вам пригодится.

Свои комментарии вы можете оставить внизу, в специальной форме.