Разное

Видео 3d моделирование: Видео-урок 3D моделирования в Blender 3.2. Учимся 3D моделированию вместе с 3DTool. Часть 2

видео тутор | Компьютерная графика. За кулисами CG. 3D моделирование

видео тутор

В этот раздел я размещаю полезные видео туторы на 3D тематику.

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

Правило звучит так: «не собирать видеоуроки ни в каком виде».

Всё дело в том, что раньше, еще когда я только начинал заниматься 3D, я качал и складировал у себя на винте всевозможных видео уроки на будущее. Твёрдо веря, что это мне пригодится. Не пригодилось! Ни разу!

Также я знаю, что многие занимаются тем, что собирают закладки на видео уроки или, к примеру, оставляют их у себя на стенах социальных сетей, или добавляют в список посмотреть позже на vimeo или youtube. И таким я тоже страдал. Воспользовался ли я такими видеоуроками? Да. Но в этот раз лишь для того, чтобы скинуть эту ссылку моему читателю, который спрашивает что-то типа: «Не встречали ли вы хороших видеотуторов по ###### теме?»

Есть еще один экзотический способ собирания видео туторов — у себя в голове.

Этим я страдаю и сейчас, но уже есть прогресс. Я это делаю всё реже и реже.

Объясню как это НЕ работает. Когда вы смотрите видео тутор на будущее (с надеждой, что вы сейчас посмотрите, а знания, полученные из этого урока, сможете применить когда-то потом), то когда через месяц приходит это самое будущее — вы уже напрочь забываете содержимое того урока.

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

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

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

Обзор 3D-полезностей Комментарии к записи 3d новости за день: как сделать хороший 3D шоурил, 3D конкурс по моделированию, как моделить кулак в ZBrush отключены

Под катом 6 новостей.

Менеджеры по поиску талантов известной студии Mill дают советы по созданию хорошего рила для ваших 3D работ (перевод):

Читать далее »

Внутри куча 3D вкусняшек.

Начнём с последнего трейлера к последней части Хоббита, а закончим самым интересным:

Читать далее »

Обзор 3D-полезностей Комментарии к записи 3D вкусняшки за день: что нового в VRay 3 для Maya, 3D проекция в воздухе, BabyX 3, макияж в Nuke, мягкая инверсная кинематика отключены

Под катом семь вкусняшек.

Читать далее »

Обзор 3D-полезностей Комментарии к записи 3D вкусняшки за день: летающая машина в Unity, VFX Амбиции, ошибки аниматоров, о безопасности от Питера Джексона, Интерстеллар отключены

Внутри пять 3D вкусняшек.

Урок по созданию летающей 3D машины с физикой на игровом движке Unity:

Читать далее »

Стр. 1 из 6 1 2 3 … 5 6 Старые

Добавление 3D объектов в видео / Хабр

Сегодня мы рассмотрим один из способов совмещения 3D графики и видео. Для этого нам потребуется:

  • Видео
  • Программа Adobe After Effects (я буду демонстрировать на версии CC 2017)
  • Плагин Element 3D
  • Необходимая 3D модель

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

Для начала открываем Adobe After Effects. В появившемся окне нажимаем

Новый проект…



Далее нам необходимо импортировать наше видео в которое будем добавлять 3D графику. Файл > Импорт > Файл… > Выбираем видео.

Импортировавший файл перетащите в окно timeline.

Теперь нужно сделать трекинг точек к которым будет привязываться 3D модель. Обязательно кликаем на видео в окне timeline, чтобы программа поняла с каким элементом мы будем работать. Затем в окне Инспектор выбираем Отслеживание камеры. Если окна Инспектор у вас нет, просто активируйте его через вкладку Окно.

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

Как только программа закончила просчет нам нужно выбрать минимум 3 наиболее удачные точки, которые находятся на необходимой нам плоскости, то есть на той поверхности где и будет находиться 3D графика. Если провести курсором мыши по всем точкам, то можно заметить что программа автоматически будет предлагать различные связки из трех рядом находящихся «маркеров». Выберите один из вариантов, кликнув на пространство между точками, после чего они должны выделиться желтым цветом. Затем кликаем правой кнопкой мыши по той же плоскости и нажимаем

Создать пустые и камеру (Слой у меня подписан как Отслеживать пустые 1).

