Gradient tool где находится в иллюстраторе команда. Создание градиентов в Illustrator. Использование границ в режиме просмотра
Под геометрическими примитивами понимают тот базовый набор геометрических фигур, который лежит в основе всех графических построений, причем эти фигуры должны образовывать " базис " в том смысле, что ни один из этих объектов нельзя построить через другие. Однако вопрос о том, что включать в набор геометрических примитивов, нельзя считать окончательно решенным в компьютерной графике. Например, количество примитивов можно свести к некоему минимуму, без которого нельзя обойтись, и этот минимум сводится к аппаратно реализованным графическим объектам. В этом случае базисный набор ограничивается отрезком, многоугольником и набором литер (символов).
Другая точка зрения состоит в том, что в набор примитивов необходимо включить гладкие кривые различного рода (окружности, эллипсы, кривые Безье ), некоторые классы поверхностей и даже сплошные геометрические тела. В качестве трехмерных геометрических примитивов в таком случае предлагаются пространственные кривые, параллелепипеды, пирамиды, эллипсоиды. Но если такой расширенный набор примитивов связан с аппаратной реализацией, то возникает проблема перенесения программных приложений с одного компьютера на другой, поскольку такая аппаратная поддержка существует далеко не на всех графических станциях. Кроме того, при создании трехмерных геометрических примитивов программисты сталкиваются с проблемой их математического описания, а также разработки методов манипулирования такими объектами, поскольку те типы объектов, которые не попали в список базовых, надо уметь приближать с помощью этих примитивов.
Во многих случаях для аппроксимации сложных поверхностей используются многогранники, но форма граней может быть различной. Пространственный многоугольник с числом вершин больше трех не всегда бывает плоским, а в этом случае алгоритмы изображения многогранников могут привести к некорректному результату. Поэтому программист должен сам позаботиться о том, чтобы многогранник был описан правильно. В этом случае оптимальным выходом из положения является использование треугольников, поскольку треугольник всегда является плоским. В современной графике это, пожалуй, самый распространенный подход.
Но существует и альтернативное направление, которое называется конструктивной геометрией тел . В системах, использующих этот подход, объекты строятся из объемных примитивов с использованием теоретико- множественных операций ( объединение , пересечение ).
Любая графическая библиотека определяет свой набор примитивов. Так, например, широко распространенная интерактивная система трехмерной графики OpenGL включает в список своих примитивов точки (вершины), отрезки, ломаные, многоугольники (среди которых особо выделяются треугольники и четырехугольники), полосы (группы треугольников или четырехугольников с общими вершинами) и шрифты. Кроме того, в нее входят и некоторые геометрические тела: сфера, цилиндр, конус и др.
Понятно, что для изображения таких примитивов должны быть разработаны эффективные и надежные алгоритмы, поскольку они являются конструктивными элементами. Исторически сложилось так, что первые дисплеи были векторными, поэтому базовым примитивом был отрезок . Но, как уже было отмечено в первой главе нашего курса, самая первая интерактивная программа Sketchpad А.Сазерленда в качестве одного из примитивов имела прямоугольник , после чего этот объект уже традиционно входил в различные графические библиотеки.
Здесь мы рассмотрим такие примитивы, как вершина , отрезок , воксель и модели, строящиеся на их основе, а также функциональные модели .
Для этих пространственных моделей используются в качестве примитивов вершины (точки в пространстве), отрезки прямых (векторы), из которых строятся полилинии , полигоны и полигональные поверхности . Главным элементом описания является вершина, все остальные являются производными. В трехмерной декартовой системе координаты вершины определяются своими координатами (x,y,z), линия задается двумя вершинами, полилиния представляет собой незамкнутую ломаную линию, полигон - замкнутую ломаную линию. Полигон моделирует плоский объект и может описывать плоскую грань объемного объекта. Несколько граней составляют этот объект в виде полигональной поверхности - многогранник или незамкнутую поверхность ("полигональная сетка").
Рис.
4.1.
В современной компьютерной графике векторно-полигональная модель является наиболее распространенной. Она применяется в системах автоматизированного проектирования, компьютерных играх, тренажерах, ГИС, САПР и т. д. Достоинства этой модели заключаются в следующем:
- Удобство масштабирования объектов.
- Небольшой объем данных для описания простых поверхностей.
- Аппаратная поддержка многих операций.
К числу недостатков полигональных моделей можно отнести то, что алгоритмы визуализации выполнения топологических операций (например, построение сечений) довольно сложны. Кроме того, аппроксимация плоскими гранями приводит к значительной погрешности, особенно при моделировании поверхностей сложной формы.
К ее недостаткам относятся:
- Большое количество информации, необходимое для представления объемных данных.
- Значительные затраты памяти, ограничивающие разрешающую способность, точность моделирования.
- Проблемы при увеличении или уменьшении изображения; например, с увеличением ухудшается разрешающая способность изображения.
В статье я решил описать процесс создания скрипки. И мой выбор был не случайным. Дело в том, что скрипка имеет ряд нетривиальных областей с точки зрения моделинга…
Для того, чтобы разобраться с этим, я условно поделил создание скрипки на принципиально разные подходы к моделированию:
- Моделирование деки скрипки. Форма основной детали инструмента имеет сложную поверхность с изгибами заданной формы;
- Гриф скрипки. Он не доставил много трудностей при моделинге, но тем не менее…
- Мост скрипки;
- Головка скрипки;
- Струны
Вот основные элементы на примере которых мы и разберем весь процесс.
3д моделирование деки
Для этого этапа я не просто нашел проекционное изображение скрипки. Мне потребовался топографический чертеж с изолиниями. Такой же как бывает на картах местности, где замкнутыми линиями изображены высотные отметки. По сути этот чертеж послужит нам опорным шаблоном для отрисовки сплайнов в 3ds max:
Здесь четко прорисованы продольный и поперечные профили. Судя по ним мы можем понимать, что поверхность деки меняется. Это и нужно взять на вооружение. С чего я начал работу. В первую очередь я отрисовал с помощью сплайна половину внешнего контура:
Здесь вообще все строилось лишь половинами, а вторая часть получалось зеркальной симметрией.
Все вместе выглядит так:
Когда закончил создание профилей, то развернул на 90 градусов, так как они создавались на виде сверху:
Отлично, основа задана. Переходим к построению полигональной сетки корпуса. Для этого я снова перехожу на вид сверху и создаю элементарную плоскость (Plane ):
Как видите на рисунке сверху, я создал не просто плоскость, а такую тонкую полоску с сегментацией 1 х 1. Ребра я создам самостоятельно так, как мне нужно. Подправляем край, подгоняя его ко внешнему контуру:
Нарезаем как и говорил дополнительные ребра:
В данном случае я создал 6 дополнительных ребер. Этого мне достаточно.
Переходим на вид сбоку либо спереди, в зависимости от того, как у вас ориентирована сцена. Главное, видеть профиль. Находясь на уровне редактирования вершин этой полоски подгоняем по сплайну профиля нашу полоску, формируя изгиб. Остальные сплайны я пока скрыл, т.к. в противном случае они все свалились бы в одну кучу и было бы не понятно, на какой из них ориентироваться:
Так это выглядит в проекции:
Подобную процедуру проделываем со всеми поперечными профилями:
Теперь я нарезаю на каждой полоске одно центральное продольное ребро:
Выделяем два крайних просплита полигонов так, как показано на рисунке ниже:
И удаляем их. После чего используя инструмент Bridge , соединяем последовательно каждое ребро с ребром напротив. Предварительно нужно объединить все полоски в один объект функцией Attach :
Так это выглядит в перспективе:
Последнюю группу полигонов я наращивал с зажатым Shift вручную:
Переходим на уровень редактирования вершин и подгоняем точки по внешнему контуру:
В результате мы получаем примерно вот такой результат:
Остается достроить мелкие «хвостики», стараясь при этом не перегружать полигональную сетку:
Переводим Pivot на крайнее ребро, которое послужит стыком со второй симметричной половиной:
Применив модификатор Symmetry , получаем очень неплохой начальный результат:
Теперь нам нужно сформировать фигурные прорези:
Однако до этого обязательно создайте копию поверхности, зеркально перевернув ее по оси Z, это будет нижняя поверхность скрипки.
Создаем основу для прорези:
Она также получена элементарным сплайном. Советую не торопиться с этим, а уделить побольше времени точности формы. Подгоняем сплайн прорези к поверхности:
Добавляем модификатор Shell к этому сплайну и наращиваем толщину:
Совмещаем эту заготовку с поверхностью основы, так чтобы она как бы пересекала ее, выделяем основу и выбираем :
Выбираем ProBoolean и в нем нажимаем на кнопку Start Picking , после чего щелкаем по заготовке, с помощью которой хотим вырезать отверстие:
Когда вы применяете объекты типа Boolean , нужно конвертировать оболочку обратно в Editable Poly :
Внутреннюю стенку пока удаляем:
И остается провести зачистку полигональной сетки. Bollean любит ее «портить». Также нужно соединить появившиеся точки дополнительными ребрами:
Достраиваем внутреннюю стенку еще раз. Разница в том, что она более корректна, чем та, которую мы удалили:
Заодно можем создать необходимые Edge Loop , чтобы TurboSmooth не съедал кромки в процессе сглаживания. Кроме того внешнюю кромку можно дополнительно доработать добавлением фаски (Chamfer ):
В некоторых местах, где много мелких изгибов, возникают искажения. Пройдемся еще раз по всему контуру и отредактируем его вручную:
Полученный результат меня более чем устраивает:
Итак, что мы имеем?
Две половины, верхнюю и нижнюю, одна из которых с фигурным вырезом:
Эти половины присоединяем (attach ) друг к другу. После чего выделяем по очереди, внешнее ребро и создаем дополнительный сплит полигонов, небольшую полоску, далее повторяем то же самое со второй половиной:
Выделяем все полигоны этих полосок и копируем в отдельный объект:
Переходим снова к выделению ребер и соединяем обе половины, используя инструмент Bridge :
На виде сверху важно уточнить форму этой полоски:
Кое-где я достраивал по два ребра и корректировал контур:
В результате всех коррекций и сглаживания получается примерно так:
Очень удобно на виде сверху его корректировать. Это сделать совершенно необходимо:
И заводим полигоны вниз за основную поверхность:
Эту процедуру следует повторить и снизу.
Применяем модификатор Symmetry , сшиваем обе половины, сворачиваем точки стыка (Weld ):
Результат:
3д моделирование грифа
Моделирование грифа я начал с построения плоскости и подгонки ее по найденному чертежу:
Как видите, я точно также как и с декой работаю лишь над одной из половин, а вторая создается путем применения модификатора Symmetry .
Подгоняем более точно, сворачиваем стек и добавляем модификатор Shell , чтобы нарастить толщину данной основе:
Нарезаем дополнительные ребра. Это позволит создать равномерную структуру и корректно задать изгиб:
Применяем модификатор Bend и опытным путем подбираем значения модификатора, чтобы получить такой результат:
Теперь переходим к моделированию нижнего основания грифа. Я решил отделить его от фигурной головки грифа, так как головка является достаточно сложным элементом, который удобнее будет смоделировать отдельно и затем уже соединить с нижним основанием. Моделирование я начал с построения сплайна:
Корректируем форму этого сплайна и конвертируем его в Editable Poly :
После чего важно достроить ребра и сформировать корректную полигональную сетку, состоящую из четырехугольников:
При необходимости нужно ориентировать эту заготовку. В моем случае я развернул ее на 90 градусов:
Для большей точности можно использовать модификатор FFD 2x2x2 :
После чего я ориентировал и подогнал окончательно обе половины:
Нижняя половина имеет округлость. Ее создать не сложно. Добавим два ребра по середине на боковой и нижней гранях:
И удаляем полигоны между этими ребрами как показано на рисунке ниже:
Теперь переходим на уровень редактирования ребер и используя инструмент Bridge создаем скос из полигонов:
Создаем дополнительные ребра:
Формируем округлость и применяем модификатор Symmetry , чтобы создать симметричную половину:
Создаем дополнительные EdgeLoop , применяем модификатор TurboSmooth :
Окончательно подгоняем элементы грифа к деке:
Аналогичным образом формируем вторую часть грифа с той лишь разницей, что нужно проделать четыре отверстия под струны. В основе этих отверстий лежат восьмиугольники. В качестве шаблона можно использовать цилиндр с восемью гранями:
Корректируем полигональную сетку:
3д моделирование скрипичного моста
Мост скрипки – это вертикально расположенная фигурная планка на середине деки, которая натягивает струны для их звучания. Пожалуй наиболее простой в плане создания элемент, однако к его созданию я подошел немного творчески.
Сперва, важно решить, что мы будем делать с моделью скрипки, а следовательно и с этим мостиком. Дело в том, что это плоский элемент, и получают такие элементы путем создания сплайна в качестве контура.
Хотите стать профи в 3D-дизайне и легко создавать потрясающие рендеры высокого уровня? Тогда кликайте по прямо сейчас!
В статье по вопросам топологии я уже описывал такие элементы. Если вы планируете эту модельку переносить из пакета в пакет для обработки, то однозначно нужно выдерживать качество топологии сетки на должном уровне, в частности добавлять множество ребер на основную поверхность, чтобы сформировать четырехугольники и ни в коем случае не оставлять брошенных точек. Но что если мы не планируем переносить модель в другой пакет. Я планирую все процессы: от моделинга до визуализации провести здесь же в 3ds max. Тогда можно не усердствовать с правильной сеткой.
К делу! Я обрисовал контур, лишь его половину, т.к. вторую можно отзеркалить:
Много точек, не так ли? Зеркалим вторую половину и аттачим одну половину к другой, точки на стыке естественно спаиваем командами Fuse (точное совмещение) и Weld (спаивание):
На дальнейшие действия, которые не приведут к четырехугольникам я получил право по причине, описанной выше. Удаляем два больших полигона, являющиеся N-угольниками (где N >> много больше 10):
Я сделал это для того, чтобы сгладить TurboSmooth , в противном случае с такими N-угольниками у меня ничего бы не вышло:
В результате мы получаем вот такие «ленты»:
Теперь мне нужно создать удаленные полигоны обратно, уже на сглаженную основу. Это делается функцией Cap , но элемент по середине не даст просто так этого сделать, его следует пока отделить через функцию Detach :
Выделяем кромку и применяем Cap :
То же самое проделываем с отделенным элементом:
Немного увеличиваем по длине и пересекаем один элемент с другим:
Теперь снова выделяем большой элемент, применяем – ProBoolean :
Жмем Start Picking и выбираем маленький элемент, в результате мы проделаем фигурное отверстие:
Применение булиновых операций влечет за собой ломанные сетки. Это проявляется во множестве брошенных точек и ребер. Их нужно естественно зачистить:
Результат:
3д моделирование скрипичной головки
Это пожалуй наиболее сложный элемент в изготовлении всей модели скрипки. Процесс создания скрипичной головки можно смело отнести к теме моделинга резного декора.
Скрипичная головка имеет характерную особенность, которая заключается в ее форме. Это спираль. Учтем этот факт. Начинаем моделинг с создания контурного сплайна:
При создании контура я советую вам не мельчить в погоне за сглаженностью контура. Обилие точек на начальном этапе может в итоге сыграть с нами злую шутку. Мы попросту не сможем увязать все точки в единую корректную сетку, из-за чего и сглаживание окажется некачественным.
Второй момент: выдерживайте между точками примерно равные расстояния по всему контуру, дабы задать однородность будущей детали.
И третий момент: никаких конвертаций точек в Безье ради сглаживания!
Пусть сохраняется небольшая угловатость контура, углы сгладятся на последующих этапах модификаторами.
Теперь следует конвертировать наш контур в Editable Poly , в результате чего получим полигон (N-угольник со множеством брошенных точек), которые нам и предстоит соединить достраиваемыми ребрами:
И снова создаем поперечные ребра, соединяя брошенные точки:
Какой на данном этапе главный принцип?
Равномерность контуров и сетка состоящая преимущественно из квадов (четырехугольников). Чем больше квадов в вашей сетке, тем она пластичнее, тем проще ее редактировать.
Пришло время сформировать объем. Для этого я группами избирательно выделяю полигоны и применяю к ним инструмент Extrude для выдавливания. На данном этапе у нас получаются ступеньки, что пока неизбежно:
Теперь в тех местах, где получились ступеньки с резким переходом нужно их ликвидировать. Для этого нам нужно соединить точки функцией Target Weld . И делать это следует по принципу переноса верхней точки к нижней, не наоборот. После чего удалить ребра-атавизмы:
Крышку сверху пока удаляем. Ее мы сформируем чуть позже иначе. В то же время окружность в основании будет проще выровнять без этой крышки:
Теперь впереди пожалуй наиболее длительный и ответственный этап формирования плавной спирали. Ручная подгонка точек по высоте:
Теперь я хочу сформировать углубление на внутренней стороне витка спирали. Это достигается опусканием вниз на фиксированное значение всех точек внутреннего ребра спирали:
И наоборот, небольшим поднятием всех внешних точек также на фиксированное значение:
После чего боковую поверхность можно удалить:
Теперь следует выровнять верхнее основание как я и писал чуть выше. Для этого я создал обыкновенный цилиндр с количеством боковых граней соответствующим количеству ребер основания:
Выравниваем точки:
Вспомогательный цилиндр можно удалить. Создаем сферу, также выдерживаем нужное количество ребер, чтобы можно было совместить точки верхнего основания с крышкой, которую получим из сферы:
Конвертируем сферу в Editable Poly . Как видите, нижняя часть удалена. Я оставил только верхушку. Она немного сплющена. Подгоняем ее к ребру верхнего основания еще более точно:
Присоединяем одну часть к другой и спаиваем точки также через Target Weld , как и ранее:
Постольку поскольку к головке скрипки мы применим модификатор TurboSmooth , то нужно создать дополнительные ребра на кромках:
Как вы могли уже догадаться, это всего лишь одна их половин головки. Нам предстоит создать зеркально симметричную половину и совместить в итоге все в одно целое. Разворачиваем заготовку под небольшим уклоном:
Поскольку локальные координаты заготовки также меняют угол ориентации в сцене, а от них зависит работа модификатора Symmetry , то надо эти координаты обнулить, вернув в исходное базовое положение. Для этого применяем утилиту Reset XForm . Стек модификаторов нужно «убить»:
Добавляем модификатор Symmetry и снова «убиваем» стек:
Выделяем кромки обеих половинок и используем инструмент Bridge , чтобы создать стенку из полигонов:
После чего добавляем два новых ребра на этой поверхности для формирования небольшой «горки»:
Выделяем полигоны:
И применяем команду Extrude , чтобы выдавить выделенные полигоны. В настройках Extrude Выставляем Local Normal и подбираем значение выдавливания.
Продолжаем формировать нашу головку. Создаем канавки:
В итоге получаем такой результат:
Также я сформировал скругление внизу:
Остается совсем немного. Задаем основание для формирования паза, в котором будут располагаться колки для натягивания струн:
Все процедуры повторяются, выделяем полигоны, применяем Extrude , выдавливаем на определенную величину:
Не забываем добавить Edge Loop’ы , чтобы правильно сгладить модель:
Результат сглаживания:
В процессе соединения с грифом скрипки пришлось использовать формовку с помощью модификаторов FFD :
Результат:
Струны
Что касается струн, то они были созданы из сплайнов с подгонкой по точкам:
Придаем утолщение:
Копируем струны:
Что касается скрученной на колке части струны, то ее я получил с помощью спирали Helix :
Придаем толщину и соединяем с основной частью струны:
Проделываем процедуры со всеми струнами:
Результат моделинга:
.