Главная страница » Как отзеркалить объект в блендере

Как отзеркалить объект в блендере

  • автор:

Модификатор Mirror

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

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

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

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

Ключевыми настройками являются оси (Axis), вдоль которых происходит отражение объекта. То есть воображаемая плоскость симметрии перпендикулярна выбранной оси.

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

Отсюда следует, что перед тем, как применять модификатор Mirror, обычно изменяют положение центральной точки. Для этого надо установить 3D-курсор в желаемое место и в контекстном меню выбрать Set Origin → Origin to 3D Cursor.

Нередко центральную точку устанавливают в позицию одной из вершин объекта. Для этого надо выделить эту вершину в режиме редактирования. Нажать Shift+S и выбрать Cursor to Selected. После этого 3D-курсор будет установлен на место вершины. Далее в объектном режиме переместить центральную точку к курсору, как описано в предыдущем абзаце.

При использовании модификатора Mirror отражение происходит вдоль локальных, а не глобальных осей. Если объект не поворачивался (R), то эти оси совпадают. После поворота обычно это уже не так. Чтобы увидеть локальные оси объекта, надо из списка ориентаций, расположенного в заголовке 3D Viewport, выбрать Local (локально) и включить инструмент перемещения.

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

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

Этот факт может применяться не только как самостоятельное явление, но также в случае, если локальные оси объекта не совпадают с глобальными, а отразить надо вдоль глобальной оси. Тогда можно использовать объект, который не был повернут. В этом случае бывает полезен объект-пустышка (Shift+A → Empty → Arrows), который не имеет "физического" воплощения и служит для вспомогательных целей.

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

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

Практическая работа

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

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

Первая проблема решается модификатором Mirror, вторая – созданием группы вершин.

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

Добавим на сцену цилиндр. С помощью масштабирования (S) зададим ему желаемую форму. Цилиндр – это половина рукоятки гантели.

Сразу установим точку центра масс цилиндра у его нижнего основания. Проще не помещать туда 3D-курсор, а оставить его в центре сцены и приподнять цилиндр по оси Z. Далее в контекстном меню выбрать Set Origin → Origin to 3D Cursor.

Теперь переключимся в режим редактирования. Перед тем как добавлять сферу создадим группу для ее вершин. Для этого надо перейти на вкладку Object Data редактора свойств и в панели Vertex Groups с помощью кнопки с плюсом добавить новую группу. Группу можно переименовать.

Теперь добавим сферу и, не снимая выделения, присвоим (Assign) ее вершины группе. В дальнейшем, если потребуется править сферу, следует выбрать группу и нажать Select. Будут выделены вершины группы. Если нужно будет править цилиндр: выделить все (A), затем нажать Deselect для группы Ball. Также можно создать отдельную группу для вершин цилиндра.

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

Осталось применить модификатор Mirror с отражением по оси Z (в объектном режиме).

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

Обратите внимание, в данном случае не надо применять (Apply) модификатор. Иначе вторая половинка станет не "виртуальной", а реально продублируется. В режиме редактирования вы будете видеть ее вершины, ребра, грани.

Курс с инструкционными картами к части практических работ:
android-приложение, pdf-версия

Mirror

Данный модификатор позволяет отразить меш вдоль локальных осей X, Y и/или Z, через Object Origin (центральная точка объекта). Также можно использовать другой объект как центр отражения, тем самым использовать локальные оси данного объекта.

Mirror

Настройки

  • Axis – оси X, Y, Z, вдоль которых происходит зеркальное отражение, т.е. перпендикулярная ось к плоскости симметрии отражения. Как используются оси при направлении отражения? Если вы отражаете по оси X, положительные значения этой оси оригинального меша станут отрицательными значениями X на отраженной стороне. Вы можете выбрать более чем одну ось, и получить больше отраженных копий. При выборе одной оси, вы получите одно отражение, двух – четыре, а при выборе 3 осей – восемь отражений.
  • Bisect – если меш находится с обоих сторон плоскости отражения, произойдет обрезка по этой плоскости, и только одна сторона (отрицательная сторона по умолчанию) сохранится для отражения.
  • Flip – когда Bisect включена по оси, вы можете использовать эту опцию для того, чтобы поменять сторону которая останется, для ее дальнейшего отражения (т.е. когда эта опция включена, положительная сторона останется, а отрицательная будет обрезана).
  • Mirror Object – выбор объекта (обычно empty (пустышка)), чье положение и вращение будет использоваться для определения плоскости отражения. Таким образом можно анимировать эффект отражения.
  • Vertex Groups – пробует отразить существующую группу вершин. Интересная фича, но имеет очень специфичные особенности.
  • Группа вершин, которую вы хотите отразить должна быть названа, следуя обычному левый/правый шаблону (т.е. должны быть суффиксы, например, “.R”, “.right”, “.L” и другие)
  • Отраженная группа вершин должна быть создана заранее (она не создастся автоматически). И она должна быть пустой (т.е. не должно быть назначено вершин в это группу).
  • Merge – когда вершины в том же месте (в пределах Merge Limit), что и отраженные, они будут объединены.
  • Merge Limit – максимальное расстояние между вершиной и ее отраженной копией, при котором они будут объединяться (будучи привязаны к плоскости отражения). Требуется включенная опция Merge.
  • Clipping – предотвращает движение вершин сквозь плоскость/и отражения, пока пользователь двигает вершины в Edit mode. Если эта опция включена, но вершины вне плоскости отражения и за пределами Merge Limit, вершины не будут объединены. Но как только вершины окажутся в пределах Merge Limit, они схлопнутся, и их нельзя будет перемещать вне плоскости отражения.

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

  • Flip UV – с включенной данной опцией вы можете отразить UV текстурные координаты вдоль центра изображения. Например, если у вас есть вершины с UV координатами 0.3, 0.9, их отраженные копии будут иметь UV координаты 0.7, 0.1.
  • UV Offsets – значение, на которое будут смещены отраженные UV острова по осям U/V. Это полезно для запекания (оверлапы UV островов могут привести к артефактам на запекаемой карте), таким образом, что UV острова могут быть вынесены за пределы изображения, и не будут использованы для запекания, но все еще будут использовать текстуру.

