Кто не хочет читать ONLINE, можете скачать доступные части книги:

Скачать часть1 (1.1 Мб) - Ознакомление с программой 3ds MAX

Скачать часть2 (1.4 Мб) - Объекты произвольной формы

Скачать часть3 (2.2 Мб) (не завершена) - Текстурирование

Глава 17. Составные объекты (Compound Objects)

Мы рассмотрели все имеющиеся в 3ds MAX редактируемые объекты, теперь осталось рассмотреть ещё один особый класс объектов, которые не являются редактируемыми, но так же могут помочь при моделировании. По своей сути, составные объекты являются либо комбинацией двух или более объектов, либо создают нечто на основе готовых объектов.

Вообще, главным образом составные объекты позволяют создавать

Составные объекты доступны в разворачивающимся списке вкладки Create в группе объектов Geometry. В списке надо выбрать Compound Objects. Скорее всего, когда мы выберем этот класс геометрических объектов, большинство кнопок будут серыми и неактивными, что свидетельствует о том, что мы не можем создавать эти объекты.

Всё это происходит потому, что составные объекты создаются не с нуля, а на основе уже существующих объектов.

Вообще, эти объекты бывают нужны в редких случаях, видимо, поэтому они с эволюцией 3ds MAX почти не развиваются, разве что появляются всё новые и новые виды.

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

Особенности объектов с операндами

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

Copy, Reference, Instance - знакомые нам режимы. Если выбрать один из них, то добавляемый нами объект сохраняется на сцене, а в составной объект включается его клон, сделанный в одном из перечисленных режимов. Соответственно, если мы выбрали Copy, можно менять прототип операнда, оставшийся на сцене, и это никак не отразиться на составном объекте. Если выбрать Instance или Reference, составной объект будет зависеть от тех изменений, которым подвергнутся наши прототипы на сцене. Move - подбирает объект, а исходный прототип на сцене при этом удаляет.

Объекты, из которых состоят составные объекты, называются не подобъектами, а операндами (operands). Не у всех, но у некоторых составных объектов можно полчить доступ к редактированию операндов, а так же извлечь операнд (Extract Operand) - то есть создать на сцене клон (copy, instance или reference) операнда. Операндом является как исходный объект, так и остальные объекты, добавленные к нему.

В группе Parametres сразу можно видеть заголовок Objects (объекты) под которым белое поле с двумя названиями объектов. Названия операндов составляются из названий исходников, только в начало слова добавляются какие-нибудь символы, например "S_", или "D_", или ещё что-нибудь. При желании имена операндов можно поменять в двух строках чуть ниже.

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

Надо помнить, что если мы присоеденили операнд по методу Instance для того, то изменения, проводимые со стеком операнда будут так же влиять на стек его прототипа, оставшегося на сцене. Точно так же на операнд сказываются изменения, производимые с его прототипом. Аналогично, если операнд присоединялся по методу Reference, то изменения, проводимые с прототипом скажутся на операнде, но не наоборот. Над операндом, присоединённым по методу Reference может появиться ещё одна горизонтальная черта, над ней размещаются модификаторы, применённые к Reference-операнду, а уже нед ними будет ещё одна черта, выше которой уже находится то, что отностится непосредственно к составному объекту.

Для того, чтобы изменить положение операндов относительно друг друга, двигать прототипы операндов по сцене бесполезно. Здесь надо двигать сами операнды. Для этого, над чертой, где отображается природа составного объекта, надо развернуть плюсик напротив, выбрать слово Operands, а далее в менюшке снзу, в списке операндов кликать мышью по названию нужного операнда. Тогда будет выделяться опорная точка операнда, её можно двигать. Сам операнд может не отображаться, но он как бы существует, и мы двигаем не его прототип по сцене, а непосредственно операнд. Что касается прототипа операнда, даже если между ним и операндом установлена связь типа Instance или Reference, то, если вы помните, трансформации через эту связь не передаются. Передаются только изменения формы объекта и состояния его стека.

