Что такое 3D модель и где она может использоваться! Интересно!

Что такое 3D модель

Одним из базовых пунктов изучения 3D технологий является полное понимание процесса 3Д моделирования. Это краеугольный камень всех трехмерных методик, и первым делом следует разъяснить, что такое 3D модель.

3D модель – это объемное цифровое изображение необходимого объекта, как реального, так и вымышленного. Создание 3D моделей происходит в специальном программном обеспечении для 3D моделирования. Функционал таких программ может незначительно отличаться. К примеру, существуют программы, ориентированные на проектирование инженерных 3D моделей, есть ПО непосредственно для моделирования органических объектов, а также приложения для 3Д визуализации и анимации. На деле, строгой классификации программное обеспечение не подвержено, но большинство приложений содержат определенные функции, направленные на выполнение конкретных задач.

Что такое 3D моделирование

Объясняя, что такое 3D модель, нельзя не объяснить вкратце и что такое 3Д моделирование.

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

Поверхность 3Д модели представляет собой набор геометрических фигур – треугольников или прямоугольников, совокупность которых и формирует необходимый объект. При желании, научиться создавать 3Д модель можно самостоятельно, но в случае острой необходимости лучше обратиться к профессионалам.

Другие вопросы и ответы о 3D принтерах и 3D печати:

  •  Технологии Какие технологии 3D печати существуют?
  •  Технологии
    Что такое технология RepRap?

Применение 3D моделирования

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

  • В разработке компьютерных игр;
  • Как один из этапов 3D-визуализации;
  • Для предварительной оценки технических свойств проектируемого изделия;
  • В подготовке образцов к 3Д печати;
  • Для создания прототипов изделий.

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

Надеемся, мы смогли понятно объяснить, что такое 3D модель и 3D-моделирование. Если у Вас имеются дополнительные вопросы, которые мы не затронули, пишите нам на электронную почту и мы, в случае необходимости, добавим и Ваши вопросы! С уважением, коллектив компании 3DDevice.

Помимо этого, хотим напомнить, что наша компания предоставляет услуги 3Д моделирования, 3Д сканирования и 3Д печати. А в нашем интернет-магазине вы найдете огромное количество сопутствующего оборудования: 3Д-принтеров, 3Д-сканеров, а также расходных материалов для печати. Обращайтесь к нам по одному из телефонов, указанных в разделе «Наши контакты», либо по адресу офиса (Киев), или представительств (Харьков, Чернигов). Будем рады сотрудничеству!

Вернуться на главную

виды, уровни сложности, составные части

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

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

Создание 3Д модели

Создание 3Д-модели объекта осуществляется с помощью 3Д-моделирования. На первом этапе 3D-моделирования производится сбор информации: эскизы, чертежи, фотографии и видеоролики, рисунки, часто даже используют готовый образец изделия – в общем, все, что поможет понять внешний вид и структуру объекта. На основании полученной информации 3Д-моделлер или 3Д-дизайнер создает трехмерную модель в специальной компьютерной программе. После того как модель будет выполнена, на нее можно будет посмотреть с любого ракурса, приблизить, отдалить, внести необходимые корректировки. Сама по себе модель уже готова для дальнейшего использования – печати на 3Д принтере, 3Д-фрезерования на станках с ЧПУ или любого другого метода прототипирования.

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

Виды и уровни 3D-моделей

Существует несколько видов трехмерных моделей:

  • полигональная модель;
  • NURBS поверхности.

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

Кроме того, есть три вида 3D-моделирования:

  • каркасное моделирование;
  • поверхностное моделирование;
  • твердотельное моделирование.

Первый из них, наиболее простой вид – это каркасное моделирование. Модели, получаемые при создании этого типа воспроизведения, будут называться проволочными или каркасными. Состоят они из линий, дуг и сегментов. Изображения такого типа не передают полную информацию об объекте: ни об объеме, ни о структуре поверхности из такой модели узнать невозможно, зато можно изучить его устройство и функциональность. Главным

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

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

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

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

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

