Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB Deutsch|INB 國語|INB 中文|INB 日本语|INB 한국어|INB ภาษาไทย|INB tiếng Việt||Уроки Maya Основы NURBS-моделирования. Часть 1
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум

Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com


Вы не подключены. Войдите или зарегистрируйтесь

《《《《《《《上一页INBforum   Перейти вниз

上一页INBforum》》》》》》》Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

1Уроки Maya Основы NURBS-моделирования. Часть 1 Empty Уроки Maya Основы NURBS-моделирования. Часть 1 в Пт Окт 01, 2010 8:50 pm

Admin

Admin
Admin
Элементы NURBS-модели


Любая NURBS-модель представляет собой некий набор NURBS-поверхностей, образованных NURBS-кривыми. Последние, в свою очередь, являются неоднородными рациональными сплайнами Безье (Non-Uniform Rational Bezier Splines, NURBS). Данные кривые описываются математическими формулами — в итоге отпадает необходимость запоминать каждую точку кривой, достаточно знать координаты ее начала и конца и математическую формулу, описывающую кривую. Это позволяет создавать сложные криволинейные поверхности с небольшим числом управляющих вершин (рис. 1) и легко избавляться от грубой огранки объектов, придавая им плавную искривленную форму путем простого увеличения детализации.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 1. Уровень детализации полигонального шара (слева) и NURBS-шара (справа) — видно, что число вершин у первого шара на порядок больше


Основой NURBS-поверхности являются сплайны, называемые изопараметрическими кривыми (isoparms — изопармы). Данные кривые определяют кривизну поверхности и внешне представляют собой разнообразные линии (как прямые, так и разного рода кривые, а также контуры текстовых символов), форма которых определяется положением управляющих вершин, через которые она проходит (рис. 2). Основными элементами таких кривых являются управляющие вершины и редактируемые точки (рис. 3). Управляющие вершины задают форму кривой и именно их чаще всего создают при формировании кривой — эти вершины обычно немного отстоят от поверхности и их можно перемещать, вращать и т.д. Первая вершина, обозначающая начало кривой отмечается кубиком, конечная вершина (последняя точка, в которой завершается создание кривой) никакой отличающей маркировки не имеет. Кроме того, при помощи маркера в виде маленькой буквы «u» отображается направление кривой (указывается не во всех проекциях), которое важно знать при выполнении ряда операций моделирования. При необходимости можно ограничить перечень отображаемых элементов NURBS-поверхности, если воспользоваться командой Display=>NURBS Components (Отображение=>NURBS-компоненты).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 2. NURBS-поверхность с отображением изопараметрических кривых и управляющих вершин

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 3. Основные элементы кривой


Для работы с NURBS-кривыми и NURBS-поверхностями предназначены командные меню Edit Curves, Edit Nurbs и Surfaces: первая позволяет редактировать кривые, вторая — создавать из кривых NURBS-поверхности, а третья — редактировать и преобразовывать их.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение] [Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
NURBS-примитивы


Самый простой вид NURBS-поверхностей — это NURBS-примитивы, представленные объектами Sphere (Сфера), Cube (Куб), Cylinder (Цилиндр), Cone (Конус), Plane (Плоскость) и Torus (Topус). Как и другие типы примитивов, NURBS-примитивы обычно используются в качестве основы для формирования более сложных моделей и создаются командой Create=>NURBS Primitives либо выбором нужного примитива на вкладке Surfaces (Поверхности) панели Shelf. Выполнение многих операций редактирования NURBS-примитивов на уровне объектов очень сильно напоминает соответствующие действия в отношении других типов примитивов, хотя списки параметров для NURBS-примитивов более обширны, да и часть параметров отличается. Для примера сравните списки параметров для полигонального и NURBS-торусов (рис. 4): для последнего дополнительно можно установить значения параметров Start Sweep и End Sweep (определяют, все ли возможные фрагменты примитива будут созданы), параметра Degree (позволяет выбрать между линейным и криволинейным отображением фрагментов поверхности) и т.д.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 4. Сравнение параметров торусов: полигонального (слева) и NURBS-торуса (справа)


Более существенные отличия наблюдаются при редактировании примитивов на уровне подобъектов, так как деформация полигональных моделей в первую очередь связана с изменением ориентации граней, а изменение формы NURBS-поверхностей основано на интерполяции кривых. Для примера попробуем создать яйцо, вначале взяв за основу NURBS-шар, а затем полигональный шар. Создайте NURBS-шар, не снимая выделения, перейдите в режим редактирования вершин, нажав клавишу F9, выделите в проекции Side все вершины сечений, расположенных в верхней половине объекта, и инструментом Move Tool переместите их вверх (рис. 5), а затем инструментом Scale Tool слегка уменьшите радиус соответствующих сечений (рис. 6). Сократите число выделенных сечений на одно снизу и вновь проведите те же самые операции перемещения и масштабирования. Результатом станет получение объекта, по форме близкого к яйцу (рис. 7). А теперь попробуем добиться того же результата, но уже на базе полигонального шара. Создайте такой шар и переключитесь в режим редактирования вершин, нажав клавишу F9. Выделите все вершины сечений, расположенных в верхней половине объекта, и переместите их вверх (рис. Cool, затем масштабируйте сечения (рис. 9). Уменьшите число выделенных сечений на одно снизу и вновь проведите те же самые операции перемещения и масштабирования (рис. 10). Если после этого провести рендеринг (рис. 11), то форма объекта получается недостаточно гладкой, хотя деформации были незначительными. До получения формы яйца также еще далеко — придется дальше кропотливо двигаться, сокращая число сечений и применяя к выделенным подобъектам операции перемещения и масштабирования, а по окончании еще и дополнительно сгладить полученную поверхность. Так что даже на примере столь простого объекта становится очевидным, что применение NURBS-примитивов существенно снижает трудоемкость моделирования гладких поверхностей.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 5. Перемещение вершин NURBS-шара

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 6. Масштабирование вершин NURBS-шара

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 7. Яйцо

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 8. Первое перемещение вершин полигонального шара

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 9. Первое масштабирование вершин полигонального шара

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

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


В случае если речь идет о моделировании объекта с четкими гранями, NURBS-примитивы не помогут — тут требуются приемы полигонального моделирования. Вспомним, например, рассмотренный в 3-м уроке способ моделирования плитки шоколада из полигонального куба, когда достаточно было создать куб (правда, с определенными параметрами — рис. 12), выделить в режиме редактирования граней грани верхней поверхности и применить операцию по их выдавливанию (команда Edit Poligons=>Extrude Face — Редактирование полигонов=>Выдавливание граней) — рис. 13.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 12. Исходный полигональный куб

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 13. Плитка шоколада


Если для достижения той же цели взять за основу NURBS-куб с теми же исходными параметрами, то все окажется совсем не так, поскольку граней у него не существует — вместо них вершины и изопараметрические кривые. Любые манипуляции с вершинами приведут к формированию гладкой поверхности (рис. 14), что не подходит для решения задачи. Если перейти к изопармам, к которым может быть применена операция выдавливания со скосом Bevel (Скос), то результат также будет далек от желаемого (рис. 15 и 16), так как выдавливаться будут изопараметрические кривые, а не внутренние фрагменты плоскости, соответствующие граням. Поэтому выбирать тип примитивов (равно как и подход к моделированию) нужно в зависимости от типа поверхности (гладкая или ограненная), которую требуется получить.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 14. Результат перемещения нескольких вершин верхней поверхности объекта

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 15. Выделение изопараметрических кривых

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 16. Результат применения операции Bevel к изопармам верхней плоскости куба

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение] [Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
NURBS-кривые и NURBS-поверхности


Чаще всего NURBS-поверхности моделируются из NURBS-кривых, которые обычно формируются путем последовательного определения вершин или точек редактирования, хотя есть и другие способы — можно получить кривые из дуг, созданных на основе двух или трех указанных вершин (команда Create=>Arc Tools), или применить команду Create=>Text, поскольку текст также может создаваться как NURBS-кривая. Независимо от способа создания кривые не визуализируются, так как применяются только для создания и редактирования поверхностей.
Учитывая, что в большинстве случаев кривые получают посредством определения их вершин или редактируемых точек, то именно данный способ мы и рассмотрим подробнее. Он предполагает использование одного из следующих инструментов, вызываемых из меню Create (Создать):

  • CV Curve Tool (Кривая по управляющим вершинам) — устанавливает управляющие вершины кривой точно в тех точках, где был сделан щелчок мышью, точки редактирования создаются автоматически на основании управляющих вершин;
  • EP Curve Tool (Кривая по точкам редактирования) — формирует точки редактирования кривой точно там, где были сделаны щелчки мышью; управляющие вершины создаются автоматически на базе точек редактирования;
  • Pencil Curve Tool (Карандашная кривая) — позволяет рисовать кривую, перетаскивая мышь, данный тип кривой отличается созданием очень большого количества точек редактирования и управляющих вершин, что может приводить к сложностям при редактировании.

Построение кривых с помощью первых двух из названных инструментов осуществляется практически одинаково: нужно последовательно указать точки (управляющие вершины или точки редактирования), при этом установка каждой следующей вершины будет приводить к появлению очередного участка кривой. Завершается создание кривых нажатием клавиши Enter. Карандашные кривые создаются путем перемещения мыши при нажатой левой кнопке (форма кривой будет полностью повторять траекторию движения мыши); отпускание кнопки автоматически означает окончание текущей кривой, и при следующем нажатии будет формироваться уже новая кривая. Довольно часто карандашные кривые содержат слишком много лишних точек, поэтому их приходится упрощать (то есть сокращать количество управляющих вершин), применяя команду Edit Curves=>Rebuild Curve (Редактировать кривые=>Перестроить кривую). Данная команда может быть применена к любым типам NURBS-кривых.
Особенности создаваемых при помощи названных инструментов кривых определяются параметрами Curve Degree и Knot Spacing. Первый параметр задает степень кривизны кривой, второй указывает интервал между узлами и может быть определен только для кривых типов CV Curve Tool или EP Curve Tool. По умолчанию для данных параметров установлены значения, оптимальные для построения большинства кривых, однако при необходимости они могут быть изменены, для чего, выбирая инструмент построения кривой, нужно щелкать на квадратике, находящемся справа от имени инструмента. Независимо от выбора типа инструмента при создании NURBS-кривой следует ограничиваться необходимым минимумом точек (это значит, что если дуга может быть создана тремя точками, значит, именно на трех точках и следует остановиться), в противном случае редактирование моделей может стать затруднительным, а то и невозможным.
Для наглядности попробуем создать кривую инструментом CV Curve Tool (построение кривых другими инструментами осуществляется примерно так же). Перейдите в режим работы с одной из ортогональных проекций (например, с проекцией Front) и примените команду Create=>CV Curve Tool (Создать=>Кривая по управляющим вершинам). Щелкните в определенной точке для создания первой управляющей вершины, которая отобразится маленьким кубиком, обозначающим начало кривой, укажите местоположение второй управляющей вершины и т.д. — обратите внимание, что сегменты кривой появятся только после указания четвертой вершины (рис. 17). Если очередная вершина поставлена неудачно, то ее можно удалить нажатием клавиши Backspace и продолжить создание кривой. Кроме того, в любой момент можно прервать процесс добавления новых вершин и переключиться в режим редактирования, нажав клавишу Insert (о смене режима работы будет сигнализировать изменения вида манипулятора), в котором любая из вершин может быть перемещена. Переместите вершины примерно так, как показано на рис. 18, а затем вернитесь к процессу создания вершин, вновь нажав Insert, и дополните кривую еще несколькими вершинами (рис. 19), завершите процесс нажатием клавиши Enter. Форму кривой с таким же успехом можно изменить и после завершения ее создания, для чего достаточно выделить ее, переключиться в режим редактирования вершин, нажав клавишу F9, и инструментом Move Tool изменить положение тех вершин, что были поставлены неудачно (рис. 20). Кроме того, можно удалить любой из сегментов кривой, выбрав отвечающую за него управляющую вершину или точку редактирования и нажав клавишу Backspace.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 17. Появление сегментов кривой

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 18. Перемещение вершин в процессе создания кривой

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 19. Созданная кривая

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


Созданные NURBS-поверхности в зависимости от установок, могут отображаться с разным уровнем сглаживания. Он определяется в меню Display=>NURBS Smoothness (Отображение=> NURBS-сглаживание) только для выделенных объектов. Всего предусмотрено четыре типа сглаживания: Hull, при котором отображается только каркас, Rough, обеспечивающий грубый набросок модели, а также Medium и Fine, отображающие объекты со средним и высоким уровнем детализации. Для трех последних режимов имеются горячие клавиши — 1, 2 и 3 соответственно. Для примера попробуйте сгладить форму созданной выше кривой, применив команду Display=>NURBS Smoothness=>Fine (Отображение=> NURBS-сглаживание=>Высокое) — рис. 21. При необходимости возможна более тонкая настройка уровня сглаживания при помощи команды Display=>NURBS Smoothness=>Custom (Отображение=> NURBS-сглаживание=>Пользовательское) — рис. 22.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 21. Результат сглаживания формы кривой

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 22. Настройка параметров сглаживания


Помимо вышеназванных способов коррекции NURBS-кривых имеется еще масса команд для их редактирования, доступных из меню Edit Curves. Основными среди них можно назвать следующие:

  • Add Points Tool — добавление вершин в конец кривой;
  • Reverse Curve Direction — смена направления кривой; на противоположное, что необходимо, когда требуется добавить новые управляющие точки не в конец, а в начало кривой;
  • Insert Knot — добавление указанного числа вершин в середине кривой; количество вставляемых вершин и принцип их добавления регулируются параметрами команды;
  • Curve Editing Tool — включение режима редактирования, позволяющего управлять степенью кривизны сегментов кривой;
  • CV Hardness — заострение сегментов, соответствующих выделенным точкам кривой;
  • Attach Curves — объединение выделенных кривых в одну кривую с формированием связующего их отрезка;
  • Detach Curves — разделение кривой на части в выделенной точке;
  • Open/Close Curves — открытие/закрытие кривой.

Попробуем немного поэкспериментировать с обычной плоскостью и попытаемся так деформировать ее, чтобы после текстурирования она могла быть использована в качестве куска лежащей складками ткани. Создайте обычную NURBS-плоскость и переключитесь в режим редактирования вершин (клавиша F9) — изначально количество ее управляющих вершин невелико и в нашем случае недостаточно (рис. 23). Поэтому вернитесь в режим работы на уровне объекта (клавиша F8) и добавьте еще группу вершин, применив команду Insert Knot (Вставить узлы), — рис. 24. Отрегулируйте положение вершин при помощи инструментов Move Tool и Scale Tool, руководствуясь видом имеющейся текстуры ткани со складками и тем, как планируете разложить эту ткань (рис. 25 и 26). Пока это будут лишь начальные прикидки, так как вид плоскости зависит также от поверхности, на которую ткань будет положена, а данной поверхности у нас еще нет.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 23. Исходная плоскость

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 24. Добавление новых вершин

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 25. Результат деформации плоскости

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 26. Визуализация деформированной плоскости


Теперь набросим ткань на некоторую поверхность, например на обычный куб (рис. 27). Создайте куб, откорректируйте в сцене положение обоих объектов, а затем подрегулируйте положение управляющих точек плоскости ткани так, чтобы создавалось ощущение, что ткань ниспадает с поверхности куба (рис. 28 и 29).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 27. Появление куба

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 28. Окончательный вид деформированной плоскости

[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 29. Ниспадающая ткань
]

http://ru.inbforum.com

上一页INBforum   Перейти вниз

上一页INBforumПредыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Создать форум | © PunBB | Бесплатный форум поддержки | Контакты | Сообщить о нарушении | Последние обсуждения