суббота, 13 июня 2015 г.

Губка Менгера за несколько простых шагов. Урок.

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

Шаг первый:

Начнём, как водится, со стандартного куба. Накладываем на него три модификатора Array (Массив). Настройки модификаторов отличаются только осями, по которым происходит смещение.У новичков может возникнуть вопрос: "А почему бы не сделать смещение по всем осям в одном модификаторе?". Отвечаю: попробуйте! Не забываем во всех модификаторах проставить галки Merge – это избавит от необходимости удалять дублирующие вершины после применения модификаторов.

Накладываем модификаторы Array.

Шаг второй:

Применяем все три модификатора. Переходим в режим редактирования и переключаемся в режим редактирования граней. На этом шаге нам нужно удалить все ненужные грани. Во-первых, удалим квадраты из центра. Для этого перейдём в режим каркасного (Wire) затенения при помощи клавиши Z, поочерёдно переключаясь между проекциями и активируя круговую кисть выделения (С), выделяем и удаляем соответствующие полигоны. Во-вторых, если вы покрутили модельку, то могли заметить, что некоторые полигоны имеют отличающийся оттенок - тёмный, чёрный или они вовсе прозрачные. Связано это с неправильной ориентацией нормалей, а ориентируются они неправильно вот почему: на предыдущем шаге мы в модификаторе Array активировали опцию Merge, из-за чего вершины смежных стенок кубов слились как и соответствующие рёбра и полигоны. То есть из одного ребра стали расти ТРИ полигона, поэтому программа не может решить как правильно ориентировать нормали. На этом этапе избавляться от внутренних полигонов будем следующим образом: перейдём в режим редактирования вершин (или рёбер), снимем выделение (А), затем нажмём комбинацию Ctrl+Alt+Shift+M. В меню Select эта опция называется Select Non-Manifold. У этого инструмента есть ряд вариантов использования, в том числе выбор дырок в сетке. Но в данном случае выделяются все вершины, относящиеся к рёбрам, из которых растёт более двух полигонов. Нажимаем X (или Delete, кто как привык) → Faces.

Удаляем центральные полигоны.

Удаляем внутренние полигоны.

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

Шаг третий и четвёртый:

По сути это повторение предыдущих шагов. Мы точно так же накладываем три модификатора Array, применяем их и удаляем внутренние полигоны. Но поскольку теперь внутри нет полигонов, являющихся стенками пустот, мы просто выделяем их рамкой (B) в каркасном режиме и удаляем.

Опять Array.

Удаляем центральные полигоны.

Удаляем внутренние полигоны.

Шаги повторяем столько раз, сколько уровней фрактала хотим добиться. Вот и всё!

Нет, не всё. На самом деле есть способ ещё проще. Идём в пользовательские настройки, активируем аддон Extra Opjects, затем  нажимаем Add -> Mesh -> Extra -> Menger Sponge. Вуаля!

понедельник, 1 июня 2015 г.

Ответы на некоторые вопросы новичков, которые непонятно как гуглить

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


1. Что значит "применить масштаб" и зачем это делать?

  Как известно, масштабировать (двигать, вращать, далее - манипулировать) что-то можно как в объектном режиме, так и в режиме редактирования. Например, когда манипулируешь в объектном режиме, то в N-панели видно, что помимо размера меняется некий параметр, допустим при масштабировании, изменяется параметр Scale. Вообще, у объекта есть ТРИ параметра, описывающих его, так сказать, место под солнцем: это Scale - описывает насколько объект отличается в масштабах от своего базового размера; Rotation - насколько его локальные координаты отклоняются от глобальных; Location - насколько далеко локальный центр координат (в роли которого выступает Origin объекта) находится от центра координат мира. Так вот: некоторые модификаторы и инструменты свои числовые параметры корректируют на эти значения. Яркий пример - фаска (Bevel). Если стандартный куб растянуть по осям Х в 2 раза, Y в 0,5, то ширина фаски будет скорректирована на эти значения в соответствующих направлениях. То есть, по сути, 4 метра по Х и 1 метр по Y будут "не чистыми" 4 и 1 метрами, а 2 метра умноженные на 2 и 0,5 соответственно. Поэтому, чтобы получить равномерную фаску, нужно или применить масштаб, или масштабировать меш в режиме редактирования. Или ещё яркий пример - модификатор Mirror. Новичков этот модификатор своим поведением иногда повергает в недоумение. Но на самом деле он мягкий и пушистый, достаточно знать, что, во-первых, он работает относительно Origin объекта, во-вторых, в его локальных координатах. Поэтому, если вы в настройках модификатора ткнули галку "Отражать по оси Х", а он отражает по оси Z (глобальной), то это означает, что объект, с которого вы начали модель, вы повернули в объектном режиме по оси Y. Это как раз тот случай, когда нужно применить вращение. Ну и третий пример, касающийся того же модификатора Mirror: оси отражения совпадают, но половинки заезжают друг на друга или наоборот, находятся очень далеко. Избавиться от этого проще простого: в режиме редактирования сдвинуть меш так, чтобы Origin находился в плоскости симметрии или сдвинуть всю модель так, чтобы срез симметрии совпадал с соответствующей нулевой плоскостью мира и применить Location (в этом случае Origin встанет в начало координат мира).
  Возможно, у кого-то всё ещё стоит вопрос: "Но что конкретно делает применение параметра?" Ответ: оно делает изменённые, "мнимые" значения реальными, "честными", новыми базовыми. То есть размер куба честными 4,1,2 и Scale=1 вместо 2*2,2*0.5,2. Как если бы вы масштабировали, вращали и перемещали меш в режиме редактирования. Как-то так.


2. Какова логика слоёв (в нодах постобработки, материалов)?

  Я пытаюсь наложить друг на друга два изображения через нод Alpha Over, но они накладываются друг на друга наоборот. Разве тут слои накладываются не так, как в (название любимого растрового редактора)? Где логика?
  Логика тут есть. И расположение слоёв "как в фотошопе" - это только половина её. В чём она заключается? В банальном бытовом понимании слоёв, как в торте. То есть ВНИЗ мы кладём ПЕРВЫЙ слой, чуть выше - второй... на самом ВЕРХУ - ПОСЛЕДНИЙ. Так вот. Ноды стоит рассматривать в качестве... таблицы. Обычной такой таблицы из строк и столбцов. А в традиционной письменности таблицы пишутся и читаются слева направо и сверху вниз. То есть, ПЕРВЫЙ пункт таблицы находится на самом её ВЕРХУ, ПОСЛЕДНИЙ - ВНИЗУ. Так что "фотошоповская" логика попросту переворачивается с ног на голову: ПЕРВЫЙ НИЖНИЙ слой становится первым пунктом таблицы и располагается СВЕРХУ, ВТОРОЙ - вторым СВЕРХУ, ну а последний, ВЕРХНИЙ СЛОЙ располагается в самом НИЗУ. Только и всего.

3. Я создал (название объекта), сделал (название действия), как мне теперь изменить количество вершин в созданном объекте?

 Создать объект заново. Я не шучу. Дело в том, что в Блендере ты не создаёшь объект с параметрами по количеству вершин. Даже так: в  Т-панели (меню по F6) меняются не параметры объекта. Там меняются параметры ОПЕРАЦИИ. Создавая объект, мы совершаем ОПЕРАЦИЮ ДОБАВЛЕНИЯ объекта с параметрами ОПЕРАЦИИ "количество вершин", "радиус" и т. п. Как только мы совершаем другую ОПЕРАЦИЮ, в этом меню появляются её параметры.