Все уровни модели соотносятся и с видами 3D-моделирования, так первые два – это каркасный, третий – поверхностный, а четвертый – твердотельный способ визуализации.

Составные части 3D-модели

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

Вершина – это точка, которая имеет свои координаты в трехмерной системе, то есть X, Y, Z. Свое название она получила из-за того, что является крайней точкой плоского многоугольника, или полигона.

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

Основной составляющей в трехмерной графике считается полигон – плоский многоугольник, множество которых и образует трехмерную фигуру. Абсолютно любая фигура будет строиться из многочисленных простых фигур (причем большинство редакторов использует треугольники и четырехугольники). Чем больше будет простых фигур в составе сложной, тем более гладкой будет казаться поверхность 3D-модели (так называемое высокополигональное моделирование).

Совокупность полигонов несет информацию о размере и форме 3Д модели, а выбранная текстура позволяет передать достоверную информацию о внешнем виде объекта и представляет собой изображение на поверхности фигуры.

Популярные программы для 3D-моделирования

Программное обеспечение, позволяющее заниматься трехмерным моделированием, очень многообразно. Здесь есть и коммерческие, и открытые (бесплатные) продукты. К первым можно отнести 3ds Max, Modo, LightWave 3D, именно их на сегодня можно назвать лидерами в области 3D-моделирования. Среди свободно распространяемых программных продуктов стоит отметить Blender и Wings3D.

Список программ для 3Д-моделирования пополняется очень быстро. Компании, чтобы завоевать больше потребителей, создают разные программы, которые отвечают различным спецификациям и подойдут для любого 3Д-моделлерщика. Так, к примеру, компания Autodesk выпустила в мир уже 4 программных продукта по 3Д-моделированию: 3d max, Maya, Softimage, Mudbox.

Для промышленного 3Д-моделирования инженеры чаще всего используют 3DMAX, SolidWork и ProEngineering.

Другие популярные продукты для 3Д-моделирования: Rhino, 3Delight, Sculptris, ZBrush, Houdini, Cinema 4d, LuxRender и другие.

Компания KOLOROзанимается3D моделированием объектов различной сложности,созданием 3Д персонажей,предметной и товарной визуализацией. Мы создадим вам качественные точные модели, которые будут полностью функциональны и готовы к дальнейшему использованию — изготовлению прототипа модели.

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

Чтобы заказать услугу по 3Д моделированию, 3Д печати или мелкосерийному производству, Вам достаточно позвонить нам по тел. 057-760-26-05 или 099-618-87-50. Если же у вас есть готовая 3Д-модель объекта, для просчета стоимости печати на 3Д-принтере или изготовлению прототипа изделия присылайте файл в формате STL [email protected].

бесплатных 3D-моделей | CGTrader

Бесплатные 3D-модели, доступные для загрузки, от автомобилей до человеческих 3D-активов. Доступно несколько форматов файлов, включая MAX, OBJ, FBX, 3DS, STL, C4D, BLEND, MA, MB. Найдите профессиональные 3D-модели для любых проектов 3D-дизайна, таких как виртуальная реальность (VR), дополненная реальность (AR), игры, 3D-визуализация архитектуры или анимация. …Показать больше

Фильтр

Выбрать атрибут

Шоу Возраст+3D МОДЕЛИ ПРОДАЖА

Premium

  • PBR

 

$29.00

obj, fbx, blend, mtl

Premium

 

$200.00

ztl, zbp

Premium

 

$19.50

stl, obj, fbx , MTL

Premium

$ 399,99

OBJ, FBX, 3DM, MTL, DWG и More

Premium

  • PBR

$ 40,0019

, ABC, ABC, ABC, ABC, ABC, ABC, ABC, ABC, ABC.0003

Premium

  • PBR

 

$40.00

max, obj, fbx, mtl, abc and more

Premium

 

