Последняя оставленная запись:
Принцип 3d моделирования
2015-05-08 01:49:00 (читать в оригинале)
Сегодняшняя глава будет больше посвящена теории, чем практике. Думаю, стоит немного рассказать о принципах моделирования объектов. А если точнее то, как моделеры взаимодействуют с полигонами, чтобы получить нужную форму.
Чтобы понять, как получается модель из полигонов, давайте сначала посмотрим, что мы можем делать с ними. И эти действия являются общими для всего
3dмоделирования. Это означает, что для их выполнения существуют инструменты практически в любом нормальном 3
dпакете. Поэтому, поняв эти принципы, вы легко сможете повторить их в любом 3
d редакторе.
Самое основное и логичное действие это – перемещение, вращение и растягивание полигонов. Вы можете двигать и вращать полигоны, тем самым придавая вашему объекту желаемую форму. Например, уменьшив верхнюю грань куба вы получите усечённую пирамиду, как если уменьшить верхнюю грань цилиндра получится усечённый конус. Также вы можете переместить выше верхнюю часть куба и получите параллелепипед (так можно делать столбики, ножки для стула и т.д.).
Все эти действия можно проделать не только с отдельно взятым полигоном, но также и со всем объектом в целом. А также можно выбрать только определённые полигоны и делать с ними всё что вздумается. Главное не выворачивать их наизнанку.
Вращать, растягивать и перемещать можно не только целый полигон, но и его часть, т.е. его рёбра. А если нужно, то можно поработать и с вершинами. Правда для вершин вращение и растяжение не имеет смысла, так что вершины можно только перемещать. Но это даёт свободу даже большую чем для полигонов или рёбер. Хотя если выделить несколько вершин, то можно сжимать и вращать выделенную область.
Одним только перемещением вы можете получить какую угодно форму для вашего объекта (ну конечно при условии достаточного количества полигонов для этого).
Сейчас мы рассмотрели варианты действий с уже готовыми полигонами (вершинами и рёбрами). Т.е. когда они уже созданы. Но что делать, если нам не хватает имеющегося количества полигонов (вершин, рёбер)?
Если наш объект содержит слишком маленькое количество полигонов, то мы можем сделать подразбиение поверхности. Что это такое? Это как деление клеток, только клетки делятся на двое, а полигоны делятся на четыре части.
Во многих 3dредакторах это действие называется Subdivide (подразбиение). На сленге моделлеров так и звучит «сабдивайд». Но различают два метода подразбиения. При первом методе модель не меняет свою форму, а только лишь плотность полигональной сетки. Во втором случае при разбиении углы модели ещё и сглаживаются. Оба эти метода присутствуют во всех 3dредакторах, но их алгоритм может немного отличаться.
Как видите в этот раз наш куб превратился в сферу. Возможно в данный момент вам не понятно для чего нужен этот метод. Но в дальнейшем он вам пригодится при создании моделей с органической формой, где нужны плавные изгибы поверхности. Например, так можно из грубой квадратной заготовки получить красивый и гладкий резиновый сапог:
Если на данном этапе вам ещё не понятно для чего это всё, то не переживайте, дальше это приобретёт смысл. А пока просто впитывайте информацию.
Итак, мы уже узнали, что мы можем перемещать, вращать, растягивать и уменьшать полигоны, вершины и рёбра, а также делать это сразу со множеством вершин, рёбер или полигонов. Таким образом мы меняем форму объекта.
Также мы поняли, что для того чтобы получить более точную форму объекта (или более гладкую) мы можем умножить количество полигонов в нашей модели в несколько раз.
Теперь пришло время рассказать о таком популярном и часто используемом методе как экструдирование. По-английски это пишется как Extrude. Инструмент для этого действия также присутствует в любом нормальном уважающем себя 3d редакторе (если говорить о редакторах, где присутствует полигональное моделирование).
Что же такое экструдирование? Не смотря на своё страшное название (что кстати в переводе означает «выдавливание») это очень простой метод. Выбираете полигон, применяете экструдирование и тянете его в сторону от его первоначального места. В результате этот полигон отсоединяется от того места где он был и между ним и тем местом где он был образуется связь из полигонов.
Думаю, будет понятно, если показать на примере:
Как видите мы нарастили над кубом ещё две секции. Кстати, стоит отметить, что внутри полученной модели перемычек-полигонов между секциями нет:
Чтобы было ещё понятнее посмотрите на следующую гифку:
При экструдировании полигона вы тянете вверх, а 3d редактор как бы отрезает его от остальной части объекта и создаёт между ними грани, соединяющие рёбра в первоначальном месте с рёбрами полигона в его перемещённом месте.
При помощи этого метода можно делать модели, которые не вписываются в форму стандартных примитивов, таких как куб, сфера и прочее. Этот метод чем-то напоминает то, как растут растения. Или, как если бы посмотреть на строительство дома в ускоренном режиме. Или как штампуют детали на заводе.
Хотя экструдировать можно не только наружу объекта, но и вовнутрь. Так мы можем получать в объекте выемки.
Если до этого мы выдавливали полигон, то в данном случае мы его вдавливаем.
Это очень полезный и удобный инструмент, но надо быть с ним осторожным, поскольку если вы сделаете экструдирование и полигон останется на том же месте, то получится что в одном месте будут полигоны с нулевой высотой (и двойные вершины). Но думаю об этом мы ещё поговорим в будущих главах.
При помощи описанных выше методов, например, можно получить вот такой вот чайник:
Теперь давайте поговорим о ещё одном интересном способе модифицирования модели. Этот способ добавляет на модель сечения. Т.е. грубо говоря, в выбранном месте этот инструмент прокладывает по модели рёбра, образуя таким образом замкнутую петлю (хотя бывают случаи незамкнутых петель). Именно отсюда и получается название этого метода Loop Cut (сечение петлёй). Его называют по-разному: петля, петля рёбер, луп, лупкат. Инструмент для создания сечений так же есть практически в каждом нормальном 3dредакторе.
При первом знакомстве с этим инструментом возможно вам будет непонятно в каких ситуациях он может пригодиться. Но поверьте, вы будете пользоваться им также часто, как и описанными выше инструментами.
Например, нам нужно сделать кувшин. Как же проще всего это сделать? У нас имеется готовый примитив – цилиндр. Цилиндр похож на кувшин, только он везде одинаковой толщины. Значит нам нужно сделать его шире в его центральной части. Мы уже знаем, что для этого мы можем растянуть его вершины посередине. Но что если в нашем цилиндре нет вершин посередине? Вот здесь нам и пригодится наш новый инструмент!
В будущих уроках мы более подробнее рассмотрим применение этого инструмента. А сейчас давайте познакомимся с одним. Это инструмент для «спиливания» острых углов.
Инструмент этот возможно не так часто используется, но не менее важен. Думаю, не стоит объяснять где он может применяться, но приведу пример случая, который возможно не такой очевидный. Осмотритесь вокруг себя и отыщите предметы, которые на ваш взгляд имеют острые углы. Чего далеко ходить, посмотрите на края вашего стола. Возможно они выглядят на первый взгляд острыми, но это не так. Каждый объект в реальном мире имеет сглаженные края, просто на некоторых предметах этого не заметно. Но если посмотреть поближе, то можно увидеть, что все углы немного закруглены.
3dмодели часто выдаёт их идеальность в плане острых углов. Взгляните на эти два куба на картинке ниже:
Какой из них выглядит более правдоподобно? Думаю, ответ очевиден. Всего лишь небольшое сглаживание краёв – и результат на лицо!
Предыдущие инструменты, о которых я говорил имели общее название в разных 3dредакторах. Но тот инструмент, который я описал сейчас в некоторых 3d пакетах называется по-разному. В одних он называется Chamfer, в других Bevel. Но переводится он одинаково – «фаска», «скос».
В блендере этот инструмент называется Bevel. В 3ds Max это название уже занято за другим инструментом, поэтому он там называется Chamfer.
Существует также ещё не мало инструментов для изменения, добавления, редактирования полигональной модели, но их мы рассмотрим, когда перейдём к практике. Хотя для первых шагов, теории, описанной в этой главе уже достаточно.
Словарь:
- Subdivide — подразбиение поверхности на большее количество полигонов. Если при этом ещё и применяется алгоритм сглаживания, то часто его называют просто «сглаживанием». Синонимы: сглаживание, подразбиение, сабдивайд, сабсёрф.
- Extrude — выдавливание полигонов, вершин или рёбер. Грубо говоря это дублирование вершин с созданием между оригиналом и дублем связи в виде рёбер или полигонов с рёбрами. Синонимы: extrude, extract, эуструдирование, выдавливание (последнее выражение редко используется).
- Loop Cut — Делает сечение объекта пропорционально. Синонимы: петля рёбер, луп, лупкат, сечение, петля рёбер.
- Bevel — Сглаживание углов при помощи геометрии. Синонимы: bevel, chamfer (в некоторых редакторах), фаска, скос, бевел.