Morph - объект, меняющий форму

Вообще, это слово родственно таким словам как метаморфозы - то есть трансформации. По русски в сленге 3d графики есть такое слово как морфинг - это то, чем занимаются объект morph и родственный ему модификатор morpher.

Объект morph создаётся на основе какого-либо исходного объекта. Для этого надо выделить исходник (это может быть любой геометрический объект), а затем выбрать в списке Compound Objects и в наборе кнопок нажать Morph.

Объект Morph состаит не из операндов, поскольку сказать про него "состоит из других объектов" вряд ли правильно. Объект Morph не состоит из других объектов, он принимает их форму. Объекты, в которые превращается Morph называются не операндами, а целями (Targets). Целью для Morph может быть только тот объект, у которого число вершин и их нумерация совпадают с таковыми у базового объекта, который берётся за основу Morph.

У этого объекта есть список, который может включать в себя некоторое число целей и создавать на основе этих объектов анимацию превращения одного объекта в другой. Добавление объектов в список осуществляется по нажатии кнопки Pick Target и клику на соответствующий объект (либо при выборе из списка Select by Name). Если объект по тем или иным параметрам не подходит, он просто не будет добавляться и его название не будет отображаться в списке Select By Name.

Target - это цель, целевой объект - то есть объект, в который надо превратиться. Далее для составного объекта Morph и для модификатора Morpher будем использовать этот термин.

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

Под кнопкой Pick Target можно выбрать опцию, как подбирать цель: Copy, Reference, Instance, Move.

В группе Current Target находится список с перечисленными именами целей морфинга. Если выделить в списке имя той или иной цели, оно отобразиться в сторке чуть пониже, а ещё ниже имеются две кнопки: Create Morph Key - создать ключ морфинга - если выделить в списке одну из целей и нажать эту кнопку, когда бегунок анимации находится в каком-либо кадре, то в этом кадре создаётся ключ, в котором наш Morph-объект превращается в указанную цель. В другом кадре можно выделить другую цель и нажать ту же самую кнопку для неё.

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

А объект даёт нам возможность моделировать тела, деформирующиеся произвольным образом. Единственное, что нельзя менять число вершин, и лучше не менять их нумерацию. То есть можно создать некую заготовку, а все цели получить посредством копирования этой заготовки и редактирования копий. При редактировании копий нельзя добавлять или убирать вершины. В связи с этим нельзя использовать такие инструменты как Cut, Extrude, Devide, Slice Plane, Tesselate, MeshSmooth и другие, использование которых сопровождается появлением новых вершин. В принципе можно аккуратно удалять грани или рёбра, если при этом не удаляются вершины. Но в общем-то удалять грани и рёбра обычно незачем. То есть, фактически, цели для морфинга изготавливаются за счёт перемещения вершин у копий, сделанных с исходного объекта.

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

Поэтому, используя морфинг надо быть осторожным: если вы собираете цели посредством приаттачивания (Attach) нескольких объектов к некому исходнику, надо следить за тем, чтобы части у исходника и всех целей приаттачивались в одном и том же порядке, иначе нумерация вершин у некоторых целей может несоответствовать тому, что надо получить в итоге, и ваш Morph-объект просто перемнётся и вывернется на изнанку. Чтобы этих проблем не было, лучше редактировать цели морфинга не разбивая их на разные объекты и не собирая из разных частей. Сначала полностью изготовить базовый объект, а потом копировать его и просто редактировать вершины.

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

Для чего можно использовать Morph: В общем и целом, для всего, что так или иначе меняет свою форму. Раньше в старых трёхмерных играх именно за счёт морфинга осуществлялась анимация движущихся персонажей. Но с развитием технологий трёхмерной графики от этого способа создания движения отказались. Вернее, если говорить не только о современных играх, но и о других видах анимации, анимацию персонажей разделили на скелетную и мимическую. Скелетная анимация осуществляется там, где так или иначе тело можно разбить на отдельные части, в которые вставить скелет, подобный шарнирному каркасу для кукольных персонажей, а мимическая анимация применяется там, где использовать скелет весьма проблематично. Главным образом, морфинг используется для анимации мимики лица, но иногда можно задействовать его и для других частей тела, например для имитации работы мускулатуры. Тут морфинг сочетается со скелетной анимацией.

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

