3D-сканер чужими руками, или лень - двигатель прогресса

3D-сканер чужими руками, или лень - двигатель прогресса

Дизайнер должен быть ленив, что бы достигать максимального результата минимальными средствами.
Виктор Плышевский

Привет всем!

Для начала хочу выразить благодарность и уважение Fiend3d за замечательный урок, который вдохновил меня на эту статью. Я всегда испытывал зависть пополам с восторгом, наблюдая как физический мир превращается в сознании математика в набор уравнений.
Хочу так же предостеречь от попыток принять мои упражнения за готовую технологию. Это всего лишь забавный эксперимент. Если кто-то найдет его полезным - я не виноват :)

Итак, к делу! Рассуждая о том, как из плоской картинки сделать объемный предмет я вспомнил о канале глубины (Z-буфер). Все, что нам требуется - это получить фотографию объекта с равномерно ослабевающим в глубину освещением. И желательно без переспективных искажений. Такой фотоаппарат стоит у большинства из нас на рабочем столе (ну или по крайней мере, на соседнем столе). Это обычный планшетный сканер.

Но разумеется, не все так просто.
Проблема №1: объекты имеют собственную окраску. И темные пятна мало отличаются от теней. Эту проблему я решил просто. Взял объект сделанный из гипса :) Вот он:

Между прочим - мне пришлось его слегка помыть :) Разумеется, если Вам захочется взять что-то не из гипса - всегда есть баллончик с краской :) Я сканировал с небольшим разрешением, но 16 бит на канал, что бы сохранить нюансы в тенях и светах. Кстати, имейте ввиду: расположение теней зависит от направления движения каретки сканера.

Дальше немножко фотошопа. Я взял красный канал (channels/split channels) и записал его как отдельный файл (это лучше простого "обесцвечивания" - desaturate). Да, чуть не забыл: стоит "обтравить" объект и залить фон черным. И неплохо дополнительно высветлить наиболее выступающие места (не ворчите, на все ушло не больше 15 минут):

Осталась ерунда. Объяснить 3DS Max'у что с этим делать. Проницательный читатель уже кричит: "Дисплэйс! Дисплэйс!" - И он прав! :) Вот только использовать дисплэйс-карту при рендеринге не хочется, все-таки удобнее работать с геометрией. Значит - модификатор Displace, который я применил к обычному объекту Plane. Что бы не мучиться с подгонкой карта была приведена к пропорциям объекта 3х4 (1500х2000px):

У-упс! Как-то по-другому я это себе представлял... Итак проблема №2: регулярная сетка разбивает объект на квадратики, как-бы "пикселы". Если увеличивать ее частоту - мы быстро вылетаем за разумное количество полигонов. Кроме того, картинка слегка "шумит". Очевидно, необходимо сглаживание. Микрошумы удаляем прямо в Displace (Image/blur), макро-неровности при помощи модификатора Relax:

"Позвольте!" - скажет возмущенный читатель, - "А где же мелкие детали? За что боролись-то??"

Да, и это проблема №3. Решается она сравнительно просто. Из той же картинки мы делаем карту бампинга, конечно же normal bump. (я использовал маленькую бесплатную прогу Сrazybump )

Теперь неплохо бы еще удалить все лишнее. И что это за мерзкие разводы по контуру?

А это проблема №4. Используя только один вид невозможно получить полную информацию о форме объекта. За угол сканер заглянуть не может, и там где заканчивается сканированная карта начинается лажа. Значит просто отрезаем эти части совсем. Не надо мучиться и прицеливаться. Используем карту прозрачности (opacity map). Помните, я попросил вначале "обтравить" картинку? У Вас должен был сохраниться альфа-канал!

Говорите, не слишком-то похоже на гипс? Ну что ж, пора включать глобал иллюминэйшн:

И наконец в движении

Вот финальные раскладки по настройкам модификаторов и материала:

Исполнено на 2x1800/ATLON64/2Gb, Win2000SP4, Autodesk 3DSMax 9sp1, V-Ray 1.53RC1

Надеюсь, что мне удалось немного развлечь публику :) спасибо за Ваше время!
Михаил Наумов a.k.a. Mic Nau