obj, fbx, 3ds, blend, dae and more

Premium

  • PBR

MAX, FBX, PDF, MAT, BLEND и More

Premium

MAX, OBJ, FBX, 3DS, MTL и More

Premium

OBJ, FBX, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL, MTL. stl

Премиум

  • Lowpoly
  • PBR

 

max, obj, fbx, ms, mtl

Premium

  • Rigged
  • Animated
  • Lowpoly

 

max, fbx, pdf, c4d, ma and more

Premium

 

max, obj, mtl

Premium

 

max, obj, mtl

Premium

 

obj, fbx, blend, mtl

Premium

  • Lowpoly
  • PBR

OBJ, FBX, GLTF, GLB, Blend и More

Premium

  • Animated
  • PBR

MAX, OBJ, MORTER MTSL и MOSE MTSLER

9

obj, fbx, mtl, blend

Premium

 

max, obj, fbx, 3ds, c4d and more

Premium

 

obj, blend, mtl

Premium

 

obj, fbx, 3ds, c4d, dae и другие

Premium

 

max, obj, 3ds, mtl

Premium

  • Lowpoly
  • PBR

 

max, obj, fbx, mtl

Premium

  • Rigged
  • Animated
  • PBR

obj, FBX, MTL, Blend

Premium

  • PBR

MAX, OBJ, FBX, MTL, STL

Premium

MAX, OBJ, FBX, FBX, FBX, FBX, FBX, FBX, FBX, FBX, FBX, FBX, FBX, FBX, OBJ, OBJ, OBJ, OBJ. 0003

Premium

  • Lowpoly
  • PBR

 

fbx

Premium

 

max

Premium

 

obj, fbx, stl, mtl, dae and more

Premium

  • Lowpoly
  • PBR

FBX

Premium

OBJ, FBX, 3DS, MTL, DAE и больше

Premium

  • PBR

  • PBR

    0002 obj, fbx, blend, mtl

    Premium

    • Animated
    • PBR

     

    max, obj, fbx, mtl, blend and more

    Premium

     

    max, fbx

    Premium

     

    MAX

    Premium

    • PBR

    MAX, OBJ, FBX, MTL, UnityPackage и More

    Premium

    Max, OBJ, FBX, MTL, SKP

    Max, OBJ, FBX, MTL, SKP

    Max, OBJ, FBX, MTL, SKP

    0015 PBR

 

max, obj, fbx, mtl

Premium

  • PBR

 

obj, fbx, blend, mtl

Premium

 

obj, fbx, gltf, glb, mtl and Подробнее

Premium

Max, OBJ, MTL

Premium

OBJ, FBX, Blend, MTL, DAE

Создание 3D -модели с захватом объектов — WWDC21 — Videos

.

♪ Играет басовая музыка ♪ ♪ Майкл Патрик Джонсон: Привет! Меня зовут Майкл Патрик Джонсон, и я инженер в команде захвата объектов.

Сегодня мы с моим коллегой Дейвом Маккинноном покажем вам, как превращать объекты реального мира в 3D-модели с помощью нашего нового API фотограмметрии в macOS.

Возможно, вы уже знакомы с созданием приложений дополненной реальности с использованием наших фреймворков ARKit и RealityKit.

Возможно, вы также использовали Reality Composer и Reality Converter для создания 3D-моделей для дополненной реальности.

А теперь, с помощью Object Capture API, вы можете легко превращать изображения реальных объектов в подробные 3D-модели.

Допустим, перед вами на кухонном столе лежит свежеиспеченная пицца.

Выглядит аппетитно, правда? Предположим, мы хотим запечатлеть пиццу на переднем плане в виде 3D-модели.

Обычно вам нужно нанять профессионального художника на много часов для моделирования формы и текстуры.

Но, подождите, вам потребовалось всего несколько минут, чтобы испечь в собственной духовке! С Object Capture вы начинаете фотографировать свой объект со всех сторон.

