Оригинал материала: https://3dnews.kz/160076

3D сканеры

Автор: Александров Денис Юрьевич

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

Вспомните что было изображено на первых "скриншотах" Q3 Arena, и что поражало многих - верно - лицо живого персонажа и следовавшие обещания что это сможет сделать в игре каждый. Давайте же разберемся реально ли это уже сейчас или будет ли реально через год-два. Причем мы будем рассматривать возможность действительно качественной реализации этого подхода. Что я имею под этим в виду - то что необходимо создать полигональную модель играющего - реального человека, а не "приблизительно" натянуть текстуру лица на какую либо заготовленную модель.

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

Итак наша цель: получить 3D модель персонажа (одну), снятую с конкретного человека и полностью текстурированную, c параметрами пригодными для использования этой модели в качестве модели игрока в играх следующего поколения (в т.ч. с использованием аппаратного T&L).

Процесс построения такой модели можно представить в виде следующей последовательности шагов:

1. Оцифровка модели реального человека.

2. Ручная доработка модели - устранение дефектов оцифровки - в частности "дыр" в модели от упавших на человека при съемке теней.

3. Автоматическая достройка (редактором 3D персонажей) частей модели снятие которых затруднено - подошв обуви и т.д.

4. Доработка модели в 3D редакторе персонажей - генерация доспехов или иных предметов одежды (из заранее заготовленного набора). В случае если пользователь захочет оставить снятый образ без изменений этот шаг можно пропустить.

5. Привязка модели к скелетному каркасу (с участием пользователя). При этом модель соответственно разбивается редактором на участки тела с отдельными параметрами анимации (ноги, руки, туловище и т.д.). При этом мимика лица не разбивается - так как это очень усложнит процесс создания модели и по силам лишь профессиональному аниматору.

6. Оптимизация модели до приемлемого уровня детализации/числа полигонов - или внешними программами (такими как Rational Reducer от Systems in Motion) или самим редактором 3D персонажей - при этом возможно учесть больше специфических черт, как модели так и движка игры (например больше оптимизировать туловище модели, чем ее лицо).

Запись модели в формате доступном игре. На этой стадии возможны два варианта - или запись скелетной модели (т.е. одной полигональной модели с привязанным к ней "скелетом"), либо запись уже отсчитанного редакторам набора фаз движения игрока. И тот и другой подход имеют свои плюсы и минусы: скелетная анимация (особенно для модели с автоматической оптимизацией уровня детализации при ее создании) требует очень больших вычислительных ресурсов в процессе игры, но имеет намного меньший объем. Тогда как заранее рассчитанная, для всех возможных положений игрока, модель имеет относительно большой объем, но не требует таких напряженных вычислений в момент работы игровой программы.

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

Итак основной вопрос наш заключается в том - а возможно ли за приемлемые деньги построить 3D модель человека. До недавнего времени ответом на этот вопрос было - нет нельзя, точнее так продолжалось до 97-98 года. Чтобы подробнее рассмотреть этот вопрос окунемся в такую область как 3D Digitizing. О, не беспокойтесь я не собираюсь расписывать Вам принципы различных реализаций алгоритмов триангуляции. Я лишь представлю вам краткую типологию методов съемки 3D моделей, их плюсы и минусы, причем все это применительно к нашей конкретной задаче.

Методы кардинально нам не подходящие.

Начнем с того что все устройства 3D ввода можно условно подразделить на два основных типа - контактные и дистанционные. Почему условно - потому что к контактным я буду относить все устройства которые работают по принципу обводки контура пользователем вручную, посредством сенсора, причем не зависимо от того действительно ли сенсор касается модели. Эти устройства выделяются в первую очередь тем, что способны строить "грамотные" 3D модели - особенно на основе NURBS, потому как модель строит по сути оператор устройства, а не само устройство. Однако такие устройства абсолютно бесполезны для нас - ну если только Вы собираетесь обводить свое лицо по контуру J. Образцом (весьма широко известным) какого типа устройств является система MicroScribe-3D (фото ниже).

Все же дистанционные системы, как правило сканируют объект самостоятельно (во всяком случае я далее рассматриваю именно такие системы) и используют в том или ином виде геометрические преобразования и триангуляцию для определения z-координат точек сканируемой поверхности. Различия состоят лишь в конкретных методах съемки, и в такой малости как в цене.

Из дистанционных систем нам также не интересны системы:

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

Использующие различные электромагнитные излучатели - по тем же причинам - специфичности применения, высокой стоимости, низкой точности - до 1/32 дюйма. К тому же ими практически не возможно снимать в присутствии металлических предметов и малейших помех - таких как работающий ПК.

