ЛикБез на Stilia.Ru

ГЛАВА 4


Полигональный моделинг

Полигональный каркас 

Полигоны в игровых движках

Полигональное моделирование в последние годы стало очень популярным благодаря бурному развитию игровой индустрии и аналогичных отраслей, в которых требуется отображение трехмерных объектов в реальном времени. Это происходит потому, что полигоны наиболее просты с математической точки зрения. Прелесть игры или симулятора VR (виртуальной реальности) достигается при полной интерактивности, когда пользователь может свободно перемещаться в трехмерном пространстве и выполнять какие-либо действия в реальном времени. Для этого компьютеру требуется выполнять рендеринг и перерисовывать сцену очень быстро, обычно 24—30 раз в секунду. В каждый отрезок времени компьютеру приходится просчитывать положение каждого полигона, отображать и текстурировать его, поэтому сохранение определенного количества полигонов в сцене становится очень критичным для сохранения плавности всего игрового процесса.

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

Например, если игровой движок должен отображать 100 000 текстурированных полигонов в секунду и требуется отображать 25 кадров в секунду, полигональный бюджет будет составлять 4 000 треугольников на кадр. Для рельефа поверхности отведено 1 000 треугольников, 300 — для задника. На экране одновременно могут быть пять противников, для них отводится по 300 полигонов на каждого и по 100 полигонов на вооружение. И на главного персонажа и его вооружение остается 700 треугольников.

Моделирование привлекательного основного персонажа из 700 треугольников — непростая задача, и выполнить ее помогут разнообразные инструменты полигонального моделирования.

Полигоны

Полигональные каркасы — один из основных типов геометрии, используемый в SOFTIMAGE|XSI. Полигональные каркасы состоят из полигонов. Полигоны — это закрытая двумерная форма, ограниченная ребрами, пересекающимися в точках, называемых вершинами (vertice (Вершина)). Полигоны содержат одинаковое число вершин и ребер. Ребра одного полигона не пересекаются. Простейший полигон — это треугольник.

Полигоны классифицируются числом ребер или вершин. Наиболее используемые полигоны в моделинге — это треугольники и четырехугольники.

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

Полигональные каркасы состоят из нескольких типов компонентов. С помощью фильтров панели выбора вы можете выбирать каждый тип компонентов и работать с ним (рис. 4.1):

Плоские полигоны на полигональном каркасе называются танарными. Планарные полигоны дают лучшие результаты при рендеринге.

Треугольники всегда планарные, потому что три точки определяют одну плоскость. Четырех- и более угольники могут быть непланарнымии, потому что при перемещении одной из вершин они будут определяться несколькими плоскостями (рис. 4.2). Во время тесселяции, перед рендерингом, непланарные полигоны делятся на треугольники.

Рис. 4.1. Полигональный каркас и его элементы

Рис. 4.2. Пленарный и непланарный полигоны

Полигональные каркасы обладают еще одним превосходным свойством, помимо основных (глобальных) материала и текстуры, каждый полигон каркаса может иметь свои собственные (локальные) материал и текстуру, но эти вопросы будут рассмотрены чуть позже, при изучении материалов и текстур.

Вы можете создать полигональный каркас несколькими путями:

Также вы можете использовать примитивы программы или импортировать полигональный каркас.

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

Для того чтобы выбрать прилегающие компоненты того же типа выделенного элемента каркаса:

1. Выберите компонент полигонального каркаса (точку, ребро или полигон).

Рис. 4.3. Выбор прилегающих компонентов

2. Выполните команду Select | Grow Selection (Выбор | Прилегающие компоненты) в панели выбора или нажмите комбинацию клавиш <Shift>+<N>.

Если была выбрана точка, то к ней добавятся все прилегающие точки, если было выбрано ребро, к нему добавятся все прилегающие ребра, если полигон — то прилегающие полигоны (рис. 4.3).

Для того чтобы выбрать смежные компоненты выделенного элемента каркаса:

1. Выберите компонент полигонального каркаса (точку, ребро или полигон).

2. Выполните команду Select | Select Adjacent (Выбор | Смежные компоненты) на панели выбора. Затем в появившемся подменю выберите тип смежных компонентов, которые необходимо выбрать:

Рис. 4.4. Выбор смежных компонентов

SOFTIMAGE|XSI предоставляет разнообразные инструменты для работы с полигональными каркасами. Они сосредоточены в ячейке меню Modify | Poly. Mesh (Модифицирование | Полигональный каркас) в модуле Model (Модель) программы.

Работа с полигонами

Инструмент Add/Edit Polygon (Добавить/редактировать полигон) позволяет интерактивно добавлять полигоны путем размещения вершин. Вы можете использовать его для добавления полигонов к существующему полигональному каркасу, для добавления или удаления точек на существующие полигоны, а также для создания нового полигонального каркаса. Для добавления полигонов:

1. При создании нового полигонального каркаса убедитесь, что ничего не выбрано. При добавлении полигонов существующего' полигонального каркаса выберите этот каркас. При добавлении или удалении точек существующего полигона, выберите этот полигон.

2. Выберите Modify | Poly. Mesh | Add/Edit Polygon Tool (Модифицирование | Полигональный каркас | Добавить/редактировать полигон) в модуле Model (Модель) программы.

3. Затем выполните одно из следующих действий:

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

Когда вы закончили рисовать полигон:

Работа с ребрами

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

Для добавления ребер:

!. Выберите полигональный каркас.

2. Выберите команду Modify | Poly. Mesh | Add Edge Tool (Модифицирование Полигональный каркас | Добавить ребро) в модуле Model (Модель) программы или нажмите клавишу <\>.

3. Поместите указатель мыши над существующим ребром или вершиной. Выбранный элемент подсветится.

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