Затем вы копируете изображения на Mac, который поддерживает новый API захвата объектов.

Используя метод компьютерного зрения, называемый «фотограмметрия», набор 2D-изображений превращается в 3D-модель всего за несколько минут.

Выходная модель включает в себя как геометрическую сетку, так и различные карты материалов, и готова для добавления прямо в ваше приложение или просмотра в AR Quick Look.

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

Сначала вы фотографируете свой объект со всех сторон.

Изображения можно делать на iPhone или iPad, цифровую зеркальную камеру или даже дрон.

Вам просто нужно убедиться, что вы получаете четкие фотографии со всех сторон вокруг объекта.

Мы предоставим рекомендации по захвату позже в ходе сеанса.

Если вы снимаете на iPhone или iPad, мы можем использовать данные стереофонической глубины с поддерживаемых устройств, чтобы позволить восстановить фактический размер объекта, а также вектор силы тяжести, чтобы ваша модель автоматически создавалась с правой стороны.

После того, как вы создали папку с изображениями, вам необходимо скопировать их на свой Mac, где вы сможете использовать API захвата объектов, чтобы превратить их в 3D-модель всего за несколько минут.

API поддерживается на последних компьютерах Mac с процессором Intel, но будет работать быстрее всего на всех новейших кремниевых компьютерах Apple Mac, поскольку мы можем использовать Apple Neural Engine для ускорения наших алгоритмов компьютерного зрения.

Мы также предоставляем HelloPhotogrammetry — пример приложения командной строки, которое поможет вам начать работу.

Вы также можете использовать его непосредственно в папке с изображениями, чтобы попытаться построить модель для себя, прежде чем писать какой-либо код.

Наконец, вы можете просмотреть выходные модели USDZ прямо на своем Mac.

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

Уменьшенные, средние и полные детали готовы к использованию прямо из коробки, как пицца, показанная здесь.

Raw предназначен для пользовательских рабочих процессов.

Выбрав вывод USDZ на среднем уровне детализации, вы сможете просмотреть новую модель в AR Quick Look прямо на своем iPhone или iPad.

И это все, что нужно для создания реалистичных объектов, оптимизированных для дополненной реальности! О, подождите, помните пиццу раньше? Мы должны признаться.

Это изображение на самом деле не было фотографией, оно было создано с помощью захвата объектов на нескольких пиццах.

Затем эти модели были объединены в эту сцену в инструменте постобработки и визуализированы с использованием трассировки лучей с расширенными картами материалов.

Как видите, Object Capture может поддерживать различные целевые варианты использования, от приложений дополненной реальности на iPhone или iPad до готовых к съемкам производственных материалов.

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

В разделе «Начало работы» мы более подробно рассмотрим API захвата объектов и представим основные концепции кода для создания приложения.

Далее мы обсудим передовые методы захвата изображений, выбора объектов и выбора уровня детализации.

Начнем с основных этапов использования API в macOS.

В этом разделе вы узнаете об основных компонентах API захвата объектов и о том, как их объединить.

Допустим, у нас есть новые крутые кроссовки, которые мы хотим превратить в 3D-модель для просмотра в дополненной реальности.

Здесь мы видим графическую схему основного рабочего процесса, который мы рассмотрим в этом разделе.

В этом процессе есть два основных шага: Настройка, когда мы указываем на наш набор изображений объекта; а затем процесс, где мы запрашиваем создание моделей, которые мы хотим построить.

Сначала мы сосредоточимся на блоке Setup, который состоит из двух подшагов: создание сеанса и последующее подключение связанного с ним выходного потока.

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

Первое, что нам нужно сделать, это создать PhotogrammetrySession.

Для создания сеанса предположим, что у вас уже есть папка с изображениями объекта.

Мы предоставили несколько примеров папок захвата изображений в документации по API, чтобы вы могли быстро приступить к работе.

PhotogrammetrySession — это основной класс верхнего уровня в API и главная точка управления.

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

