Version: 2018.4
Mesh Components
Материал

Meshes

Meshes составляют большую часть создаваемых вами трёхмерных миров. Unity не имеет встроенных инструментов для моделирования геометрии, разве что за исключением некоторых плагинов Asset store. Но несмотря на это, Unity поддерживает работу со многими пакетами трёхмерной графики. Unity также поддерживает работу с мешами, которые состоят как из трёхсторонних, так и из четырёхсторонних полигонов. Неоднородные рациональные безье-сплайны (Nurbs), неоднородные рационально сглаживаемые сетки (Nurms) а также высокополигональные поверхности должны быть конвертированы в полигоны.

Textures

При импорте меша, Unity попытается используя свой метод поиска, автоматически найти текстуры, используемые им. Сперва импортёр начнёт искать подпапку Textures, внутри папки с мешем или в папках уровнем выше. Если это не поможет, тогда по всей структуре проекта будет выполнен глобальный поиск всех имеющихся текстур. Конечно данный метод поиска значительно медленнее обычного и его главным недостатком является то, что в результатах поиска может появиться две и более текстур с одинаковым названием. В таком случае нет гарантий того, что нужная текстура будет найдена.

Place your textures in a Textures folder at or above the assets level
Place your textures in a Textures folder at or above the asset’s level

Material tab of the Import Settings window

Material Generation and Assignment

Для каждого импортированного материала, Unity применит следующие правила:-

Если генерация материала отменена (иначе говоря если галочка Import Materials не выставлена), тогда будет назначен материал по-умолчанию. Если же генерация была включена, тогда произойдёт следующее:

  • Unity будет использовать название для своего материала, основываясь на значении параметра Material Naming
  • Unity попытается найти существующий материал с таким именем. Область поиска для поиска материала задаётся при помощи параметра Material Search
  • Если Unity удастся найти существующий материал, тогда он будет использован в импортированной сцене, если же нет, тогда будет создан новый материал

Colliders

В Unity используется два основных типа коллайдеров: Mesh Colliders и Primitive Colliders. Меш коллайдеры - это те компоненты, которые используют для себя данные импортированного меша и могут быть применены для создания столкновений с окружением. Когда вы в настройках импорта (Import Settings) активируете опцию Generate Colliders, меш коллайдер автоматически добавится в сцену вместе с импортированным мешем. Он будет рассматриваться как цельный до тех пор, пока он будет работать в контексте использования физической системой.

При перемещении своего объекта по сцене (к примеру машины), вы не можете использовать меш коллайдеры. Вместо этого, вам необходимо использовать примитивные коллайдеры. В этом случае вам необходимо отключить опцию Generate Colliders.

Animations

You can import animations from a Model file. Follow the guidelines for exporting FBX files from your 3D modeling software before importing it into Unity.

Normal mapping and characters

Если у вас есть модель персонажа с наложенной на него картой нормалей, взятой с высокополигональной модели, тогда вам необходимо будет импортировать в сцену версию модели для игры с Smoothing angle в 180 градусов. Таким образом можно предотвратить появление странно выглядящих швов в местах сочленения модели. Если же швы всё ещё останутся даже после применения данных настроек, тогда активируйте опцию Split tangents across UV seams.

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

Blendshapes

Unity has support for BlendShapes (also called morph-targets or vertex level animation). Unity can import BlendShapes from .FBX (BlendShapes and controlling aninimation) and .dae (only BlendShapes) exported 3D files. Unity BlendShapes support vertex level animation on vertices, normals and tangents. Mesh can be affected by skin and BlendShapes at the same time. All meshes imported with BlendShapes will use SkinnedMeshRenderer (no mater if it does have skin or not). BlendShape animation is imported as part of regular animation - it simply animates BlendShape weights on SkinnedMeshRenderer.

Есть два способа импорта форм смешивания с нормалями:

  1. Если установить режим импорта Normals в положение Calculate, тогда для мешей будет использоваться та же последовательность просчёта нормалей что и для форм смешивания.
  2. Экспортируйте информацию о группах сглаживания в исходный файл. Таким образом Unity просчитает нормали из групп сглаживания как для меша, так и для форм смешивания.

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

Hints

  • Слейте между собой как можно больше мешей в единое целое. И сделайте так, чтобы они использовали одни и те же материалы и текстуры. Это должно дать хороший прирост в производительности.
  • Если в процессе работы в Unity вам придётся довольно часто сталкиваться с настройкой своих объектов, (применяя к ним физику, скрипты и другие полезности) то, чтобы в дальнейшем избавить себя от лишней головной боли, вам следует заранее позаботиться о правильном именовании своих объектов в том трёхмерном приложении, в котором они изначально были созданы. Потому как работать с большим количеством объектов, имеющих названия вроде pCube17 или Box42 мягко говоря не очень удобно.
  • Работая в своём трёхмерном приложении старайтесь располагать свои модели в центре мировой системы координат. В дальнейшем это упростит их размещение в Unity.
  • Если вершины меша изначально не имеют своих цветов, то при первом рендере Unity автоматически назначит всем вершинам белый цвет.

The Unity Editor shows too many vertices or triangles (compared to what my 3D app says)

Так и есть. На что вы действительно должны обратить внимание, так это на то, какое количество вершин/треугольников на самом деле было послано для просчёта на графический процессор (GPU). В отличие от случаев, где материал требует, чтобы эти данные посылались на GPU дважды, такие вещи как твёрдые-нормали (hard-normals) и несмежные UV развёртки(non-contiguous UVs) намеренно отображают гораздо большее количество вершин/треугольников, чем есть на самом деле. В контексте UV и 3D пространства треугольники должны располагаться смежно, чтобы сформировать собой границу, поэтому при уменьшении количества треугольников на UV-швах, которые и должны были образовать собой границу и возникает эффект мнимого увеличения их количества.


Mesh Components
Материал
Copyright © 2020 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961