526 0 850 31
19
2007-12-05
Хорошый урок. мне понравелся :)
2007-12-05
Необычно, интерссно даже попробовать, потопаю за фотиком :) А вот как полностью сделать модель на все 360 градусов?
2007-12-05
да урок не плохой... Я типичным способом добиваюсь хорошей лепнины... Но это далео не 3d сканер... и ксажалению Displace не преобразовать в модель...
2007-12-05
[b]dimson3d[/b] если модел семитрича, то можно мирор применить. если нет, то новерно здвух сторон както стыковать +) ...толка криво както выдит.... ) у меня чето не получилас зделать это как надо :(
2007-12-05
Урок понравился! Только я слишком ленив, чтобы его повторять :)
2007-12-06
2 монолит - ну во 1 дисплейс мона преобразовать в геометрию )) ( да не в 3д максе ) но можно )) не будем раскрывать в каком софте конкретно НО )) 2димсон 3д )) к сожалению не думаю что имея 1 картинку мона будет сделать всю модель ))
2007-12-08
1) Гыгыгы.. Дисплеис отлично и в максе перегоняется в геометрию ))) не буду говорить "подключайте Мозг" НО. 2) Статья забавная. Как вариант для ленивых - сойдет. К сожалению бесплатная прога CrazyBump - дает весма отдаленно напоминающий правду нормал мап. И к этому же Сожалению большенство людей почему то этого не видят. =\ Рельефно - и зашибись. А то что положи в наглую тупо фотку на бамп и получиш +- ту-же самую Чушь.. никто не понимает. 3) Автор забыл упомянуть еще о тонкостях сканирования. Я уточню - Фотик не подойдет - нужен именно сканет с способностью "Обьемного" сканирования. Не пугайтесь этого слова, к 3Д это отношения не имеет. просто Раньше сканеры имели точку фокуса которая распологалась как раз над поверхностью стекла, и все что дальше - Размывалось. Сейчас практически Все сканеры работают ка фотоаппараты - т.е. фоткают когерентно Вглубь на большое растояние. т.е. как бы Обьем. а не плоский лист.. И второе и наиболее важное - нужентакой-же ранвомерный и однонаправленный свет Именно по этому используют сканет. Эффект глубины получается за счет атенюации (рассеивания) света и соответственно спаду его интенсивности. Т.е. - при сканировании в комнате должно быть Темно. чтобы постороний свет все не испортил. Последок: В любом случае результат получается неважнецкий. А по времени и гемору.. хм.. нормальный не безрукий моделлер за это же время с легкостью набросает такую модель в 3д. к томуже качество Формы будет повыше.. а детализация.. 15 мин в браше (опять таки для более мене опытного) P/s/ почему я так уверенно все это говорю - сам делал Точно такой же експеремент лет 5 назат. )) если не больше.
2007-12-09
2 Shiva: CrazyBump действительно дает normal bmp далекий от истины. Но "в наглую тупо фотку на бамп" - все-таки хуже - проверено :) Про тонкости сканирования автор не упомянул вполне сознательно, дабы не загромождать статью. Но про то, что в комнате должно быть темно - да, каюсь, просто забыл. Видимо потому, что у меня всегда темно :) Ну и напоследок, про "влегкую набросать",- если не секрет, сколько времени ушло например, на эту модель: http://img192.imageshack.us/my.php?image=demon7xs.jpg ? :) А на самом деле - спасибо за квалифицированный ответ! Я не зря написал в начале, что это "всего лишь забавный эксперимент". Реальное применение подобных технологий (даже если бы все было идеально) весьма ограничено... В лучшем случае - поставитьфигурку на полку в интерьере, да и то, не подлетать к ней близко... Спасибо всем, кто не поленился дочитать до конца :) Эксперименты, тем не менее, продолжаются... но уже в других направлениях
2007-12-09
Читал гдето способ подобной развлекухи. Там нормал мап получали фотографируя объект поочерёдно освещаемый с трёх сторон по осям координат. Полученные фотки кидаются на каналы. дальше понятно.
2007-12-10
Миша, спасибо интересный тест! :)
2007-12-12
2 Mic Nau: )) отвечаю - на эту модель ушло.. хмм.. так чтоб не соврать - 15 мин обеденного перерыва. За эти 15 мин это Сначала был классический Инопланетянин с большой головой, потом зомби из группы Iron Maden, и только потом вот этот Лось.. ) а потом еще минут 20 баловался с retopology в Silo - сетку перерисовывал окуратную. 2 Taras Burlin: угу, есть такой способ. амного более качественый результат. Но, там свои недостатки - тени.. Т.е. освещая с одной стороны мы получаем тени отбрасываеммые выступами.. Но.. если это мелкий барильеф (лепка) - то получается практически 90% оригинал.. хочешь дисплейс, хочешь Нормал мапа.. и Весьма точно и качественно.. эх.. вот если бы не тени.. =\
2007-12-15
Лень - отсутствие или недостаток трудолюбия, предпочтение свободного времени трудовой деятельности.
2007-12-15
2 Fiend3d :)
2007-12-22
а почему в оригинале у коня грива плоская, а в результате - какая-то выпуклая?
2008-01-15
dimson3d думаю просто сделай фото с двух сторон, т.е. с обоих боков и все
2008-01-17
это хороший способ если надо сделать симетричную модель и неважнецкого качества, а данная лошадь нифига не симетричная. я б полигонами сделал, детали крыльев и морды - бамп или пожмакать кисточками.
2008-05-26
А свою физиономию не пробовали отсканить
2008-05-26
[smile=04] первое, что пришло в голову... Лень было гримироваться
2009-09-21
круто если нужно барельеф каконить сделать .
RENDER.RU