Здесь у нас есть 123 изображения кроссовок HEIC, сделанные с помощью iPhone 12 Pro Max.

В настоящее время существует несколько способов указать набор используемых изображений.

Самый простой — это просто URL-адрес файла в каталоге изображений.

Сеанс будет принимать их один за другим и сообщать обо всех возникших проблемах.

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

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

PhotogrammetrySample включает изображение и другие необязательные данные, такие как карта глубины, вектор силы тяжести или пользовательская маска сегментации.

После того, как вы создали сессию из источника ввода, вы будете делать запросы на реконструкцию модели.

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

Теперь, когда мы узнали, что такое сеанс, давайте посмотрим, как его создать с помощью API.

Здесь мы видим код для выполнения первоначальной настройки сеанса из папки изображений.

Сеанс PhotogrammetrySession находится в среде RealityKit.

Сначала мы указываем входную папку как URL-адрес файла.

Здесь мы предполагаем, что у нас уже есть папка на локальном диске, содержащая изображения наших кроссовок.

Наконец, мы создаем сеанс, передавая URL-адрес в качестве источника ввода.

Инициализатор выдаст ошибку, если путь не существует или не может быть прочитан.

При желании вы можете указать дополнительные параметры конфигурации, но здесь мы просто будем использовать значения по умолчанию.

Это все, что нужно для создания сеанса! Теперь, когда мы успешно создали объект сеанса, нам нужно подключить выходной поток сеанса, чтобы мы могли обрабатывать сообщения по мере их поступления.

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

Мы используем AsyncSequence — новую функцию Swift в этом году — для обеспечения потока выходных данных.

Выходные сообщения включают результаты запросов, а также сообщения о состоянии, такие как обновления хода выполнения.

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

Последовательность выходных сообщений не завершится, пока сессия активна.

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

Теперь давайте подробнее рассмотрим типы сообщений, которые мы будем получать.

После выполнения запроса мы ожидаем периодического получения сообщений requestProgress с оценкой доли выполненных запросов для каждого запроса.

Если вы создаете приложение, которое вызывает API захвата объектов, вы можете использовать их для управления индикатором выполнения для каждого запроса, чтобы указать статус.

После обработки запроса мы получаем сообщение requestComplete, содержащее результирующую полезную нагрузку, например модель или ограничивающую рамку.

Если во время обработки что-то пошло не так, вместо этого для этого запроса будет выведена ошибка requestError.

Для удобства после завершения обработки всех запросов в очереди выводится сообщение processingComplete.

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

Как только мы это получим, мы посмотрим, как запросить модель.

Вот код, создающий асинхронную задачу, которая обрабатывает сообщения по мере их поступления.

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

Мы используем цикл «for try await» для асинхронного перебора сообщений в session.outputs по мере их поступления.

Основная часть кода — это диспетчер сообщений, который включает вывод сообщения.

Вывод представляет собой перечисление с различными типами сообщений и полезной нагрузкой.

Каждый оператор case будет обрабатывать отдельное сообщение.

Давайте пройдемся по ним.

Во-первых, если мы получим сообщение о ходе выполнения, мы просто распечатаем значение.

Обратите внимание, что мы получаем сообщения о ходе выполнения каждого запроса.

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

Сейчас мы увидим, как сделать такой запрос.

Если запрос не выполнен из-за ошибки фотограмметрии, вместо этого мы получим сообщение об ошибке.

После завершения всего набора запросов от вызова процесса создается сообщение processingComplete.

Для приложения командной строки здесь можно выйти из приложения.

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

Вот и все для обработки сообщений! Эта задача обработки сообщений будет продолжать повторять и обрабатывать сообщения асинхронно до тех пор, пока существует сеанс.

Хорошо, давайте посмотрим, где мы находимся в нашем рабочем процессе.

Мы полностью завершили этап установки и готовы к работе.

Теперь мы готовы делать запросы на обработку моделей.

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