Теперь к только что созданному Пустому объекту (Отслеживать пустые 1) можно привязать 3D графику, которая будет четко следовать за плоскостью, плотно «прибитыми» точками к нужной нам поверхности. Для работы с 3D графикой, мы будем использовать плагин Element 3D, благодаря которому можно импортировать в After Effects нужную вам модель.

Создадим сплошной слой. Кликаем правой кнопкой мыши по пустому пространству в окне timeline, выбираем Создать > Сплошная заливка… > ок.

Применяем на сплошной слой эффект Element 3D. Во вкладке Эффекты и шаблоны, выполняем поиск по запросу Element и перетаскиваем его на Сплошной слой.

Нажимаем на сплошной слой. В окне Элементы управления эффектами кликаем Element > Scene Intreface > Scene Setup.

В появившемся окне выбираем нужную нам модель.

Далее нам необходимо привязать 3D модель к заранее созданному нами Пустому объекту. Но для начало создадим Пустой объект и для 3D модели тоже. Раскрываем вкладку Group 1, в окне Элементы управления эффектами, так как в нашем случае 3D модель находиться именно в этой группе. Затем, под вкладкой

Create Group Null, нажимаем Create (Слой у меня подписан как Group 1 Null).

Далее нам нужно привязать Пустой объект модели к Пустому объекту видео. Зажимаем Shift, и левой кнопкой мыши перетаскиваем значок спирали, находящийся рядом с только что созданным слоем для 3D модели (Group 1 Null), на слой с Пустым объектом видео (Отслеживать пустые 1).

Скорее всего, объект уменьшиться после этой процедуры. Просто увеличим его и переместим в нужное место с помощью параметров находящиеся во вкладке Group 1. Во вкладке Group 1 раскройте Particle Replicator > Rotation. Изменяя там параметры, вы сможете перемещать и крутить ваш объект в нужное вам положение. Затем раскройте вкладку Particle Look для изменения размера 3D объекта.

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

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

Создание 3D-моделей с помощью захвата объектов — WWDC21 — Видео

Скачать

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

Сегодня мы с моим коллегой Дэйвом Маккинноном покажем вам, как превращать объекты реального мира в 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 Silicon 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.

Единственное, что вам остается, это выйти и использовать Object Capture для собственных сканирований.

Мы рады видеть, какие объекты вы будете сканировать и делиться ими.

Как сделать 3D-анимацию: удобное руководство

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

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

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

Производство 3D-анимационного видео

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

В 3D-анимации художник должен быть не только артистичным, но и очень техничным.

Наиболее распространенными 3D-программами, используемыми в отрасли, являются Autodesk 3DS Max, Autodesk Maya, Cinema 4D и Blender. Эти программы по отдельности способны работать с 3D-проектом, но результатов может быть недостаточно, чтобы соответствовать ожиданиям существующих отраслевых стандартов.

3D-художники предпочитают использовать Zbrush, Substance painter и внешние плагины для рендеринга, такие как Vray и Arnold, для достижения лучших и более реалистичных результатов.

Создание 3D-анимационного видео

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

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

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

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

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

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

Текстурирование

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

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

Для детального текстурирования 3D-модели сначала выравниваются. Этот процесс известен как УФ-развертка. Все стороны 3D-модели выравниваются в 2D, что позволяет рисовать на ней.

Сглаженные UV-развертки перемещаются в специализированные программы для рисования, такие как Photoshop или Substance Painter, с которыми в наши дни предпочитают работать большинство художников по текстурированию, поскольку они предлагают гораздо больше контроля и возможностей. Здесь закрашиваются детали поверхности, такие как царапины, грязь, ржавчина и т. д. 

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

Оснащение 

Процесс оснащения представляет собой подготовку 3D-модели для анимации. Это можно понимать как добавление строк к марионетке.

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

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

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

Анимация

Как аниматор, вы оживляете созданную модель. Вы можете добавить выражения движения и сделать 3D-модель живой.

Это все равно, что управлять нитками марионетки и заставлять ее исполнять последнее представление. Принципы анимации такие же, как и у 2D-анимации, но управление и анимация персонажа в 3D-пространстве — это другая задача.

Динамика и симуляции

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

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

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

Освещение и визуализация 

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *