Главная » Статьи » Прочие

Уроки моделирования. Часть III

Создание патчей из кривых

Создавая поверхность при помощи патчей, удобно задавать ее форму с помощью кривых. Начертив соответствующие кривые, можно преобразовать их в поверхность при помощи следующих специальных инструментов моделирования:

Extrude (Экструдирование). Кривая, задающая профиль, перемещается вдоль указанной линии или пути. В результате формируется поверхность, похожая на цилиндрическую (рис. 2.37); Lathe/Revolve(Формирование поверхности вращения). Кривая, задающая контур, вращается вокруг оси, образуя поверхность подобно тому, как это делается на токарном станке. Получается поверхность, близкая к цилиндрической или сферической (рис. 2.38); Lofting (Формирование поверхности на основе сечений). Эта операция похожа на экструдирование, но позволяет задавать различные профили вдоль пути. В результате можно более гибко управлять формой поверхности (рис. 2.39);

http://www.lessonsflash.ru/animation/02.37.jpg

Рис. 2.37. Операция Extrude

Skinning (Создание оболочки). Эта операция также называется U-loft или V-loft. Она очень сходна с операцией Lofting и позволяет формировать поверхность на основе заданных кривых (рис. 2.40);Ruled (Конструирование поверхности по двум кривым). Две кривые задают форму противоположных краев поверхности. Данная операция похожа на предыдущую, но поверхность строится вдоль кривой, а не перпендикулярно ей (рис. 2.41);

Boundary (Формирование поверхности с заданными краями). Три или четыре кривые задают края патча (рис. 2.42); BiRail (Формирование поверхности по двум направляющим). Одна или две кривые, задающие профиль, перемещаются вдоль двух кривых-направляющих, образуя поверхность. Если указан только один профиль, операция похожа на Extrude или Lofting, если два - на Boundary (рис. 2.43).

http://www.lessonsflash.ru/animation/02.38.jpg

Рис. 2.38. Операция Lathe/Revolve

http://www.lessonsflash.ru/animation/02.39.jpg

Рис. 2.39. Операция Loft

http://www.lessonsflash.ru/animation/02.40.jpg

Рис. 2.40. Операция Skin

http://www.lessonsflash.ru/animation/02.41.jpg

Рис. 2.41. Операция Ruled

http://www.lessonsflash.ru/animation/02.42.jpg

Рис. 2.42. Операция Boundary

http://www.lessonsflash.ru/animation/02.43.jpg

Рис. 2.43. Операция BiRail

Сшивание патчей

Иногда возникают ситуации, когда одного патча или регулярной поверхности, построенной на основе кривой, недостаточно. Например, когда в модели есть выступающие детали, расположенные таким образом, что их невозможно сконструировать из базового цилиндра, сферы или тора. Хорошим примером объекта, имеющего «ответвления», может служить фигура человека - руки и ноги расположены в пространстве так, что данный объект невозможно покрыть единственным прямоугольным патчем. Проводя аналогию с упаковочной бумагой, можно сказать, что одного листа и ленточки будет недостаточно, чтобы обернуть человеческое тело. Если сомневаетесь, возьмите большой кусок оберточной бумаги, куклу Барби или солдатика и попробуйте это сделать.

Чтобы решить данную проблему, следует накладывать патчи по одному и сшивать их друг с другом. Метод достаточно трудоемкий, но позволяющий с максимальной точностью контролировать процесс формирования поверхности. Теоретически все очень просто. Моделирование начинается с четырехугольного патча, созданного деформированием исходного прямоугольного или построенного на основе контурной кривой (рис. 2.44). Затем формируется второй патч, и его край совмещается с краем первого (рис. 2.45). Применение функции привязки обеспечивает точное соответствие вершин и ребер (рис. 2.46). Если ряды вершин состыкованы абсолютно точно, патчи ведут себя как одно целое.

http://www.lessonsflash.ru/animation/02.44.jpg

Рис. 2.44. Формирование первого патча

На самом деле края патчей не склеиваются - просто они располагаются в одних и тех же точках пространства. Координаты вершин идентичны, и патчи одинаково реагируют на деформацию, поэтому кажется, что они прочно соединены.

Некоторые пакеты, например 3D Studio МАХ, обеспечивают автоматическую стыковку краев патчей, освобождая разработчика от утомительной привязки каждой пары вершин. С точки зрения пользователя, такой инструмент более эффективен, однако работает он по тому же, описанному выше алгоритму. Другие системы, к примеру, Maya, обладают инструментами, позволяющими задавать касательную при стыковке патчей, за счет чего шов становится незаметным.

Чтобы лучше понять устройство модели, созданной при помощи стыковки патчей, представьте себе, что они являются предметами одежды. За счет попарного совмещения вершин получается гладкая и убедительная модель персонажа. При использовании данного метода в качестве образца для экспериментирования пригодится собственный гардероб. На рис. 2.47 передняя и задняя части туловища, а также рука сшиваются друг с другом, и в результате получается цельная поверхность.

http://www.lessonsflash.ru/animation/02.45.jpg

Рис. 2.45. Совмещение вершин стыкуемых патчей

http://www.lessonsflash.ru/animation/02.46.jpg

Рис. 2.46. Использование функции привязки

http://www.lessonsflash.ru/animation/02.47.jpg

Рис. 2.47Пример моделирования по методу стыковки патчей

Треугольные патчи

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

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

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

Следовательно, четырехугольный патч можно превратить в треугольный путем соединения всех точек одной стороны, чтобы они имели идентичные координаты в трехмерном пространстве (рис. 2.48). В сущности, то же самое происходит на полюсах сферы. Лучше выполнять такие операции над поверхностями, в основе которых лежат кривые малого порядка, например фундаментальные, но можно использовать и другие типы патчей, включая NURBS.

Имеется несколько пакетов, поддерживающих треугольные патчи другого типа, в частности программные продукты компаний Discreet и Hash.

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

Другой уникальный тип патчей имеется в системе 3D Studio MAX. Более всего они напоминают патчи, построенные на основе кривых Безье, поскольку каждая вершина имеет дополнительные манипуляторы для управления касательной к поверхности, причем все вершины лежат на поверхности. В данной системе, как и в Hash, можно создавать треугольные патчи.

http://www.lessonsflash.ru/animation/02.48.jpg

Рис. 2.48. Получение треугольного патча из четырехугольного

Моделирование на основе NURBS

Инструменты для манипулирования NURBS во многом похожи на инструменты, предназначенные для других типов сплайнов. При создании поверхностей, подобных сферам, к кривым могут применяться операции Lathe или Revolve. NURBS-кривые можно экструдировать или подвергать операции Skin, чтобы сформировать трубчатый или патч-объект. Во многих программах для построения NURBS применяются также инструменты Loft, Boundary и Bi Rail.

Как уже было сказано, больше всего трудностей при использовании патч-поверхностей, в том числе NURBS-патчей, возникает в связи с наличием ответвляющихся участков. Подобно патчам иных типов, NtJRBS-патчи можно сшивать друг с другом, попарно соединяя точки, или специальными инструментами.

Кривые на поверхности

Одним из популярных методов конструирования ответвлений при помощи NURBS является создание кривой на поверхности. Кривая фиксируется на NURBS-поверхности и служит основой для создания ответвления. Существует два основных способа расположения кривой (операция Curve on surface) - см. рис. 2.49:

  • рисование кривой. В некоторых наиболее полнофункциональных пакетах кривые можно непосредственно рисовать на NURBS-поверхности в реальном масштабе времени. В результате линия «прилипает» к поверхности и остается в этом положении, как бы ни изменялась форма последней;
  • проецирование кривой. Существующая кривая проецируется на поверхность, как двумерный слайд. Следует учитывать угол проекции, поскольку он влияет на форму результирующей кривой. Обычно кривые проецируют под прямым углом, то есть вдоль нормали к поверхности. Кривая фиксируется на ней, следовательно, если форма поверхности будет меняться, то соответственно изменится и вид кривой, как если бы она была нарисована на поверхности.

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

Другие типы кривых на поверхности

Кривая, на основе которой выполняется операция Trim (Вырезание), также находится на поверхности. Она используется для вырезания фрагмента поверхности подобно тому, как при помощи формочки из раскатанного теста делается печенье. Подобным образом можно проделывать отверстия в NURBS-поверхностях; результат аналогичен достигаемому при помощи булевских операций. Вырезанные в результате проведения операции Trim участки поверхности не визуализируются. На рис. 2.50 показано, как эта операция используется для вырезания участка NURBS-поверхности, заключенного внутри кривой, лежащей на поверхности (посередине), или участка, расположенного вне кривой (справа).