Существует три разных типа данных, которые вы можете получить из сеанса: ModelFile, ModelEntity и BoundingBox.

Эти типы имеют связанный регистр в перечислении Request: modelFile, modelEntity и bounds; каждый с разными параметрами.

Запрос modelFile является наиболее распространенным, и именно его мы будем использовать в нашем основном рабочем процессе.

Вы просто создаете запрос modelFile, указав URL-адрес файла с расширением USDZ, а также уровень детализации.

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

Для более сложных конвейеров постобработки, где могут потребоваться выходные форматы USDA или OBJ, вместо этого можно указать URL-адрес выходного каталога вместе с уровнем детализации.

Затем сеанс запишет файлы USDA и OBJ в эту папку вместе со всеми упомянутыми активами, такими как текстуры и материалы.

Приложение с графическим интерфейсом также может запрашивать RealityKit ModelEntity и BoundingBox для интерактивного предварительного просмотра и уточнения.

Запрос modelEntity также принимает уровень детализации и необязательную геометрию.

Запрос границ вернет расчетный объем захвата BoundingBox для объекта.

Это поле можно настроить в пользовательском интерфейсе, а затем передать в аргументе геометрии последующего запроса на настройку объема реконструкции.

Чуть позже мы увидим, как это работает.

Большинство запросов также имеют уровень детализации.

Уровень предварительного просмотра предназначен только для интерактивных рабочих процессов.

Очень низкое визуальное качество, но создается быстрее всего.

Основные уровни детализации в порядке возрастания качества и размера: Уменьшенный, Средний и Полный.

Все эти уровни готовы к использованию прямо из коробки.

Кроме того, уровень Raw предназначен для профессионального использования, и для его правильного использования потребуется рабочий процесс постобработки.

Мы обсудим их более подробно в разделе передового опыта.

Хорошо, теперь, когда мы увидели, какие типы запросов мы можем делать, давайте посмотрим, как это сделать в коде.

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

Здесь мы видим первый вызов процесса в сеансе.

Обратите внимание, что он принимает массив запросов.

Так мы можем запросить сразу две модели.

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

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

Вы даже можете запросить все уровни детализации одновременно.

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

Этот вызов возвращается немедленно, и вскоре в выходном потоке начнут появляться сообщения.

И это конец основного рабочего процесса! Вы создаете сеанс с вашими изображениями, подключаете поток вывода, а затем запрашиваете модели.

Время обработки каждой из ваших моделей будет зависеть от количества изображений и уровня качества.

После завершения обработки вы получите выходное сообщение о том, что модель доступна.

Вы можете открыть полученный файл USDZ кроссовок, которые вы создали, прямо на вашем Mac и просмотреть результаты в 3D под любым углом, включая низ.

Позже в этом уроке мы покажем вам, как добиться охвата всех сторон вашего объекта за один сеанс захвата, избегая необходимости объединять несколько захватов вместе.

Отлично выглядит! Теперь, когда вы ознакомились с основным рабочим процессом, мы дадим общий обзор более сложного интерактивного рабочего процесса, который также поддерживает API захвата объектов.

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

Во-первых, обратите внимание, что этап настройки и этап обработки на обоих концах этого рабочего процесса такие же, как и раньше.

Вы все равно создадите сеанс и подключите выходной поток.

Вы также будете запрашивать окончательные модели, как и раньше.

Однако обратите внимание, что мы добавили блок в середине, где представлен трехмерный пользовательский интерфейс для интерактивного редактирования модели предварительного просмотра.

Этот процесс повторяется до тех пор, пока вы не будете довольны предварительным просмотром.

Затем вы можете продолжить делать окончательные запросы модели, как и раньше.

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

Модель для предварительного просмотра имеет низкое визуальное качество и создается максимально быстро.

Вы можете запросить файл модели и загрузить его самостоятельно или напрямую запросить объект RealityKit ModelEntity для отображения.