Советы

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

Точное позиционирование плоскости отражения

При работе с этим модификатором, обычной ситуацией является перемещение центральной точки объекта на ребро или грань, для того, чтобы использовать их как ось отражения. Иногда это может быть сложно. Хороший способ, для точного позиционирования, это выбрать ребро, затем использовать Cursor to Selection. Затем использовать Set Origin → Origin to 3D Cursor. Это переместит центральную точку объекта к 3D курсору, а вместе с ней и плоскость отражения.

Еще можно использовать пустышку как Mirror Object, и переместить его в нужное положение.

Зеркальные отражения¶

Mirror reflections are computed in the Blender Render and Cycles Renderers using ray tracing. (n.b. Reflections are not available in the Game Engine). Ray tracing can be used to make a material reflect its surroundings, like a mirror. The principle of ray-traced reflections is very simple: a ray is fired from the camera and travels through the scene until it encounters an object. If the first object hit by the ray is not reflective, then the ray takes the color of the object. If the object is reflective, then the ray bounces from its current location and travels up to another object, and so on, until a non-reflective object is finally met and gives the whole chain of rays its color.

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

Если вы хотите использовать отражения с трассировкой лучей, вам следует включить трассировку лучей в настройках сцены. Это делается на панели Визуализация ‣ Затенение ( Render ‣ Shading ).

Цвет зеркала на панели «Отражение» служит для выбора цвета отражённого света. Для обычных зеркал, как правило, следует использовать белый цвет. Тем не менее, некоторые зеркала (например, металлы) окрашивают отражения, поэтому вы можете поменять цвет, нажав на виджет. Степень зеркальности отражения определяется значением зеркальности. Если она превышает 0, зеркальные отражения будут активированы, а отражение будет окрашено в выбранный цвет.

Параметры¶

../../../../_images/render_blender-render_materials_properties_mirror_panel.png

The Mirror panel.

../../../../_images/render_blender-render_materials_properties_mirror_color.png

Выбор цвета зеркала

../../../../_images/render_blender-render_materials_properties_mirror_raymirror-example.jpg

Suzanne in the Fun House (blend-file).

Глянцевое покрытие красок очень гладкое и блестящее. Плоское, низко-блескучее покрытие рассеивает свет и даёт очень размытое отражение. Кроме того, неровная или парафинированная-но-зернистая поверхность (вроде автомобильной краски) не идеальна, и поэтому её блеск должен быть чуть ниже 1.0. В примере справа, левое зеркало имеет блеск 0.98, среднее зеркало – 1.0, а правое – 0.90. Используйте этот параметр для создания реалистичного отражения, вплоть до совершенно затуманенного зеркала. Также вы можете использовать это значение для имитации в зеркалах глубины резкости.

Величина Блеск отражения. Значения < 1.0 дают диффузные, размытые отражения и активируют нижеописанные параметры. Порог Порог для адаптивной выборки. Если выборка вносит менее этого значения (в процентах), выборка останавливается. Повышение порога заставит адаптивную выборку чаще пропускать лучи, из-за чего отражения могут стать более зашумлёнными. Сэмплы Количество конических выборок для получения размытых отражений. Большее количество выборок даёт более сглаженный результат за счёт увеличения времени визуализации.

../../../../_images/render_blender-render_materials_properties_mirror_raymirror-aniso-example.jpg

Anisotropic tangent reflecting spheres with anisotropic set to 0.0, 0.75, 1.0. (.blend).

Примеры¶

Френель¶

../../../../_images/render_blender-render_materials_properties_mirror_fresnel-example.jpg

Demonstration of the Fresnel effect.

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

In Fig. Demonstration of the Fresnel effect. , this behavior is demonstrated for a perfectly reflective Material (Mirror Reflectivity 1.0).

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

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

© Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License.

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

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