Традиционные лазерные сканеры. Хотя они и лишены практически всех недостатков предыдущих устройств (чем и объясняется их широкое распространение), но и они не лишены недостатков. Это и очень высокая их стоимость, и весьма ограниченные размеры сканируемых объектов, низкая производительность (особенно для систем с точечной проекцией). К тому же данные системы, если их и удастся использовать для сканирования человека весьма не безопасны - в частности для глаз. Представление о подобных системах могут дать VIVID 700 от Minolta (на фото слева) или Digibot II от Digibotics (на фото справа).

Интересующие нас системы относятся условно говоря к проекционным системам - что означает что все они проецируют (тем или иным способом - с участием лазера или без) на сканируемый объект специальную "сетку" и по ее искажениям определяют контур сканируемой поверхности.

Однако и среди данных систем далеко не все могут быть для нас интересны. В частности мало нам подходят полностью автоматические системы, снимающие человека в полный рост за 12 сек., однако весящие при этом около 450кг, использующие в качестве рабочей станции для обработки - Silicon Graphics Indigo2 Extreme или более мощные системы. Цену таких систем в частности - WB4 от Cyberware (тот что на фото внизу) и представить страшно.

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

Как я и говорил выше эти системы, как и все о которых пойдет речь далее - это проекционные системы. Данные системы представляют уже разумный ценовой диапазон - 7 500 - 10 000$. К данным системам можно отнести: Venus3D от In-Harmony's (на фото слева) и 3Scan от Geometrix (на фото справа) а также ряд других систем.

Достоинства и недостатки у этих систем общие: не малые габариты, не малая цена, и самое основное - жесткое ограничение на размер моделей не позволяющее снимать человека - это примерно 58см х 58см для Venus3D и 30см в диаметре для 3Scan. Однако эти системы: обеспечивают высокую точность для систем такого класса, высокое быстродействие - по сравнению с традиционными лазерными сканерами, работают на рабочих станциях на базе Windows NT.

Система 3Scan названа здесь не случайно - она имеет наименьшую в классе стоимость - около 7 500$, при этом работает в полностью автономном режиме - благодаря вращающемуся постаменту модели и использованию цифровой видео а не фото камеры. Проекция в данной системе осуществляется лазерным излучателем - что повышает ее точность. В целом это идеальный выбор для профессиональных разработчиков.

Системы которые собственно нам и интрересны.

Сразу замечу что таковых весьма не много - а точнее всего две, да и появились они сравнительно недавно.

Первая из них, известная гораздо шире, это система MetaFlash от Metacreations/Minolta. Данная система реализует проекционный принцип сканирования, использует конструктив фото-камеры и является по сути надстройкой над стандартной фотокамерой Minolta или Kodak (фото ниже).

Данная камера обеспечивает вполне приличную точность сканирования - до 1мм - чего вполне достаточно для нашей задачи, обеспечивает, согласно технических спецификаций размер поля сканирования достаточный для сканирования человека в полный рост, имеет относительно не высокую стоимость - 4 500$.

Как утверждается в спецификациях очень проста в использовании. Необходимо однако заметить, что по информации с сайта производителя массовые поставки данной камеры еще не начаты.

Вот мы и добрались до самой занимательной части нашего обзора. Это последняя (и наиболее пригодная для целей решения нашей задачи система). Данная система стоит по информации производителя порядка 6 000$, однако не спешите пугаться и бросать чтение этой статьи - и сейчас я попытаюсь объяснить почему.

Все дело в том, что данная система - комплект ShapeSnatcher+ ShapeMatcher от Eyetronics практически не содержит аппаратной части !! Нет содержит конечно, но роль ее играют бытовые компоненты которые сейчас есть чуть-ли не в каждом доме где есть ПК, а именно для работы системы нужны:

Бытовой слайд проектор (не компьютерный - обычный) под слайд 35мм, с приличной оптикой.

Любительский цифровой (предпочтительно), либо приличный обыкновенный фотоаппарат (на штативе или жестко закрепленный на какой либо опоре) + приличный сканер (ну отсканировать можно и в конторе в крайнем случае).

Вот и вся аппаратная часть. Сама же система состоит из комплекта ПО, специального слайда с разметкой и спец. коробка (на него проецируется сетка при калибровке системы). Все это в коробке размером с обычную коробку от игры. (иллюстрация программы ShapeMatcher - ниже).