Можно так же морфер использовать для анимации поведения всяких мягких вещей (или даже вмеру жидких вязких вещей), но каждое состояние вещи рисовать для каждого ключевого кадра.

Недостатки объекта Morph: может быть кому-то поначалу это покажется большим достоинством, но у объекта Morph очень мало параметров. Мало параметров - это не значит меньше головной боли, а совсем наоборот. Во-первых, даже через меню Curve Editor (в ранних версиях Track View) нельзя получить доступа к параметрам морфинга. Их просто нет! И если мы создали анимационные ключи, удалять и перемещать их можно только в строке анимации. Нельзя смешивать, комбинировать между собой несколько целей, а это означает большие трудности при анимации таких вещей, как мимика. Выражение лица придётся полностью рисовать для каждого ключевого кадра, почти как в рисованных мультфильмах. Возможно, для мультяшных персонажей, у которых помимо мимики есть такие вещи, как деформация физиономии за счёт того, что кто-то по ней вдарил наковальней, или кто-то её надул, или просто глаза из орбит лезут, это и хорошо. Но для более нормальных персонажей - не очень.

В общем, модификатор Morpher гораздо более удобная альтернатива объекту Morph в том плане, что он позволяет заранее создать набор допустимых изменений объекта, а потом комбинировать их в различных сочетаниях, смешивать между собой. К тому же, параметры Morpher доступны через Curve Editor, для них можно выбирать анимационные контроллеры, на основе их поведения можно устанавливать поведение других объектов и параметров. Но об этом позже.

Стек объекта Morph - состоит из двух слов, первое слово - это исходник, а второе слово - слово morph, означает что из исходника создали morph-объект.

Conform - оборачивающий объект

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

Conform - это как раз тот объект, который состоит из двух операндов. Wrapper - обёртка (получается из того объекта, который мы берём за основу) и Wrap-To - начинка - объект, вокруг которого происходит оборачивание (подбирается со сцены).

В группе Pick Wrap-to Object можно выбрать начинку, вокруг которого надо обернуть наш исходник (обёртку), и выбрать один из методов присоединения начинки (Copy, Instance, Reference, Move). В группе Parameters находится всё, что касается операндов, об этом уже говорилось выше.

В меню Vertex Projection Directions можно выбрать направление, вдоль которого применать нашу обёртку к начинке.

Use Active Viewport - применание происходит вдоль направления активного вида. Кнопка ниже Recalculate Projection - пересчиать проекцию.

Use Any Object's Z-axis - применать вдоль оси Z какого-либо объекта. По кнопке ниже Pick Z-axis Object можно выбрать объект, вдоль оси Z которого будет осуществлятья применание. Под кнопкой будет отображаться название выбранного объекта.

Чуть ниже ещё пять альтернативных режимов:

Alond Vertex Normals - вдоль нормалей вершин

Toward Wrapper's Center - к центру обёртки (имеется ввиду геометрический центр объекта-обёртки)

Toward Wrapper Pivot - к опорной точке обёртки.

Toward Wrap-To Center - к центру начинки.

Toward Wrap-To Pivot - к опорной точке начинки.

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

Далее идёт группа Wrapper Parameters - параметры обёртки. Default Projection Distance - расстояние, на которое надо растянуть обёртку прежде, чем начать её сжимать. То есть, если обёртка меньше начинки, прежде, чем начать заворачивание, обёртку надо растянуть. Standoff Distance - расстояние, на котором обёртка должна отстоять от начинки. То есть, между начинкой и обёрткой останется зазор указанной величины. Это бывает полезно потому, что как ни крути, объекты виртуального мира состоят из мелких треугольничков и могут гнуться только по рёбрам этих треугольничков. То есть, они не могут облегать начинку абсолютно точно, а значит, начинка может иногда пролезать сквозь обёртку. Зазор даёт какой-то запас, чтобы исключить такие пересечения.