Таким способом удобно создавать выступающие детали, поскольку при этом решается проблема проникающих друг в друга поверхностей: все лишнее при выполнении операции Trim отсекается.

http://www.lessonsflash.ru/animation/02.49.jpg

Рис. 2.49. Создание кривой на NURBS-поверхности при помощи проецирования (слева) или непосредственного рисования на поверхности (справа)

http://www.lessonsflash.ru/animation/02.50.jpg

Рис. 2.50. Использование операции Trim

Сопряжение NURBS-поверхностей

Существует несколько методов, позволяющих создавать дополнительные поверхности на основе кривых, зафиксированных на исходной поверхности. Новая поверхность прикрепляется к такой кривой. Чтобы переход между двумя поверхностями был незаметен, используются различные хитрости.

Сопряжение поверхностей при помощи операции Loft

Одним из способов создания незаметных переходов между поверхностями является применение операции Loft к кривой, еафиксированной на поверхности, и другим кривым, не прикрепленным к ней (рис. 2.51). В результате создается оболочка, один край которой совмещен с кривой, расположенной на поверхности. Единственная возникающая сложность заключается в том, что оболочка примыкает к исходной поверхности под прямым углом, и место стыка бросается в глаза.

Чтобы сгладить переход, некоторые разработчики используют в качестве основы примыкающей поверхности несколько кривых, расположенных на исходной поверхности. Напомним, что для создания NURBS-кривой необходимо четыре точки. Если три кривых зафиксированы на

http://www.lessonsflash.ru/animation/02.51.jpg

Рис. 2.51. Использование операции Loft для NURBS-поверхностей

http://www.lessonsflash.ru/animation/02.52.jpg

Рис. 2.52. Использование операции Blend для NURBS-поверхностей

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

Сопряжение поверхностей при помощи операции Blend

Другой, более изящный метод создания плавных сопряжений - операция Blend (Сопряжение). Она автоматически заполняет пространство между двумя кривыми, прикрепленными к поверхностям, и сопряжение имеет идеальную касательную (рис. 2.52). Особенно удобно ее применять при конструировании таких подверженных изгибам объектов, как плечи. Пригодится она и при моделировании лица. С ее помощью можно легко прикрепить к лицу нос или сформировать область, окружающую глаза. Операция Blend освобождает разработчика от дополнительных действий над деталями и касательными, которые возникают при непосредственном создании оболочки.

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

Сопряжение поверхностей при помощи операции Fillet

Другие инструменты, позволяющие автоматически создавать сопряжения, были разработаны на основе средств автоматизированного проектирования. При осуществлении операции Fillet (Сопряжение с округлением) конструируется сопряжение, имеющее полукруглый контур. Она идеально подходит для создания округленных стыков между примыкающими друг к другу поверхностями (рис. 2.53).

Сопряжение поверхностей при помощи операции Chamfer

Операция Chamfer (Округление углов) дает результат, противоположный результату Fillet. В ней округляются углы и формируется выпуклый профиль на месте стыка двух поверхностей (эти действия также называются снятием фаски) - см. рис. 2.54. Данная операция идеально подходит, например, для сглаживания углов и ребер параллелепипеда.

http://www.lessonsflash.ru/animation/02.53.jpg

Рис. 2.53. Использование операции Fillet для NURBS-поверхностей

http://www.lessonsflash.ru/animation/02.54.jpg

Рис. 2.54. Использование операции Chamfer для NURBS-поверхностей

Деформация при помощи поверхности

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

Метод Metaballs

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

http://www.lessonsflash.ru/animation/Prim.jpgДанный метод реализован во многих пакетах под различными названиями. Некоторые программы позволяют лишь конструировать объекты при помощи Metaballs, другие также допускают анимацию. В пакете 3D Studio MAX нет собственного инструмента Metaballs, но можно использовать встроенные модули других производителей, в которых он реализован.

В пакете Clay Studio Pro допускается анимация, есть примитивы нескольких типов, возможно использование ассоциированного отображения и конструирования мышц на основе сплайнов.

В пакете MetaReyes допускаются анимация, ассоциированное отображение и конструирование мышц на основе сплайнов. В некоммерческом .пакете Blob Modeler средств анимации нет. В пакете Softimage данный метод присутствует под названием Meta Clay, имеются сферические и эллипсоидальные примитивы, допускается анимация.