5. Переместите указатель мыши над другим ребром или вершиной. Выбранный элемент подсветится.

6. Щелчком на подсвеченном элементе вы завершите этап создания нового ребра и можете создавать следующее.

7. Завершить работу с инструментом Add Edge Tool (Добавить ребро) можно нажатием правой кнопки мыши.

Работа с вершинами

Для работы с вершинами в XSI предназначен инструмент Add Vertex Tool (Добавить вершину). Он объединяет в себе инструменты деления ребер и перемещения точек.

Для работы с вершинами:

1. Выберите полигональный каркас.

2. Выберите команду Modify | Poly. Mesh | Add Vertex Tool (Модифицирование Полигональный каркас | Добавить вершину) в модуле Model (Модель) программы или нажмите клавишу <Insert>.

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

4. Завершить работу с инструментом Add Vertex Tool (Добавить, вершину) можно нажатием клавиши <Esc> или выбрав другой инструмент.

Инструменты полигонального моделирования

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

Итак, начнем рассмотрение инструментов, которые превращают рутинную работу в увлекательный процесс.

Вы можете разделить ребра интерактивно, используя инструмент Split Edge (Разделить ребро) или для точного разбиения команду Split Edge (with split control) (Разделить ребро с управлением деления). Используя оба этих способа, вы можете разделить параллельные ребра и соединить новые вершины. Для интерактивного разбиения ребер:

1. Выберите полигональный объект.

2. Выберите команду Modify | Poly. Mesh | Split Edge Tool (Модифицирование | Полигональный каркас | Разделить ребро) в модуле Model (Модель) программы или нажмите клавишу <]>.

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

4. Завершить операцию интерактивного деления можно нажатием правой кнопки мыши.

Если вам необходимо добиться точного разбиения ребер, осуществите следующие действия:

1. Выделите необходимые ребра на полигональном каркасе.

2. Выберите команду Modify | Poly. Mesh | Split Edge (with split control) (Модифицирование | Полигональный каркас | Разделить ребро с управлением деления) в модуле Model (Модель) программы. После этого откроется окно редактора свойств разбиения ребер.

3. В окне редактора свойств разбиения ребер слайдером Ratio Edge (Соотношение ребра) вы можете точно задать расположение точки на ребре. Активизирование опции Parallel Edge Loop (Зацикливание параллельных ребер) приводит к разбиению параллельных ребер с выбранным соотношением Ratio Edge (Соотношение ребра). Если пометить опцию Connect (Соединение), то все созданные вершины на параллельных ребрах будут соединены.

Для интерактивного разделения полигонов применяется команда Split Polygon (Разделить полигон). Для этого вам необходимо выделить полигональный объект и выбрать команду Modify | Poly. Mesh | Split Polygon Tool (Модифицирование | Полигональный каркас Разделить полигон) в модуле Model (Модель) программы или нажать клавишу <[>. После выбора этого инструмента перемещение указателя мыши над каркасом подсвечивает полигон, который может быть разделен. Затем:

Рис. 4.5. Разделение полигона: а — левым щелчком; б — средним щелчком; в — правым щелчком

Равномерно подразделить полигоны и ребра вы можете с использованием команды Subdivide Polygons/Edges (Подразделить полигоны/ребра). Эта команда работает по-разному для полигонов и ребер. Для разбиения полигонов:

1. Выделите требуемые полигоны каркаса.

2. Выберите команду Modify | Poly. Mesh] Subdivide Polygons/Edges (Модифицирование Полигональный каркас | Подразделить полигоны/ребра) в модуле Model (Модель) программы, после чего будет открыто окно редактора свойств.

3. В окне редактора свойств определите методы подразделения:

Рис. 4.6. Тип подразделений полигонов: а — Plus; б — Diamond; в — X

При подразделении ребер каркаса инструментом Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование Полигональный каркас Подразделить полигоны/ребра) вызывается редактор свойств, аналогичный редактору при использовании команды Modify | Poly. Mesh | Split Edge (with split control) (Модифицирование | Полигональный каркас | Разделить ребро с управлением деления). Только вместо слайдера Ratio Edge (Соотношение ребра) он содержит слайдер Subdivisions (Подразделение), который определяет количество новых ребер.

Рис. 4.7. Различный уровень повторений при разделении полигона: а — Iterations = 1; б — Iterations = 2

Рис. 4.8. Разделение полигона типом подразделения X: а — опция Tile включена; б — опция Tile выключена

Существует три различных пути удаления компонентов полигонального каркаса:

Понимание работы каждого из них окажет хорошую помощь при моделировании.

Для удаления полигонов, ребер и вершин можно выбрать команду Modify | Poly. Mesh | Delete Component (Модифицирование | Полигональный каркас | Удалить компонент) в модуле Model (Модель) или нажать комбинацию клавиш <Alt>+<Delete>. Удалить полигон вы можете нажатием клавиши <Delete>. Операция удаления оставляет сквозные дыры в полигональном каркасе.

При удалении вершины удаляются все ребра и полигоны, которые определялись этой вершиной (рис. 4.9).

Рис. 4.9. Удаление выбранной вершины

При удалении ребра удаляются полигоны, которые определялись этим ребром (рис. 4.10).

При удалении полигонов удаляются все ребра и вершины, которые образовывали эти полигоны (рис. 4.11).

Для растворения компонентов используется команда Modify | Poly. Mesh | Dissolve Component (Модифицирование | Полигональный каркас Растворить компонент) в модуле Model (Модель). Растворить ребро или вершину вы можете нажатием клавиши <Delete>. Операция растворения оставляет дыры в полигональном каркасе, которые закрываются новыми полигонами.

При растворении вершины растворяются все ребра и полигоны, которые определялись этой вершиной (рис. 4.12). Образовавшаяся дыра в полигональном каркасе закрывается новым полигоном.