Use Selected Verticies - использовать выбранные вершины, когда этот флаг активизирован, обёрткой будет работать только та часть объекта-обёртки, на которой мы выделим вершины. Если в качестве обёртки брался параметрический примитив, который мы не преобразовывали в Editacle Mesh или другой редактируемый объект, то выделить вершины можно при помощи Mesh Select. При этом сохранится исходная параметрическая природа объекта. С таким же успехом можно взять Poly Select, а вот Patch Select не рекомендуется, он не позволяет получить доступа к каждой вершинке объекта.

Blob Mesh - капельная поверхность (MAX ≥ 6)

Этот объект появился только в шестой версии 3ds MAX.

В переводе с английского Blob - это капля. И поверхность ведёт себя подобно каплям, которые перетекают друг в друга, образуя нечто на подобии брызг. Объект Blob Mesh создаётся на базе заготовки, в виде шарика заданного радиуса. Это как бы образец капли. Чтобы получить готовую Blob Mesh, надо подобрать со сцены один или несколько объектов. Капли распределятся по вершинам этих объектов, и если капли будут соприкасаться или находиться на достаточно близком друг к дружке расстоянии, они начнут перетекать друг в дружку. Объектами, по которым распределяются капли, могут быть любые геометрические объекты, системы частиц или сплайновые формы.

Boolean

Объект-математическая операция. Он состоит из двух операндов, A и B, над которыми осуществляются булевские операции. Булевские операции - это сложение, вычитание, пересечение. Только булевские математические операции проводятся не над числами, а над множествами.

В отличии от чисел, множества имеют ту особенность, что могут содержать общие элементы. В нашем случае, речь идёт о множестве точек пространства, которые попадают внутрь в общем-то замкнутых геометрических поверхностей. Геометрические поверхности могут находиться далеко друг от друга, такие случаи не особо-то и интересны. Могут так же лежать одна внутри другой (полностью). Это тоже неинтересный случай. Тут все булевые операции можно провести вручную. Интересно, когда поверхности пересекают друг дружку.

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

Итак, далее будем обзывать объекты буквами A и B (так же они обозваны в объекта Boolean). За операнд A берётся исходный объект, а за B - объект, подбираемый со сцены.

Булевское сложение, в объекте Boolean оно названо Union (объединение). Булевское сложение - это объединение двух множеств в одно. Те части поверхностей, которые попадают внутрь, удаляются, а внешние соединяются в одну.

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

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

Булевское вычитание Substraction - бывает двух типов: A-B и B-A. Это когда из одного объекта вырезается та часть, которую пересекает другой объект. Тот объект, который указан в вычитании на первом месте - остаётся, а второй объект - исчезает. Надо помнить, что A - базовый объект, B - подбираемый со сцены.

Сut - объект B нарезает на объекте A линию в месте, где они пересекаются. Refine - на поверхности объекта A просто появляются рёбра в месте пересечения, в рёбрах разреза нет. Split - аналогично Refine, только по появившимся рёбрам осуществляется разрез. Remove Inside - удаляет часть поверхности, которая оказывается внутри бывшего объекта B. Remove Outside - удаляет поверхность вокруг объекта B. Сам объект B в ходе этой операции исчезает.

В объекте Boolean предусмотрена возможность извлечения операндов (кнопка Extract Operand - извлекает выделенный в списке операнд). Методы извлечения - Copy или Instance. Извлечь операнд сразу после создания Boolean нельзя, надо перейти во вкладку Modify, тогда будет можно.

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

У объекта Boolean есть группа параметров Display/Update, с довольно-таки интересными опциями.