В пакете LightWave есть только сферические примитивы и предусмотрены операции моделирования.

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

Простейшими объектами, к которым применим данный метод, являются сферы и другие тела, имеющие преимущественно округлую форму. Разработчики анимации используют метод Metaballs для создания шарообразных объектов. При соприкосновении такие объекты соединяются подобно сливающимся каплям воды.

Данный метод работает с объектами сферической формы, но позволяет эффективно использовать целый ряд других примитивов. Каждая сфера имеет заданный вес и определенную область притяжения, благодаря которой из нескольких примитивов формируется метаобъект с округлыми очертаниями. Степень соединения шаров зависит от их веса, размера области притяжения и взаимного удаления.

Рассмотрим два шара одинакового размера (рис. 2.55). Область притяжения сферической формы окружает каждый из них подобно скорлупе. Любой другой шар, попадающий в зону влияния, соединяется с ними. Количество слияний зависит от веса. Если шары имеют одинаковый размер, они соединяются в месте пересечения их областей влияния. Степень слияния также определяется весом. Меняя вес и размер области притяжения, можно получать различные результаты. Чем больше сфера влияния, тем более мягким кажется объект, и с большим количеством объектов он сливается. С другой стороны, чем тяжелее сфера, тем более твердой и устойчивой она выглядит.

Многие реализации метода Metaball нe ограничиваются работой со сферами и допускают использование объектов, имеющих иную форму. Недавно разработанные пакеты позволяют создавать виртуальные мышцы, которые выглядят весьма реалистично (рис. 2.56).

http://www.lessonsflash.ru/animation/02.55.jpg

Рис. 2.55. Пример использования метода Metaballs

http://www.lessonsflash.ru/animation/02.56.jpg

Рис. 2.56. Примитивы, имеющиеся в мощных программах трехмерною моделирования

Недостатки метода Metaballs

В результате применения данного метода создается поверхность с крайне неупорядоченной структурой, которая с трудом прддается анимации. Кроме того, в большинстве программ технология Metaballs реализуется по алгоритму удаления кубов: на модель проецируется трехмерная координатная сетка и на ее основе формируется каркас. В результате вся поверхность модели покрывается гладким однонаправленным каркасом. Поверхности такого типа в исходном виде трудно использовать в анимации (рис. 2.57). Чтобы решить эту проблему, анимации подвергаются сами примитивы Metaballs, а в каркасное представление модель преобразуется непосредственно перед визуализацией (рис. 2.58).

Анимация объектов, созданных при помощи метода Metaballs

Имеются два способа так включить персонаж в анимацию, чтобы обойти проблему, связанную с неупорядоченным каркасом объектов, полученных в результате применения метода Metaballs. Во-первых, модель можно использовать в качестве шаблона, загрузить в программу, поддерживающую традиционные методы моделирования, и сконструировать персонаж заново на основе многоугольников, патчей или NURBS.

http://www.lessonsflash.ru/animation/02.57.jpg

Рис. 2.57. Модель, созданная при помощи метода Metaballs

http://www.lessonsflash.ru/animation/02.58.jpg

Рис. 2.58. Примитивы Metaballs, подвергнутые анимации

Во-вторых, можно подвергнуть анимации сами примитивы Metaballs и преобразовать поверхность в каркасное представление только перед визуализацией. В этом случае разработчик имеет более широкий простор для творчества, а персонажи выглядят мягкими и пластичными. В качестве примера вспомним кинофильм «Flubber», в котором технология Metaballs была использована для создания студенистых персонажей.

Единственная проблема, возникающая при использовании данного метода, связана с наложением текстур. Более совершенные пакеты позволяют выполнять ассоциированное отображение, то есть накладывать текстуры на сами Metaballs-примитивы. Это отображение переносится на поверхность и участвует в анимации персонажа. В более простых пакетах не допускается нанесение текстуры на примитивы, поэтому приходится накладывать ее на результирующую поверхность, и при анимации их движение выглядит несогласованным.

 



Источник: http://www.lessonsflash.ru/animation/1-2.htm#15
Категория: Прочие | Добавил: Алексей (30.09.2014)
Просмотров: 677 | Теги: моделирование, Лекция, анимация | Рейтинг: 0.0/0
Всего комментариев: 0
avatar