Рис. 4.10. Удаление выбранного ребра

Рис. 4.11. Удаление выбранных полигонов

Рис. 4.12. Растворение выбранной вершины

При растворении ребра растворяются полигоны, которые определялись этим ребром (рис. 4.13). Образовавшаяся дыра в полигональном каркасе закрывается новым полигоном.

Рис. 4.13. Растворение выбранного ребра

При растворении полигонов растворяются все ребра и вершины, которые образовывали эти полигоны (рис. 4.14). Образовавшаяся дыра в полигональном каркасе закрывается новым полигоном.

Рис. 4.14. Растворение выбранных полигонов

Для удаления полигонов, ребер и вершин путем их сворачивания используется команда Modify | Poly. Mesh | Collapse Component (Модифицирование | Полигональный каркас | Свернуть компонент) в модуле Model (Модель) или

нажатием комбинации клавиш <Ctrl>+<Delete>. Операция сворачивания удаляет выбранные компоненты, при этом оставшиеся компоненты соединяются иным образом без образования дыр в полигональном каркасе.

При сворачивании вершины удаляются все ребра, которые определялись данной вершиной. Оставшиеся вершины этих ребер соединяются, образуя новые ребра (рис. 4.15).

Рис. 4.15. Сворачивание выбранной вершины

При сворачивании ребра оно удаляется. Две вершины, которые определяли данное ребро, преобразуются в одну. Это напоминает масштабирование ребра в нуль (рис. 4.16).

Рис. 4.16. Сворачивание выбранного ребра

При сворачивании полигона он удаляется. Все вершины, которые определяли данный полигон, преобразуются в одну. Это напоминает масштабирование полигона в нуль (рис. 4.17).

Рис. 4.17. Сворачивание выбранного полигона

Дублирование элементов полигонального каркаса является одной из фундаментальных операций при моделировании с использованием полигонов. Вы можете дублировать полигоны, ребра и вершины, используя комбинацию клавиш <Ctrl>+<D>, или вытягивать их вдоль оси или кривой с помощью команды меню Modify | Poly. Mesh (Модифицирование | Полигональный каркас). Дублирование и вытягивание — похожие операции, они имеют много общих параметров. Эти параметры вы можете обнаружить в редакторе свойств Extrude Op (Операция вытягивания).

При вытягивании смежных компонентов опция Merge (Объединить) управляет тем, как вытягиваются компоненты, вместе или раздельно (рис. 4.18).

Параметр Skirting Ratio (Соотношение окаймления) при вытягивании ребер и точек управляет величиной основания (рис. 4.19).

При вытягивании с подразделением компонентов этот параметр применяется к каждому подразделению (рис. 4.20).

Параметр Subdivs (Подразделение) при вытягивании ребер и точек управляет количеством подразделений вдоль оси или кривой вытягивания. На рис. 4.20 этот параметр равен трем.

Опции вкладки Transform (Трансформирование) редактора свойств Extrude Op (Операция вытягивания) позволяют определить параметры Scaling (Масштабирование), Rotation (Вращение) и Translation (Перемещение), используемые при вытягивании. Введенные значения применяются к каждому сегменту подразделения при вытягивании, если значения нулевые, то операция выполняется без трансформирования. Например, на рис. 4.21 показано вытягивание полигона по оси Y с применением масштабирования по осям X и Z и вращением по оси Y.

Рис. 4.18. Вытягивание полигонов: а — опция Merge включена; б — опция Merge выключена

Рис. 4.19. Вытягивание точки и ребра (Skirting Ratio = 0,5)

Рис. 4.20. Вытягивание точки и ребра с подразделением (Skirting Ratio = 0,5)

Рис. 4.21. Вытягивание полигона

При выделении компонента полигонального каркаса и дублировании его с использованием команды Edit | Duplicate/Instantiate | Duplicate Single (Редактирование | Дублирование/клонирование | Одиночное дублирование) или нажатием комбинации клавиш <Ctrl>+<D>, создается копия этого элемента, которая становится выбранной. При этом окно редактора свойств Extrude Op (Операция вытягивания) не открывается, а открыть его можно с помощью стека операторов, который будет рассмотрен позже в этой же главе.

Для вытягивания компонентов полигонального каркаса используется команда Modify | Poly. Mesh | Extrude Along Axis (Модифицирование | Полигональный каркас Вытянуть вдоль оси) в модуле Model (Модель). После применения этой команды к выделенному компоненту открывается окно редактора свойств, в котором, помимо рассмотренных выше параметров, имеются следующие:

Рис. 4.22. Вытягивание полигона: а — при активизированной опции Object; б —при активизированной опции Component

XSI позволяет вытягивать компоненты не только вдоль оси, но и вдоль кривой. Эта операция выполняется с использованием команды Modify | Poly. Mesh | Extrude Along Curve (Модифицирование | Полигональный каркас | Вытянуть вдоль кривой) в модуле Model (Модель). Для этого необходимо выбрать элемент полигонального каркаса и применить данную команду. Затем щелкнуть на кривой, вдоль которой будет производиться вытягивание.

Рис. 4.23. Вытягивание полигона: а — при включенной опции Autorotate; б— при выключенной опции Autorotate

Рис. 4.24. Вытягивание полигона: а — при включенной опции Perpendicular; б— при выключенной опции Perpendicular

После этого откроется окно редактора свойств, содержащее дополнительные параметры:

Стек операторов

Для того чтобы вызвать редактор свойств при дублировании, как упоминалось выше, необходимо воспользоваться стеком операторов. Стек операторов — это еще один из фундаментальных компонентов SOFTIMAGE|XSI при моделировании. По сути дела он является хронологией создания объектов, что относится абсолютно ко всем типам объектов. В стек операторов записываются все операторы, которые были применены к объекту. Вы можете обратиться к нему в любое время и изменить или удалить определенный оператор. Просмотреть стек операторов можно в проводнике. Он обозначается как папка с названием типа объекта (например, Polygon Mesh (Полигональный каркас) или NURBS Surface Mesh (NURBS поверхностный каркас)) и следует первым после названия объекта в его дереве (рис. 4.25).

Рис. 4.25. Стек операторов

Например, если вы сделали примитив полигональный куб и применили к нему операцию вытягивания полигонов, затем деформировали поверхность с использованием операции Modify | Deform | Randomize (Модифицирование | Деформирование | Внести беспорядочность) в модуле Model (Модель), то это отразится в стеке операторов. Теперь, используя стек операторов, можно открыть вкладку свойств любого оператора и изменить значения. Любые изменения, выполненные в стеке операторов, отразятся на финальном объекте.

Важно понимать порядок воздействия операторов на результат. Предположим, что в предыдущем примере вы захотели изменить подразделение полученного объекта и для этого открыли вкладку свойств Geometry (Геометрия) и изменили Subdivisions (Подразделения) куба. После этого вытянутыми окажутся совершенно не те полигоны, которые были вытянуты сначала. Это произошло из-за того, что был изменен оператор, который предшествовал всем остальным. Для того чтобы подразделить заключительный объект, к нему нужно применить операцию подразделения. Оператор SubdividePolygon (Подразделение полигона) станет последним примененным в стеке операторов и будет применен, как это и необходимо, к финальному объекту предыдущего примера (рис. 4.26).

Рис. 4.26. Объект и его подразделение: а — объект; б — подразделение объекта путем изменения первоначальной геометрии; в — подразделение объекта путем применения оператора SubdividePolygon

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

Операторы подразделяются на несколько категорий.

При работе с объектом вы можете заморозить стек операторов. Удаление хронологии уменьшает требуемое количество памяти компьютера и ускоряет обновление сцены. После этого вы не сможете изменять параметры операторов и доступной останется только операция Undo (Отмена последних изменений). Для замораживания стека операторов выделите объект и щелкните на кнопке Freeze (Заморозить) на панели Edit (Редактирование) или выберите команду Edit | Freeze Operator Stack (Редактирование | Заморозить стек операторов).

В SOFTIMAGE|XSI существует непосредственный режим, при котором во время работы не создается стек операторов. Работа в этом режиме аналогична замораживанию стека после каждого действия.

Непосредственный режим используется при перемещении точек или добавлении и вытягивании элементов полигонального каркаса. В стек не записывается большое количество примененных операторов и сцена становится меньше. Активизировать непосредственный режим можно щелчком на кнопке Immed (Непосредственно) панели Edit (Редактирование).

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

Если вы посмотрите вокруг себя, то вы с трудом обнаружите идеально прямые углы. В виртуальном мире это является показателем либо огромной спешки при создании модели, либо дилетантства. Всегда обращайте на это внимание. Если модель будет хотя бы изредка показана крупным планом, используйте скашивание углов. Это особенно актуально при полигональном моделировании, потому что для того чтобы получить прямой или острый угол на NURBS-поверхности, необходимо приложить дополнительные усилия. Для сглаживания углов полигональных каркасов в XSI используется команда Modify] Poly. Mesh | Bevel Component (Модифицирование! Полигональный каркас | Скосить компонент) в модуле Model (Модель). Вы можете скосить полигон, вершину или ребро (рис. 4.27). Для этого выберите требуемый компонент и примените команду Bevel Component (Скосить компонент).

Рис. 4.27. Объект и скашивание его компонентов: а — объект; б — скашивание полигона; в — скашивание вершины; г — скашивание ребра

SOFTIMAGE|XSI содержит интересный инструмент Bridge Polygons (Мост между полигонами), который позволяет создавать тоннели или мосты между двумя полигонами одного полигонального каркаса.

Для создания моста на полигональном каркасе:

1. Выберите один или несколько смежных полигонов объекта.

2. Добавьте один или более других смежных полигонов того же самого объекта. При этом полигоны второй группы не должны быть смежными с полигонами первой группы (рис. 4.28).

3. Выберите команду Modify | Poly. Mesh | Bridge Polygons (Модифицирование | Полигональный каркас | Мост между полигонами) в модуле Model (Модель). Выбранные полигоны будут удалены и созданы новые полигоны (рис. 4.29).

Рис. 4.28. Выбор полигонов объекта для создания моста и тоннеля

Рис. 4.29. Создание моста и тоннеля на полигональном каркасе

Комбинирование полигональных каркасов

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

Вы можете объединять полигональные каркасы несколькими путями.

Объединение создает новый полигональный каркас, объединяя выбранные каркасы. Эта операция автоматически объединяет границы каркасов, создавая ребра 1иежду ними и среднем положении (рис. 4.30). Новый каркас не наследует от исходных материалы, текстуры и другие свойства.

Рис. 4.30. Объединение полигональных каркасов

Для объединения полигональных каркасов:

1. Выберите полигональные каркасы, которые необходимо объединить в один.

2. Затем примените команду Create | Poly. Mesh | Merge (Создать Полигональный каркас Объединить).

3. После этого будет создан новый полигональный каркас и откроется окно редактора свойств Merge Meshes (Объединить каркасы).

4. В редакторе свойств вы можете слайдером Tolerance (Допуск) изменять расстояние допуска между соединяемыми элементами в единицах программы. Опция Blend (Смешивание) будет дезактивирована.

Операция смешивания работает аналогично объединению, но при этом создаются новые полигоны в месте объединения исходных полигональных каркасов (рис. 4.31).

Рис. 4.31. Смешивание полигональных каркасов

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

Использовать булевы операции в SOFTIMAGE|XSI можно только по отношению к полигональным каркасам. В программе имеется несколько способов применения этих операций.