Система специально ориентирована на съемку больших объектов и съемка человека - возможна, при этом система обеспечивает точность до 1мм - чего вполне достаточно (конечно не в последнюю очередь результат будет зависеть от вашей камеры). О качестве системы может говорить и тот факт, что она заняла призовое место на EIT в 1998 году. Это при том, что в то время система еще не содержала компонента ShapeMatcher, тогда как системы типа 3Scan уже выходили на рынок. Ниже приведено несколько примеров работы системы:

Что же до стоимости системы - скопировать софт в России никогда проблемой не было, вопрос лишь в копировании слайда - но и это не велика беда.

Однако не уклоняясь в вопросы Российского рынка ПО, можно заметить и весьма официальный путь использования этой системы - стоит лишь компании типа Id Software, или даже любому Российскому разработчику закупить лицензию на это ПО, ввести его в состав игрового редактора моделей, да растиражировать слайд - и мы имеем прототип системы для создания 3D моделей в играх - причем именно путем практически "домашней" (ну или в качестве услуги в игровых центрах) оцифровки живого человека. Вопрос с лицензией тоже вероятно не станет большой проблемой - пакет получит большой (неимоверно большой по сравнению с его текущей нишей) рынок сбыта, и это при том что ограничить его по формату записи лишь файлами воспринимаемыми игрой - не задача. Еще более кардинальным способом "закрытия" альтернативных способов использования этого ПО является встраивание когда этой системы (упрощенного) в сам редактор 3D моделей игры, на ряду с системой оптимизации моделей и другими компонентами (см. начало статьи).

Конечно есть и ряд не решенных мною вопросов относительно данной системы:

Хотя и утверждается что система может быть понятна и новичку, да и упростить ее можно в составе игрового редактора. Но все же встает вопрос - кого же считать за новичка ?

2. Производителями утверждается, что слайд получен с помощью технологий литографии - возникает вопрос - насколько это соответствует истине ? И в связи с этим - можно ли записывать отсканированный образ сайда на CD, с целью напечатать его на спец. аппаратуре печати слайдов - такой как например Polaroid ProPalette 8000 ? А вопрос этот весьма не праздный - так как уже сейчас такие услуги в Питере и Москве оказываются, причем за достаточно символическую плату.

И напоследок, для самых терпеливых и внимательных читателей и предвидя возможные вопросы:

Q. Если все сделают себе модели то для игры модели (их файлы) должны быть у всех игроков. Вопрос - как это обеспечить ?

A. Модели после даже не сложной оптимизации займут не много места - не более 150-200Kb. При игре по сети - чемпионатах или просто встречах - это не проблема - игрок приходит со своей дискетой (как сейчас с мышью) и загружает на сервер модель - через интерфейс игры - автоматически.

В начале игры - все участники, еще до старта скачивают модели (как например карты в StarCraft).

При игре по модему/Internet люди играющие в составе клана как правило играют с ограниченным кругом людей - модели также перекачиваются с сервера, только подождать придется подольше. На чисто общедоступных серверах где публика часто случайная - те кто хотят играть с моделями организуют Private секции, где перекачивают модели а потом играют (как в StarCraft происходит с картами и сценариями) публичные же сектора - запрещают пользовательские модели.

Это весьма обосновано - так как особое удовольствие от персонификации моделей получаешь лишь тогда, когда играешь со знакомым противником, а не со случайным оппонентом.

Да и к тому времени (через год-полтора) когда такие игры смогут появиться, с каналами на западе все будет уже более-менее благополучно. Мы конечно как всегда окажемся несколько в стороне - ну да ничего не поделаешь.

Q. Зачем все это ? Не будут люди так играть. Вообще все стены в Action ориентированном на DM должны быть без рисунков и одного цвета - все равно я их не замечаю, да и модели игроков тоже и т.п.

A. Во-первых, все новые технологии были когда то глупыми, казались никому не нужными - а сейчас играют и не задумываются (знаю по долгому опыту общения с ПК и играми на нем, уж поверьте). Во-вторых, Вы никогда не задумывались почему люди не хотят играть с ботами - только ли по тому, что они такие глупые и играют не как человек (это уже верно лишь отчасти в свете Unreal Tournament) ? А почему фото-галерея ICQ имеет бешенный успех - тоже не задумывались ? Подумайте на досуге...

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

При подготовке материала были использованы материалы сайтов:

http://www.minolta3d.com;
http://www.metacreations.com;
http://www.digibotics.com;
http://cgw.pennwellnet.com;
http://www.inharmonytech.com;
http://www.visint.com;
http://www.geometrixinc.com;
http://www.eyetronics.com;
http://www.cyberware.com;
http://www.cyberfx3d.com.



Оригинал материала: https://3dnews.kz/160076