Всем привет! Не так давно в одной социальной сети новичок пытался сделать губку Менгера по уроку и обратился ко мне за помощью с каким-то затруднением. Сейчас я точно не вспомню о сути затруднения, но точно помню, что я подумал, что урок слишком запутанный и перегруженный, поэтому решил создать свой урок.
Шаг первый:
Начнём, как водится, со стандартного куба. Накладываем на него три модификатора 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. Вуаля!
Нет, не всё. На самом деле есть способ ещё проще. Идём в пользовательские настройки, активируем аддон Extra Opjects, затем нажимаем Add -> Mesh -> Extra -> Menger Sponge. Вуаля!