Как правило, одновременно выполняется запрос границ для предварительного просмотра и редактирования тома захвата.

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

Вы также можете настроить корневое преобразование для масштабирования, перемещения и поворота модели.

Свойство геометрии запроса, которое мы видели ранее, позволяет предоставить объем захвата и относительное корневое преобразование до создания модели.

Выводит 3D-модель, готовую к использованию.

Давайте посмотрим на этот процесс в действии.

Здесь мы видим пример интерактивного приложения захвата объектов, которое мы создали с помощью API для демонстрации этого интерактивного рабочего процесса.

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

Затем мы нажимаем «Предварительный просмотр», чтобы запросить предварительную модель и предполагаемый объем захвата.

По прошествии некоторого времени появляется предварительная модель нашей скалы и ее объем захвата.

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

Мы можем настроить ограничивающую рамку, чтобы избежать реконструкции нижней части модели.

Когда мы довольны, мы нажимаем Refine Model, чтобы создать новый предварительный просмотр, ограниченный этим измененным томом захвата.

Это также оптимизирует выходную модель только для этой части.

Когда уточненная модель будет готова, появится новый предварительный просмотр.

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

Это полезно для удаления ненужных элементов в кадре, таких как пьедестал, удерживающий объект.

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

Через некоторое время полная детальная модель будет завершена и заменит предварительную модель.

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

Модель сохраняется в выходном каталоге и готова к использованию без необходимости какой-либо дополнительной постобработки.

Вот и все, что нужно для начала работы с новым API захвата объектов.

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

Мы увидели, как подключить асинхронный поток вывода для отправки сообщений.

Затем мы увидели, как одновременно запрашивать две модели с разным уровнем детализации.

Наконец, мы описали интерактивный рабочий процесс на примере приложения RealityKit GUI для ObjectCapture.

Теперь я передам слово моему коллеге Дэйву Маккиннону, который расскажет о лучших методах захвата объектов.

Дэйв Маккиннон: Спасибо, Майкл.

Привет, меня зовут Дэйв Маккиннон, я инженер, работающий в группе захвата объектов.

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

Сначала мы рассмотрим советы и рекомендации по выбору объекта с нужными характеристиками.

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

Далее мы рассмотрим, как использовать приложение CaptureSample.

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

Мы иллюстрируем использование этого приложения как для захвата с руки, так и для захвата с поворотного стола.

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

Первое, что нужно учитывать при сканировании, — это выбрать объект с нужными характеристиками.

Для достижения наилучших результатов выберите объект с достаточной детализацией текстуры.

Если объект содержит бестекстурные или прозрачные области, на результирующем скане может отсутствовать детализация.

Кроме того, старайтесь избегать объектов с сильно отражающими областями.

Если объект отражающий, вы получите наилучшие результаты, рассеивая свет при сканировании.

Если вы планируете переворачивать объект во время захвата, убедитесь, что он жёсткий и не меняет форму.

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

Сейчас мы продемонстрируем типичный процесс сканирования.

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

Базовый процесс включает в себя медленное перемещение вокруг объекта с однородным захватом его со всех сторон.

Если вы хотите реконструировать нижнюю часть объекта, переверните его и продолжайте снимать изображения.

При съемке старайтесь максимально увеличить часть поля зрения, захватывающую объект.

Это помогает API восстанавливать как можно больше деталей.

Один из способов сделать это — использовать портретный или ландшафтный режим в зависимости от размеров и ориентации объекта.

Также старайтесь поддерживать высокую степень перекрытия между изображениями.

В зависимости от объекта, от 20 до 200 изображений крупным планом должно быть достаточно для получения хороших результатов.

Чтобы помочь вам начать снимать высококачественные фотографии с глубиной и гравитацией на iOS, мы предоставляем приложение CaptureSample.

Это можно использовать в качестве отправной точки для ваших собственных приложений.

Написан на SwiftUI и является частью документации для разработчиков.

Это приложение демонстрирует, как делать высококачественные фотографии для захвата объектов.

Имеет ручной режим и режим затвора по времени.

Вы также можете изменить приложение для синхронизации с проигрывателем.

В нем показано, как использовать iPhone и iPad с двойной камерой для сбора данных о глубине и встраивания их прямо в выходные файлы HEIC.

Приложение также показывает, как сохранять данные гравитации.

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

Папки Capture сохраняются в папке «Документы» приложения, откуда их легко скопировать на Mac с помощью iCloud или AirDrop.

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

Вы также можете найти эту информацию в документации для разработчиков.

Для достижения наилучших результатов мы рекомендуем захват поворотного стола.

Чтобы начать работу, вам понадобится установка, как у нас.

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

Цель состоит в том, чтобы добиться равномерного освещения и избежать резких теней.

Для этого подойдет легкая палатка.

В этом случае приложение CaptureSample захватывает изображения, используя режим синхронизированного затвора, синхронизированный с движением поворотного стола.

Мы также можем перевернуть объект и сделать несколько проходов поворотным столом, чтобы захватить объект со всех сторон.

Вот результирующий файл USDZ из захвата поворотного стола, показанного в предварительном просмотре на macOS.

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

Для сканирования доступно множество различных настроек детализации вывода.

Давайте посмотрим.

Вот таблица уровней детализации.

Поддерживаемые уровни показаны слева.

Уменьшенный и Средний оптимизированы для использования в Интернете и на мобильных устройствах, таких как просмотр 3D-контента в AR Quick Look.

Они имеют меньше треугольников и материальных каналов и, следовательно, потребляют меньше памяти.

Модели Full и Raw предназначены для высокопроизводительного интерактивного использования, такого как компьютерные игры или рабочие процессы постпродакшна.

Они отличаются высокой геометрической детализацией и дают вам возможность выбирать между обожженными и необожженными материалами.

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

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

Оба уровня детализации, «Пониженный» и «Средний», содержат каналы материала PBR диффузного, нормального и окружающего затенения.

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

Однако, если вы хотите отобразить несколько сканов в одной и той же сцене, вам следует использовать настройку «Пониженная детализация».

Если вы хотите узнать больше о том, как использовать Object Capture для создания мобильных или веб-приложений дополненной реальности, см. сеанс «AR Quick Look, знакомство с Object Capture».

Экспорт с полным выходным уровнем — отличный выбор для профессиональных рабочих процессов.

В этом случае вы получаете максимально подробную информацию о вашем сканировании.

Full оптимизирует геометрию скана и запекает детали в материал PBR, содержащий информацию о Diffuse, Normal, Ambient Occlusion, Roughness и Displacement.

Мы думаем, что этот выходной уровень даст вам все необходимое для самых сложных рендеров.

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

Если вы хотите узнать больше о том, как использовать Object Capture для профессиональных рабочих процессов в macOS, см. раздел «Создание рабочих 3D-процессов с помощью USD».

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

Вот и все.

Давайте вспомним, что мы узнали.

Сначала мы рассмотрели на примере основные концепции API захвата объектов.

Мы показали вам, как создать сеанс захвата объектов и использовать этот сеанс для обработки вашей коллекции изображений для создания 3D-модели.

Мы показали вам пример того, как API может поддерживать приложение интерактивного предварительного просмотра, чтобы вы могли настроить объем захвата и преобразование модели.

Далее мы рассмотрели рекомендации по сканированию.

Мы обсудили, какие типы объектов использовать, а также среду, освещение и настройки камеры, которые дают наилучшие результаты.

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

Если вы хотите узнать, как добавить Object Capture в свое собственное приложение, ознакомьтесь с приложениями для захвата iOS и CLI для обработки macOS, чтобы начать работу.

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

Кроме того, ознакомьтесь с подробной документацией по передовым методам онлайн на сайте developer.apple.com, а также с соответствующими сеансами WWDC.