Основная функция 3D файла — хранить информацию о 3D модели в формате, понятном компьютеру, будь то обычный текст или двоичные данные.
В частности, они могут хранить сведения о четырех ключевых особенностях 3D модели, хотя стоит иметь в виду, что вы можете не использовать все четыре возможности во всех проектах, и не все форматы файлов поддерживают все четыре функции!
Четыре ключевые особенности, которые может хранить 3D файл:
Геометрия модели;
Текстура поверхности модели;
Детали сцены;
Анимация модели.
Прежде чем мы рассмотрим каждую из этих функций и то, как они используются, давайте кратко рассмотрим типы 3D файлов.
Существуют буквально сотни различных форматов 3D файлов, и у каждого есть своя причина для существования и использования! Однако большинство типов файлов можно разделить на две категории: проприетарные (закрытые) и нейтральные.
Проприетарные
Это такие типы файлов, как DWG от AutoCAD или BLEND от Blender. Они созданы специально для использования с определенным программным обеспечением, что дает им некоторые очевидные преимущества, поскольку они оптимизированы для работы с этим ПО. Это, как правило, делает процесс проектирования немного более быстрым и гладким.
Недостатки могут быть менее очевидны, но их тоже стоит учитывать. Поскольку тип файла является проприетарным, он с меньшей вероятностью будет работать с другим программным обеспечением. Например, если вы используете Blender, а человек, с которым вы хотите сотрудничать, использует AutoCAD, он не сможет открыть и работать с файлами BLEND, которые вы ему отправите!
Здесь на помощь приходит второй тип форматов файлов.
Нейтральные
Нейтральные форматы файлов работают кроссплатформенно, то есть вы можете создать файл в одной программе, отправить его кому-то, кто использует другое программное обеспечение, и он сможет работать с тем же файлом! Нейтральные форматы также предлагают отличный способ использовать преимущества проприетарных форматов и обойти проблему кроссплатформенной совместимости. К нейтральным форматам относятся STL, OBJ, 3MF и многие другие.
Если взять тот же пример, что и выше, где у вас есть файл BLEND, который вы хотели бы отправить соавтору для работы в AutoCAD, вы можете использовать оптимизированный формат BLEND во время работы над ним, а затем экспортировать свою модель как нейтральный тип файла, например OBJ, потому что большинство CAD-программ, включая Blender, поддерживают OBJ.
Затем ваш соавтор сможет взять этот нейтральный тип файла и без проблем открыть его в AutoCAD. Позже он даже сможет сохранить его как DWG, еще больше используя преимущества оптимизации для этого формата!
Ранее мы кратко упоминали, что 3D файл может хранить четыре ключевые особенности: геометрию модели, текстуру поверхности модели, детали сцены и любую анимацию модели.
Давайте углубимся в каждую из этих функций и рассмотрим, зачем может понадобиться хранить эту информацию и как это может повлиять на выбор типа файла!
Каждая 3D модель имеет уникальную геометрию, и возможность хранить эту геометрию является самой базовой функцией любого формата 3D файла.
Существует три способа кодирования геометрии поверхности, каждый со своими сильными и слабыми сторонами. Это аппроксимирующая сетка, точная сетка и конструктивная сплошная геометрия (CSG).
Одна и та же тесселированная модель с высоким (слева) и низким (справа) количеством полигонов.
При кодировании аппроксимирующей сеткой поверхность 3D модели покрывается сеткой из крошечных полигонов (обычно треугольников). Этот процесс также известен как «тесселяция», и поэтому такие форматы файлов также называются тесселированными форматами.
Полигоны аппроксимируют гладкую геометрию поверхности вашей модели, что означает возможную потерю точности в геометрии модели. Как правило, точность можно повысить, используя больше полигонов, но это также приведет к увеличению размера файла, поэтому эти форматы лучше всего подходят для приложений, где не требуется модель с очень высоким разрешением.
Хорошим примером является 3D печать. 3D принтеры не могут печатать с разрешением выше определенного, поэтому такой тип файла идеально подходит для этой задачи. Фактически, самый популярный формат файлов для 3D печати, STL, является тесселированным форматом.
Область NURBS (зеленая), заданная 36 контрольными точками (красные)
Для тех ситуаций, где аппроксимирующая или тесселированная сетка недостаточно точна, у нас есть точная сетка.
Вместо полигонов в точных форматах файлов используются поверхности, сформированные с помощью неоднородных рациональных B-сплайнов (NURBS) — компьютерной математической модели. Эти параметрические поверхности состоят из небольшого числа взвешенных контрольных точек и набора параметров, называемых узлами. Из узлов поверхность может быть математически вычислена путем плавной интерполяции по контрольным точкам.
В результате получаются поверхности, которые выглядят гладкими в любом масштабе и могут воспроизводить мельчайшие детали 3D модели с абсолютной точностью. Однако, хотя точная сетка точна при любом разрешении, она рендерится гораздо медленнее!
Объединение кубов и цилиндров для создания новых составных форм
Последний метод хранения геометрии поверхности называется CSG. Используя этот метод, конструкция строится поэтапно из примитивных форм, которые объединяются с помощью булевых операций, таких как объединение, пересечение и вычитание.
CSG очень удобна для пользователя, так как вы можете строить свою модель по частям из знакомых форм. Она также имеет преимущество в том, что каждый отдельный шаг редактирования сохраняется в формате 3D файла, так что вы можете отменить или повторить любой шаг в любое время.
Вторая по распространенности функция, хранящаяся в форматах 3D файлов, — это внешний вид поверхности.
Есть некоторые приложения (3D печать — яркий тому пример), где это не нужно, потому что требуется только геометрия формы. Однако во многих приложениях внешний вид 3 -модели имеет большое значение. Например, никто не хочет играть в видеоигры, используя модели без текстур и цвета.
Как и в случае с геометрией, информация о внешнем виде поверхности модели может быть закодирована разными способами.
При текстурной развертке каждая точка поверхности 3D модели (или полигональной сетки) сопоставляется с двумерным изображением.
Координаты 2D изображения имеют такие атрибуты, как цвет и текстура, и при рендеринге 3D модели каждой точке поверхности присваивается координата. Сначала отображаются вершины сетки, а затем остальным точкам присваиваются координаты путем интерполяции между координатами вершин.
Большинство форматов 3D файлов поддерживают текстурную развертку, хотя 2D изображение, содержащее информацию о текстуре, иногда хранится в отдельном файле, в зависимости от формата.
Другой распространенный способ хранения информации о текстуре — присвоение каждой грани сетки набора атрибутов. Общие атрибуты включают цвет, текстуру и тип материала. Кроме того, поверхность может иметь зеркальную составляющую, указывающую цвет и интенсивность истинных зеркальных отражений источников света и других близлежащих поверхностей.
Поверхности также могут быть прозрачными или полупрозрачными, что кодируется пропускающей составляющей, описывающей цвет и интенсивность света, проходящего через поверхность. Прозрачные поверхности обычно искажают проходящий через них свет, и это искажение может быть представлено свойством, называемым «показателем преломления», которое определяется типом материала модели.
Информация о сцене описывает расположение 3D модели с точки зрения камер, источников света и других близлежащих 3D моделей.
Расположение и параметры любых камер, а также детали расположения источников света, их интенсивность и цвет могут храниться в самом 3D файле. Также иногда сохраняется пространственная связь между 3D моделью и другими моделями. Это особенно важно, если модель состоит из нескольких частей, которые должны быть определенным образом расположены для создания сцены.
Стоит отметить, что большинство форматов 3D файлов не поддерживают информацию о сцене. Часто эта информация просто не нужна и будет без необходимости увеличивать размер файла. Однако для тех приложений, где это важно, например, в производстве видеоигр, это абсолютно необходимо!
Как и в случае с деталями сцены, не все форматы файлов позволяют хранить анимацию. Однако есть несколько форматов, которые хранят данные анимации для приложений, где это необходимо, например, в дизайне видеоигр или кинопроизводстве, где анимация активно используется.
Самый популярный способ анимации 3D модели называется «скелетной анимацией». При скелетной анимации каждая модель имеет базовый «скелет», состоящий из виртуальных «костей», и движение костей, находящихся выше в иерархии, влияет на кости, находящиеся ниже. Это похоже на человеческое тело, где движение берцовой кости влияет на положение пальцев ног.
Виртуальные кости также соединены «суставами», которые ограничивают движение кости. Это опять же похоже на человеческое тело — локоть может вращаться только вокруг определенной оси, в то время как шаровой шарнир между бедром и тазом допускает полное вращение.
Итак, как же на самом деле выбрать лучший формат файла для вас и вашего проекта? Это непростая задача, когда есть буквально сотни форматов на выбор!
Во второй части статьи мы более подробно рассмотрим 10 самых популярных форматов 3D файлов, но, размышляя о том, какой из них подходит именно вам, мы рекомендуем учитывать следующие три вопроса.
Нет смысла тратить место для хранения, записывая ненужную информацию, поэтому сначала подумайте, действительно ли вам нужно хранить детали сцены, анимацию или текстуры поверхности, или же вам нужна только геометрия.
Выберите максимально простой формат, насколько это практично для вашего проекта, и выбирайте формат, соответствующий вашему случаю использования, вместо того чтобы усложнять процесс без необходимости.
Знакома ли вам одна программа лучше, чем другая? Возможно, вы мастер в Tinkercad, но менее искусны в Maya?
Используйте свои сильные стороны и выбирайте формат файла, совместимый с выбранным вами ПО для моделирования. 3D моделирование может быть достаточно сложным и без необходимости работать с совершенно новым ПО.
Также стоит подумать, есть ли у вашего предпочтительного программного обеспечения проприетарный формат файла, так как, возможно, стоит воспользоваться преимуществами любой оптимизации!
Если вы знаете, что ваша модель будет использоваться в другой программе или для других приложений, вы можете сохранить ее в кроссплатформенном формате, чтобы обеспечить легкое взаимодействие. Один из многих нейтральных форматов может быть хорошей идеей.
Также стоит учитывать, что вы сами можете захотеть использовать этот файл для чего-то еще в будущем. Если вы хотите, например, распечатать свою модель на 3D принтере, возможно, стоит сохранить ее в формате, который распознает ваш слайсер, например STL или 3MF.
Помните, что вы всегда можете конвертировать форматы файлов, хотя иногда могут возникать непредвиденные побочные эффекты, такие как потеря детализации. Всегда лучше, если вы сможете выбрать правильный формат с самого начала.
Выбор подходящего формата 3D файла - достаточно сложная задача, которая зависит от нескольких факторов. Для выбора правильного формата необходимо определить его назначение и объем данных, которые он будет хранить. Стоит учесть, что не все форматы могут обеспечить хранение данных об анимации или текстурах.
В DigitalCraft3D мы занимаемся подготовкой 3D файлов для ваших проектов. Узнайте больше о возможностях 3D моделирования у менеджера DC3D!
Вы подписаны на нашу рассылку.