Во-первых, тут можно выбрать, что отображать, в группе параметров Display:

Result - отображает конечный результат булевой операции.

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

Result + Hipen Operands - показывает результат и контуры операндов в виде сеток.

В режимах Operands и Result + Hipen Operands, когда выбран режим работы с операндами (в стеке развёрнут плюсик напротив названия составного объекта и выбрано жёлтым слово Operands), операнды не обязательно выбирать из списка операндов, можно просто кликать по ним мышью. Выделенный в данный момент операнд отображается красным.

Примечание 1: если у вас вместо результата отображаются операнды в режимах Result или Result + Hipen Operands, значит булева операция не удалась, и ничего не получилось. Это бывает, когда в качестве операндов задействованы сложные объекты, и программа не может их корректно обработать. Либо, если мы сами выбрали неправильные объекты - незамкнутые поверхности, которые к тому же пересекаются абы как.

Примечание 2: Когда в качестве булевых операндов берутся объекты, к каждому из которых присвоен свой материал, при выборе объекта B со сцены, появляется меню:

Match Material IDs to Material - согласовать идентификаторы материалов с материалами (при этом визуально ничего не изменится, на тех же частях объектов останутся те же материалы, перераспределяться только номера ID у граней).

Match Material to Material IDs - ID операндов не меняются. меняются применённые к ним материалы

Do Not Modify Mat IDs or Material - не меняется ничего. К операнду применяется материал, применённый к Boolean-объекту.

Discard New Operand Material - удаляется материал операнда B, применяется к булевому объекту материал операнда A.

Discard Original Material - уладяется материал операнда A (оригинала), ко всей конструкции применяется материал операнда B.

Примечание 3: При выполнении команды Extract Operand (извлечь операнд), у извлечённого таким образом объекта вообще не будет материала, а цвет установится случайным образом. Свойства поверхности ID и SG не пострадают.

Loft - Колбаса c заданным сечением

Этот объект создаётся из двух или более сплайновых форм. Одна форма - линия, вдоль которой натягивается колбаса (Path - путь), все остальные - определяют контур сечения колбасы на том или ином расстоянии от начала линии (Shape). Расстояние указывается в процентах.

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

Не обязательно брать замкнутые контуры, можно и разомкнутые.

Если начать создание Loft с пути, а подобрать форму (Get Shape), труба будет идти вдоль пути, если поступить наоборот - начать с формы и подобрать путь (Get Path), она будет выходить из этой формы. Труба будет изгибаться по форме пути. Можно выбрать, какой объект давать на выходе: Patch или Mesh. Если бы составные объекты развивались, думаю, на выходе можно было бы так же выбирать NURBS и Poly.

Scatter - массив

Вот ещё один хороший и полезный составной объект. Он распределяет исходный объект по какому-либо другому подобранному со сцены объекту - распределителю (Distrebution Object). Опорная точка получившегося Scatter совпадает с опорной точкой распределяемого объекта, который называется Source Object. На распределителе исходный объект может быть как в единственном экземпляре, где-то в случайном месте, так и в нескольких экземплярах, так же либо в случайных местах, либо во вполне закономерных местах, в зависимости от настроек.

В группе меню Pick Distrebution Object осуществляется выбор объекта-распределителя. В общем, этот объект выбирать не обязательно, тогда создаётся массив в некотором объёме пространства, который обозначается ниже в группе меню Transforms в подгруппе Local Translation. Чтобы почувствовать преимущество объекта Scatter, надо в греппе меню Scatter Object в параметре Duplicates указать какое-либо число, отличное от единицы. Тогда у нас будет массив из стольки объектов.

Хотя, если бы Scatter совершенствовали, он бы был лучше, всё же и в том виде, в котором он существует сейчас, он может быть полезен. С его помощью можно разбрасывать камни по пляжу (особенно здорово может получиться если при этом ввести небольшое значение Vertex Chaos), рассаживать деревья, траву и мелкую растительность, а так же осуществлять другие распределения объектов.

Если к объектам, составляющим Scatter были применены материалы, то для Scatter генерируется многоподобъектный материал, в котором несколько ID отводится под Distrebution Object, а несколько под Source Object. Чтобы редактировать этот материал, надо подбирать его со сцены. При создании Scatter никаких вопросов касательно материалов не появляется. Первыми по порядку идут ID от Source-объекта, а в конец дописываются ID от распределителя. То есть в готовом объекте Scatter более главным является Source-объект, и номера ID исходного объекта и операнда Source совпадают.



Рис. 17.1. Пример того, как может быть использован Scatter для заполнения сцены. Мелкие камни, тростники и деревья распределены по сцене при помощи Scatter. При этом, камни не похожи друг на друга за счёт введения некоторых значений для Vertex Chaos, поворотов и масштабирования, а для растений использовались только повороты (вокруг оси Z допустимый диапазон составлял все 360 градусов), по осям X и Y углы были небольшими, до 5 градусов. Для тростника была создана небольшая группка из 8 растений, которая и распространялась по специально нарисованным для этих целей поверхностям Editable Poly. С деревьями дело обстояло иначе: на базе трёх типов деревьев для переднего плана были созданы три независимых Scatter (на основе одой и той же поверхности, которая подбиралась для каждого Scatter как Distrebution Object). Для дальнего плана были использованы другие деревья, с меньшей детализацией (состоящие из меньшего числа граней - более низкополигонные).


Shape Marge - вырезка в поверзности контуров нужной формы

Этот объект состоит из геометрического объекта и сплайновой формы. На геометрическом объекте делается разрез по сплайновой форме. Начинать надо с геометрического объекта, а потом подбирать в группе меню Pick Operand при помощи кнопки Pick Shape подбирать сплайновые формы. Сплайновых форм можно подобрать несколько. Сплайновые формы создают на поверхности рёбра под контуры сплайновой формы. Сплайновая форма как бы проектируется на геометрический объект по направлению вдоль своей оси Z. То есть, форму надо разместить напротив объекта и повернуть к нему (или от него) осью Z. Не обязательно перпендикулярно, достаточно чтобы ось Z шла так, чтобы проекция формы попадала на поверхность, а не мимо.

В группе меню Parameters имеется тот же традиционный список с операндами, один операнд Mesh и один или несколько Shape. Под списком есть графа Name, где выделенный в данный момент операнд можно переназвать. Кнопка Delete Shape - удаляет выделенный Shape-операнд из списка, Extract Operand - извлекает операнд.

Подгруппа Operation отвечает за то, что сделать с разрезом. Cookie Cutter - вырезает дырки внутри замкнутых контуров, полученных при проецировании замкнутых сплайновых форм, и делает разрез вдоль незамкнутых контуров, которые получены в результате проецирования не замкнутых сплайновых форм. Если в качестве формы взять кольцо Donut (форма-примитив, состоящая из двух кругов, один внутри другого), то вырежется дырка под форму кольца - в середине останется кружочек поверхности. Флажок Invert пониже слова Merge меняет местами, что вырезать, а что оставить. Кружочек Merge означает, что никаких разрезов, тем более вырезок делаться не будет, просто на поверхности создадутся рёбра под проекцию контуров сплайновых форм. Merge - просто создать рёбра на поверхности, но ничего не вырезать и не разрезать.

Группа параметров Object Sub-Mesh Selection даёт нам возможность выделить что-либо из созданных на поверхности подобъектов - либо ничего - None, либо контуры рёбер, которые создались Edges, либо грани внутри замкнутых контуров (если мы выбрали режим Merge), либо вершины, лежащие на созданных рёбрах Vertex.

Display/Update здесь такое же, как и у всех остальных составных объектов.



Рис. 17.2. Слева - объект Scatter (режим Perpendicular был выключен, Distrebution Object (большая сфера) - не спрятан). Справа - объект Shape Merge.