Но для любого из вышеупомянутых способов существует три булевых операции:

В качестве наглядного примера можно рассмотреть действие булевых операций на куб и сферу (рис. 4.32):

Рис. 4.32. Исходные примитивы для булевых операций — куб и сфера

В использовании булевых операций есть один небольшой трюк. Если вы хотите разрезать плоскостью полигональный каркас, необходимо вычесть из него сетку (рис. 4.36).

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

Рис. 4.33. Применение операции Difference к исходным примитивам

Рис. 4.34. Применение операции Intersection к исходным примитивам

Рис. 4.35.Применение операции Union к исходным примитивам

Рис. 4.36. Разрезание полигонального каркаса

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

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

Упражнение. Создание корабля для перемещения в атмосфере планеты

В этом упражнении вы создадите корабль с вертикальным взлетом для перемещения в атмосфере планеты (рис. 4.37). При создании вы получите навык работы с полигональными каркасами и опробуете на практике работу большинства инструментов, предлагаемых SOFTIMAGE|XSI для работы с полигонами. Перед началом работы активизируйте опцию Select | Extended Component Selection (Выбор | Расширенный выбор компонентов).

Рис. 4.37. Финальный вид корабля

Создайте куб, выбрав команду Get | Primitive | Polygon Mesh | Cube (Создать Примитив j Полигональный каркас | Куб). Ничего не изменяйте в редакторе свойств. Затем отмасштабируйте данный куб по оси У на 0,7, по оси Z— на 2 (рис. 4.38).

После этого активизируйте режим работы с ребрами, щелчком на кнопке Edge (Ребро) в панели выбора и выберите длинные ребра куба. После выбора ребер они будут окрашены в красный цвет (рис. 4.39).

Разделите выбранные ребра путем выбора команды Modify | Poly. Mesh j Subdivide Polygons/Edges (Модифицирование | Полигональный каркас | Подразделить полигоны/ребра). В открывшемся окне редактора свойств SubdivideEdge (Подразделить ребро) установите параметр Subdivisions (Подразделение), равный пяти, остальные параметры оставьте без изменений. Выбранные ребра разделятся на пять равных частей (рис. 4.40).

Рис. 4.38. Исходный примитив

Рис. 4.39. Выбор ребер

Рис. 4.40. Подразделение выбранных ребер

Теперь начнем формирование передней части фюзеляжа корабля. Для этого выберем полигон торцевой части. Это можно сделать, активизировав быстрым нажатием клавиши <U> режим выбора полигонов инструментом Raycast (Падение луча). После этого просто щелкните на полигоне в окне Camera (Камера) или Front (Вид спереди). Выбранный полигон будет подсвечен красным цветом (рис. 4.41).

Рис. 4.41. Выбор полигона торцевой части

Дублируйте выбранный полигон выбором команды Edit | Duplicate/ Instantiate | Duplicate Single (Редактирование Дублирование/Клонирование | Одиночное дублирование) на панели редактирования или нажатием комбинации клавиш <Ctrl>+<D>. Затем немного уменьшите его масштаб и переместите вперед (рис. 4.42). При выполнении операций масштабирования и перемещения всегда следите за режимами, в которых вы работаете. Не будет лишним напомнить, что режимы определяются в панели трансформирования, ниже блока Translation (Перемещение).

Подобным образом дублируйте выбранный полигон, масштабируя и перемещая каждую копию, сформируйте переднюю часть фюзеляжа корабля (рис. 4.43).

Выберите средние полигоны первоначального куба и при активизированном режиме Global (Глобальный) увеличьте немного масштаб по оси X, эта операция расширит корпус корабля в средней части (рис. 4.44).

После этого операциями дублирование, масштабирование и перемещение сформируйте заднюю часть корпуса корабля (рис. 4.45).

Рис. 4.42. Масштабирование и перемещение полигона торцевой части

Рис. 4.43. Сформированная передняя часть корабля

Поскольку предполагается, что корабль будет иметь вертикальный взлет и посадку, сделайте ему турбину в центральной части корпуса, для вертикальной тяги. Для этой задачи наиболее подходят булевы операции. Создайте цилиндр, выбрав команду Get | Primitive | Polygon Mesh | Cylinder (Создать Примитив Полигональный каркас Цилиндр). В редакторе свойств измените параметры Subdivision U (Подразделение по U) — 24, Radius (Радиус) — 3, Height (Высота) — 9. Цилиндр с этими параметрами будет находиться в месте создания турбины вертикальной тяги (рис. 4.46).

Затем выберите корпус корабля и примените команду Modify | Poly. Mesh | Boolean | Difference (Модифицирование Полигональный каркас | Булевы операции Вычитание). После этого щелкните на цилиндре. Эта операция выполнит булево вычитание геометрии цилиндра из корпуса корабля (рис. 4.47). Цилиндр теперь не нужен, поэтому нажатием клавиши <Н> его можно скрыть, если же вы предпочитаете удалить его из сцены, в этом случае необходимо предварительно заморозить стек операторов щелчком на кнопке Freeze (Заморозить), расположенной на панели редактирования.

Рис. 4.44. Расширение средней части корабля

Рис. 4.45. Фюзеляж корабля почти готов

Для создания хвостовой части корабля выберите ребра на верхней части корпуса и, используя команду Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование | Полигональный каркас Подразделить полигоны/ребра), разделите их на три части. В окне редактора свойств Subdivide Edge (Подразделить ребро) установите параметр Subdivisions (Подразделение) равным трем (рис. 4.48).

Рис. 4.46. Цилиндр для создания турбины

Рис. 4.47. Созданное отверстие турбины вертикальной тяги

Рис. 4.48. Начало формирования хвостовой части корабля

Выберите средние полигоны верхней части (см. рис. 4.48) и нажатием комбинации клавиш <Ctrl>+<D> дублируйте их. После этого переместите дублированные полигоны немного вверх (рис. 4.49).

Рис. 4.49. Вытягивание полигонов хвостовой части корабля

Получившееся основание ребра хвостового оперения достаточно широкое и для того, чтобы его сузить, активизируйте режим работы с точками. Для этого необходимо щелкнуть на кнопке Point (Точка) на панели выбора или нажать клавишу <t>. Затем выберите точки, которые формируют ребро хвостовой части и в режиме Global (Глобальный) уменьшите немного масштаб по оси X(рис. 4.50).

Рис. 4.50. Сужение ребра хвостовой части

После этого в окне проекций Right (Вид справа), используя режим работы с точками, выделяя и перемещая точки, закончите формирование хвостовой части корабля (рис. 4.51).

Для создания балки крепления ротора турбины выделите ребра хвостовой части (рис. 4.52) и, используя команду Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование Полигональный каркас | Подразделить полигоны/ребра), разделите их на две части. В окне редактора свойств установите параметр Subdivisions (Подразделение) равным двум.

Затем выберите верхние полигоны как показано на рис. 4.53.

Для соединения выбранных полигонов воспользуйтесь командой Modify | Poly. Mesh | Bridge Polygons (Модифицирование | Полигональный каркас Мост между полигонами). Применение этой операции создаст мост между полигонами, и вы получите искомую балку (рис. 4.54).

Теперь перейдем к носовой части корабля и создадим иллюминаторы кабины пилотов. Это базовая методика создания окон на полигональных каркасах. Выберите ребра на верхней носовой части корпуса корабля и, используя команду Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование | Полигональный каркас Подразделить полигоны/ребра), разделите их на три части. В окне редактора свойств установите параметр Subdivisions (Подразделение) равным трем (рис. 4.55).

Рис. 4.51. Ребро хвостовой части корабля почти готово

Рис. 4.52, Выделение ребер хвостового оперения

Рис. 4.53. Выделение полигонов для создания балки

Рис. 4.54. Балка крепления создана

Рис. 4.55. Разделение ребер носовой части

Выберите только два средних ребра и в режиме Global (Глобальный) уменьшите немного масштаб по оси X. После этого выберите два полигона, на месте которых будут сформированы иллюминаторы кабины пилотов (рис. 4.56).

Рис. 4.56. Выбранные полигоны для формирования иллюминаторов кабины

Затем дублируйте полигоны нажатием комбинации клавиш <Ctrl>+<D> и уменьшите их масштаб (рис. 4.57).

Рис. 4.57. Уменьшение масштаба дублированных полигонов

После этого переместите дублированные полигоны немного внутрь корабля, и вы получите иллюминаторы кабины пилотов или просто стандартные полигональные окна (рис. 4.58).

По аналогичной методике создайте боковые иллюминаторы на корпусе корабля (рис. 4.59).

Для создания крыльев выделите четыре ребра нижней части корабля, как показано на рис. 4.59, и разделите их на три части. Затем выделите средние полигоны, дублируйте их и примените команду Modify | Poly. Mesh | Extrude Along Axis (Модифицирование | Полигональный каркас Вытянуть вдоль оси). После применения этой операции к выделенным полигонам откроется окно редактора свойств, в котором установите параметр Length (Длина) равным 4, отметьте только ось X, и Frame (Кадр) переключите в активизирование опции Object (Объект). На рис. 4.60 показана полученная основа крыла. По аналогии постройте второе крыло.

Поскольку вы уже в достаточной степени овладели методикой "дублирование — масштабирование — перемещение", выделите только полигоны на торцах передней части крыльев и сформируйте корпуса турбин горизонтальной тяги (рис. 4.61).

Рис. 4.58. Созданные иллюминаторы кабины пилотов

Рис. 4.59. Созданные боковые иллюминаторы

Рис. 4.60. Начало построения крыла

Рис. 4.61. Корпус турбины горизонтальной тяги

На корпусах турбин выделите фронтальный и тыльный полигоны (см. рис. 4.61), скопируйте их и, немного уменьшив масштаб, переместите (рис. 4.62).

Рис. 4.62. Формирование турбины

Выделив полигоны торцевых частей корпуса турбины, выполните команду Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование | Полигональный каркас | Подразделить полигоны/ребра) или нажмите комбинацию клавиш <Shift>+<D>. После этого откроется окно редактора свойств SubdividePolygon (Подразделить полигон). В этом окне измените Subdivision Туре (Тип подразделения) на Diamond (Ромб), остальные параметры оставьте без изменений. Полигоны торцевых частей при этом будут разделены так, как показано на рис. 4.63.

Выделите центральные полигоны, дублируйте их нажатием комбинации клавиш <Ctrl>+<D> и немного уменьшите их масштаб (рис. 4.64).

Центральные части турбин традиционно имеют круглую форму, и вам необходимо добавить подразделение ребер полигонов центральной части, для чего следует при выделенных полигонах выполнить команду Select | Select Adjacent | Edges (Выбор Смежные компоненты | Ребра). Эта операция выберет ребра полигонов центральной части (рис. 4.65).

После этого примените команду Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование| Полигональный каркас | Подразделить полигоны/ребра) или нажмите комбинацию клавиш <Shift>+<D>. Используя команду Modify | Poly. Mesh | Subdivide Polygons/Edges (Модифицирование Полигональный каркас Подразделить полигоны/ребра), разделите каждое выбранное ребро на 4 части. В окне редактора свойств установите параметр Subdivisions (Подразделение) равным 4 (рис. 4.66).

Рис. 4.63. Разделение торцевых полигонов турбины

Рис. 4.64. Уменьшение центральных полигонов турбины

Рис. 4.65. Выбор ребер центральных полигонов турбины

Рис. 4.66. Разделение ребер центральных полигонов турбины

Для создания округлых частей воспользуйтесь инструментом Snap (Привязка). Это очень полезный и нужный инструмент при моделировании. Используя его, вы можете создать привязку к любым компонентам объектов.

Поскольку необходимо сформировать округлые части, в качестве направляющих лучше использовать окружности. Создайте окружность выбором команды Get | Primitive | Curve | Circle (Создать | Примитив | Кривая | Окружность). Обратите внимание, что окружность имеет 16 точек, так же как и ребра полигонов внутренних частей турбин. После этого измените масштаб и переместите окружность, как показано на рис. 4.67.

Рис. 4.67. Масштабирование и перенос направляющей окружности

Используя точки окружностей как направляющие для привязки, сформируйте внутренние полигоны турбины. Для этого в панели привязок щелкните на кнопке ON (Включить) и на кнопке с изображением точки, остальные кнопки панели должны быть дезактивированы. Данная процедура включает режим привязки к точкам. После этого в окне привязки Front (Вид спереди) выделите корпус корабля и выберите инструмент Move Point (Перемещение точек). Выбрать этот инструмент можно командой Modify | Component | Move Point tool (Модифицирование | Компонент Перемещение точек) в модуле программы Model (Модель) или нажатием клавиши <М>. На панели выбора режимов трансформирования укажите режим View (Вид) и в окне проекций Front (Вид спереди) переместите точки внутренних частей турбин на точки окружности (рис. 4.68). Проделайте подобную операцию со второй турбиной.

Рис. 4.68. Перемещение точек центральных полигонов турбины

Далее выберите округлые полигоны торцов турбины (рис. 4.69).

Затем, выполнив команду Modify | Poly. Mesh | Bridge Polygons (Модифицирование | Полигональный каркас Мост между полигонами), вы создадите тоннель в теле турбины (рис. 4.70).

Корпус корабля практически построен, осталось только скосить острые и прямые углы его поверхности. Для этого выберите угловые ребра и выполните команду Modify | Poly. Mesh | Bevel Component (Модифицирование Полигональный каркас | Скосить компонент) в модуле Model (Модель). Выбранные ребра будут скошены, и корпус корабля примет приблизительно такой вид, как на рис. 4.71.

Рис. 4.69. Выбор округлых полигонов турбины

Рис, 4.70. Окончательный вид тела турбины

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

Рис. 4.71. Окончательный вид корпуса корабля

Выберите команду Get | Primitive | Polygon Mesh | Cylinder (Создать I Примитив | Полигональный каркас | Цилиндр). В редакторе свойств измените параметры: Subdivision U (Подразделение по U) - 24, Subdivision V (Подразделение по V) - 3, Radius (Радиус) - 0,5, Height (Высота) - 1. После того выберите полигоны средней части созданного цилиндра (рис. 4.72). 

Рис. 4.72. Цилиндр для создания ротора турбины

Рис. 4.73. Ротор турбины вертикальной тяги

Рис. 4.74. Окончательный вид корабля

Лопасти ротора турбины создайте с помощью команды Edit | Duplicate/Instantiate | Duplicate Multiple (Редактирование Дублирование/ Клонирование | Множественное дублирование) на панели редактирования или нажатием комбинации клавиш <Ctrl>-<Shift>+<D>. Затем в открывшемся редакторе свойств Extrude (Вытягивание) измените параметр Lenght (Длина) — 2,33, отметьте только ось Y и Frame (Кадр) переключите в активизирование опции Component (Компонент), при этом Subdivs (Подразделение) — 5. На странице с вкладкой Transform (Трансформирование) установите Scaling X (Масштабирование по оси X) — 1.4, Rotation Y (Вращение по Y) — 9,3. После этого вы получите ротор турбины вертикальной тяги (рис. 4.73).

С помощью операций перемещения поместите ротор в верхнюю часть турбины. Затем нажатием комбинации клавиш <Ctrl>+<D> скопируйте его, уменьшите масштаб в режиме Uni (Объединенный) и переместите в боковую турбину. Такую же копию сделайте для другой боковой турбины (рис. 4.74).

Корабль для перемещения в атмосфере построен, осталось только сохранить его для дальнейшей работы. Заключительная сцена находится на компакт-диске и называется ship_2.

Подразделенная поверхность

Однако полигональное моделирование в SOFTIMAGEJXSI не ограничивается относительно простыми моделями для игр и созданием технических объектов. В XSI с использованием полигонов можно создавать органические объекты. Для этого предназначены Subdivision Surfaces (Подразделенные поверхности). С помощью такого типа поверхностей создаются полигональные каркасы высокого разрешения (содержащие большое количество элементов) из полигональных каркасов низкого разрешения (содержащих малое количество элементов), которые используются для управления каркасами высокого разрешения (рис. 4.75).

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

Существует три пути подразделения полигонального каркаса:

Рис. 4.75. Подразделенные поверхности

Генерирование нового объекта

Вы можете создать новый полигональный каркас объекта высокого разрешения из полигонального каркаса низкого разрешения. Пока сохраняется режим относительности, вы можете модифицировать и анимировать объект низкого разрешения для управления объектом высокого разрешения (рис. 4.76). Вы можете скрыть полигональный каркас объекта высокого разрешения, пока вы анимируете или модифицируете каркас низкого разрешения. Также можно выключить опцию Render Visibility (Видимость при рендеринге) низкополигональной версии.

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

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

Рис. 4.76. Подразделенная поверхность, созданная генерированием нового объекта

Модифицирование геометрической аппроксимации

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

Рис. 4.77. Подразделенная поверхность, созданная изменением геометрической аппроксимации объекта

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

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

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

Локальное подразделение выбранных полигонов