Terrain - территория

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

В общем, может быть кто-нибудь ещё помнит школьный курс географии. Были там такие карты с контурами высот. Вот и тут нечто подобное, объект генерируется из сплайновой формы, которая содержит один или несколько сплайнов - желательно, чтобы это были замкнутые контуры, располагающиеся на определённых высотах. На эти контуры будут натягиваться горки, как только вы, при выделенной сплайновой форме выберете в Compound Objects объект Terrain. Контуры не обязательно должны быть замкнутыми (но очень желательно), и не обязательно контур должен лежать на одной и той же высоте, вполне допустимо, чтобы у него одини вершины и сегменты были чуть ниже-выше других.

Наверное, это прекрасная находка для географов, которые всё время работают с картами высот, но вряд ли всем остальным людям будет удобно с помощью неё рисовать ландшафты. Вообще, создание объектов на основе сплайновых форм достаточно неудобно по сравнению с теми же Editable Mesh и Editable Poly.

В общем, создать реалистичный, достаточно естественно выглядящий ландшафт при помощи этих средств будет трудно. Они хороши разве что, создать заготовку, преобразовать её в какой-нибудь Editable Object и прорабатывать детали дальше.

Надеюсь, вы простите меня снова, за то, что мы не будем рассматривать, что значат параметры объекта Terrain и как их настраивать.

Mesher - копия поверхности

Этот полезный объект появился в 3ds MAX 6. Пока, наверное, не понятно, зачем это надо, но всё же, поверьте, что бывает надо создать копию какой-либо поверхности. Внешнюю копию, которая является объектом Editable Mesh, не зависимо от природы исходного объекта, с которого эта копия снимается. Главным образом это надо именно при моделировании, когда мы создаём что-то замысловатое какими-нибудь сложными средствами. Mesher может создать копию системы частиц. Это очень ценно, поскольку система частиц сама по себе не может быть преобразована в какой-либо Editable объект. А иногда этого хочется, потому что с самой системой частиц тоже не всё можно сотворить. На неё нельзя наложить текстуру, её нельзя редактировать. А Mesher создаёт точную копию (в геометрическом плане, а не в плане природы объекта) конечной Mesh-поверхности, с которой потом можно делать всё, что можно делать с Editable Mesh. Пока Mesher не преобразован в другой объект, он будет повторять форму за тем объектом, который он копирует.

А вообще, если заниматься 3ds MAX серьёзно, то можно найти массу применений для Mesher.

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

Создаётся Mesher в виде пирамидки, и останется таким, пока не будет подобран для него образец для подражания при помощи кнопки, расположенной под надписью Pick Object. Опять же, по какой-то недоработке Pick Object начинает работать только после того, как мы перейдём во вкладку Modify. Опорная точка Mesher находится в центре дна пирамидки, а когда пирамидка меняет свою форму, копия объекта устроена так, что его поверхность расположена относительно опорной точки так же, как и у копируемого объекта.

Time Offset - запаздание, с которым Mesher будет копировать изменения, происходящие с исходником.

Built Only At Render Time - создать только на время рендеринга. Если этот флаг включон, то Mesher будет отображаться в окнах проекций в виде пирамидки, но рендериться будет в виде объекта, который он копирует. Причём, Mesher может копировать систему частиц даже тогда, когда у той не отображается поверхность. Это значит, что мы можем отключить рендерабельность для системы частиц, а Mesher будет воспроизводить ту форму, которая была бы у этой системы частиц, если бы она рендерилась.

Update - обновляет форму Mesher.

Custom Bounding Box - выбрать габариты для Mesher. Габариты копируются с габаритов какого-либо объекта на сцене.

Остальные параметры пока рассматривать не стоит, пока мы не знаем, что такое Particle Flow Events.

 



<< Назад Оглавление   Вперёд >>
homepage: http://teapot3d.narod.ru
Используются технологии uCoz