Вы можете создать локальное подразделение определенных полигонов каркаса. Этот метод добавляет оператор в стек операторов полигонального каркаса и изменяет его топологию. Он используется для добавления деталей в определенных местах каркаса (рис. 4.78).

Рис. 4.78. Subdivision Surface, созданная локальным подразделением определенных полигонов каркаса

Работа с подразделенными поверхностями

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

В заключении вы можете применить геометрическую аппроксимацию этого объекта, и при рендеринге вы получите очень сглаженный объект. Существует большое количество алгоритмов, которые можно применить для подразделения поверхности полигонального каркаса. SOFTIMAGEIXSI пре доставляет выбор между двумя алгоритмами: Catmull-Clark и Doo-Sabin определяющим фактором при выборе какого-либо определенного алгоритма является ваше личное предпочтение, однако алгоритм Doo-Sabin не доступен при изменении геометрической аппроксимации.

Алгоритм Catmull-Clark выполняет скругление форм, и после его применения все полигоны каркаса становятся четырехугольниками (рис. 4.79).

Рис. 4.79. Применение алгоритма Catmull-Clark

При использовании алгоритма Doo-Sabin получается подразделенная поверхность, более приближенная к оригинальному каркасу (рис. 4.80). При каждой итерации каждый полигон оригинала генерирует подобный полигон, каждое ребро генерирует новый четырехугольный полигон, каждая вершина генерирует новый полигон с таким количеством вершин, сколько ребер соединяла эта вершина на оригинальном каркасе.

Рис. 4.80. Применение алгоритма Doo-Sabin

При использовании любого из методов подразделения поверхности вы можете определить уровень подразделения. Это определяет число итераций. Повышение уровня подразделения делает объект более сглаженным, утяжеляет геометрию и усложняет обработку (рис. 4.81).

Рис. 4.81. Различные уровни подразделения поверхности

Уровень подразделения — анимируемая величина, и вы, например, можете создать выражение, которое будет изменять уровень подразделения поверхности в зависимости от расстояния объекта до камеры.

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

Для создания нового объекта с подразделенной поверхностью из полигонального каркаса низкого уровня:

1. Выделите полигональный каркас, который будет использован как исходный объект подразделения.

2. Примените команду Create | Poly. Mesh | Subdivision (Создать | Полигональный каркас | Подразделение) в модуле Model (Модель).

3. После этого будет создан новый объект и откроется окно редактора свойств Mesh Subdivide (Подразделение поверхности), в котором вы можете изменить Subdivision Level (Уровень подразделения) и Subdivision Rule (Метод подразделения).

При изменении геометрической аппроксимации создается альтернативная геометрия объекта, используемая при рендеринге. Чтобы изменить аппроксимацию выбранного объекта, необходимо изменить его свойства, выбрав команду Get | Property | Geometry Approximation (Создать | Свойства | Геометрическая аппроксимация). Затем в открывшемся редакторе свойств Geometry Approximation (Геометрическая аппроксимация) на вкладке Polygon Mesh (Полигональный каркас) измените Mesh Subdivision Level (Уровень подразделения каркаса).

Для создания подразделенного участка на полигональном каркасе применяется локальное подразделение выбранных полигонов. После выбора необходимых полигонов выберите команду Modify | Poly. Mesh | Local Subdivision (Модифицирование | Полигональный каркас | Локальное подразделение) в модуле Model (Модель). Затем в открывшемся редакторе свойств можно изменить Subdivision Level (Уровень подразделения) и Subdivision Rule (Метод подразделения).

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

Рис. 4.82. Применение команды Mark Hard Edge/Vertex

Создатели программы SOFTIMAGEJXSI пошли далее создателей 3D Studio МАХ для облегчения работы пользователей. Если в МАХ включили примитив чайник, то в XSI были включены полноценные полигональные каркасы низкого уровня лиц и тел людей. Данные полигональные каркасы можно отнести к примитивам с огромной натяжкой и то в том случае, если можно назвать новенький автомобиль рыдваном. По сути дела это программа Poser от компании Metacreation. Такие полигональные каркасы могут быть использованы для создания подразделенной поверхности с последующей ее анимацией. Так же как остальные примитивы программы, лица и тела могут быть основой создания вашего собственного персонажа. Эти примитивы также могут помочь при создании ряда персонажей, которые имеют одинаковую топологию.

Для создания моделей лиц вам необходимо выбрать одну из двух команд: Get | Primitive | Model | Face — Man (Создать | Примитив | Модель | Лицо мужское) или Get | Primitive | Model | Face — Woman (Создать | Примитив | Модель | Лицо женское) (рис. 4.84).

Рис. 4.83. Применение команды Set Hard Edge/Vertex

Рис. 4.84. Женское и мужское лицо

После этого создается соответствующее лицо и открывается редактор свойств Face Maker (Создатель лица). В окне редактора свойств, используя слайдеры, вы можете изменять размеры и черты лица. Также возможно вручную изменять положение вершин, при этом возможность управления чертами с помощью редактора свойств сохраняется.

После создания лица вы можете удивиться и подумать: "А что мне делать с этими кирпичами?". Вот тут за дело берется инструмент Subdivision (Подразделение) поверхности. После этого лица выглядят куда привлекательнее (рис. 4.85).

Рис. 4.85. Женское и мужское лицо после применения Subdivision

Чтобы создать полигональные каркасы тел людей, выберите одну из двух команд: Get | Primitive | Model | Body — Man (Создать | Примитив Модель | Тело мужское) или Get | Primitive | Model | Body — Woman (Создать | Примитив | Модель | Тело женское) (рис. 4.86).

Затем в созданные тела можно вставить скелеты, с помощью которых выполнить анимацию.

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

Рис. 4.86. Женское и мужское тело

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

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