Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по 3D №2.doc
Скачиваний:
15
Добавлен:
27.08.2019
Размер:
24.12 Mб
Скачать

Плывущее облако

Попробуем на базе нескольких систем частиц типа PCloud смоделировать небольшое облако и отправить его в путешествие. Создайте четыре системы PCloud-частиц со сферическим эмиттером и большим количеством частиц (в данном случае в каждой системе содержится по 100 частиц) и разместите их по отношению друг к другу в соответствии с предполагаемой формой облака. Во всех системах увеличьте размер частиц до 40 и установите для них при рендеринге стандартную форму сфер— пока визуализированные частицы на облако совсем не похожи, но все изменится, если создать для них подходящий материал.

 

Исходная система частиц

Первоначальный вид визуализированных частиц

 

Настройка размера и формы частиц

 

 Создайте обычный Blinn-материал и на канале Diffuse назначьте ему текстурную карту Noise с такими параметрами, как на изображении ниже, установив в качестве цветов Color 1 и Color 2 карты Noise. Назначьте на канале Opacity текстурную карту Fallow, поменяйте местами верхний и нижний цвета карты и в качестве верхнего цвета также установите текстурную карту Noise. В окне редактора материалов откройте свиток Maps и скопируйте текстурную карту с канала Opacity в канал Bump. Выделите все системы частиц и объедините их в группу, затем назначьте группе созданный материал и оцените результат — теперь частицы вполне похожи на облако. Окончательно отрегулируйте положение систем частиц относительно друг друга, чтобы добиться желаемой формы облака, и поместите облако на подходящий фон.

 

Настройка базовых параметров материала Изменение параметров карты Noise на канале Diffuse

 

Настройка параметров карты Noise Изменение параметров карты Noise

для цвета Color 1 для цвета Color 2

Настройка параметров карты Fallow Корректировка параметров карты Noise

на канале Opacity для верхнего цвета карты Fallow

 

 

Вид свитка Maps с назначенными Вид группы систем частиц после назначения материала

текстурными картами

 

Теперь нужно заставить облако медленно двигаться. Для этого создайте кривую-траекторию и источник деформации Path Follow. Выделите источник деформации, откройте свиток Basic Parameters, щелк-ните на кнопке Pick Shape Object (Указать объект-форму) и укажите построенную кривую. Свяжите источник деформации с группой частиц с помощью инструмента

Bindto Space Warps — частицы,

Окончательный вид облака

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

 

Появление кривой и источника деформации PathFollow

 

Перемещение группы частиц по траектории

 

Плывущее облако

Льющаяся из трубы вода

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

Создайте систему частиц Blizzard, направ-ленную горизонтально в направлении от стены, отрегулируйте размеры эмиттера, чтобы он вписывался в сечение трубы, и поместите систему частиц внутрь трубы.

В свитке ParticleGeneration увеличьте для системы частиц значение параметра UseRate примерно до 200, так как частицы должны двигаться очень плотно, а в свитке

ParticleType установите для частиц тип Standard Particles => Sphere. На самом деле при окончательной визуализации частиц должно быть больше, а сами они должны быть представлены не сферами, а метачастицами, которые, в отличие от обычных сфер, сливаются друг с другом наподобие реальных водяных капель, но в таком случае промежуточный рендеринг будет отнимать слишком много времени, что неразумно на этапе разработки.

В области ParticleTiming свитка Particle Generation настройте параметры испускания частиц так, чтобы все они жили на протяжении всех кадров анимации, а в области Particle Size обнулите значения параметров GrowFor и FadeFor, чтобы частицы не меняли своего размера на всем протяжении анимации (а значит, поток воды был примерно одинаковым).

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

   

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

Удостоверьтесь, что нормаль источ-ника гравитации направлена вниз, при необходимос-ти подкорректи-руйте положение источника и свя-жите его с систе-


мой частиц при помощи инструмента Bind to Space Warp. Теперь частицы, немного отлетев от эмиттера, будут падать вниз. Установленные по умолчанию настройки гравитационной силы в данном случае кажутся чрезмерными, поэтому уменьшите значение параметра Strength (Сила) так, чтобы частицы не столь быстро изменяли траекторию, но не переусердствуйте, так как вода все же должна попадать в бассейн, а не за его пределы.

Теперь следует вспомнить, что струи воды, достигая поверхности бассейна, должны отражаться от нее в виде брызг. Для имитации подобного эффекта установите плоскостной отражатель Deflector (тип объектов Deflectors из категории SpaceWarps). Размеры плоскости отражателя должны быть не меньше размеров плоскости воды, а сам отражатель должен располагаться чуть выше водной поверхности. Свяжите отражатель с системой частиц — они станут отскакивать от поверхности отражателя (а значит, и от поверхности воды).

По умолчанию значение па-раметра Bounce (Отскок), регулирующего силу отско-ка частиц от отражателя, равно 1 — это означает, что отраженная частица сохра-няет скорость, с которой она ударилась об отража-тель. Уменьшите значение силы отскока, так как в действительности отскаки-вающие частицы должны терять часть своей энергии, и увеличьте трение (пара-метр Friction) .

 

Поскольку струи воды ста-ли полностью выплески-ваться из бассейна, верни-тесь к источнику гравита-ции и подкорректируйте значение гравитационной силы.

Учитывая, что отскакиваю-щие от поверхности воды капли должны двигаться хаотично, увеличьте зна-чение параметра Chaos,

 

регулирующего степень изменения угла отскока. Проведите рендеринг одного из промежуточных кадров, и вы заметите, что отскакивающие капли воды размера не меняют, в то время как в действительности они должны быть гораздо меньше, да и движение частиц должно быть хаотичным. Поэтому выделите систему частиц и подрегулируйте параметры FadeFor и Variation из группы ParticleSize и параметр Variation из группы ParticleMotion (свиток ParticleGeneration). После этого увеличьте размер частиц (параметр Size в группе ParticleSize) до 3,5, чтобы они полностью слились друг с другом.

 

Назначьте поверхности воды (она представлена объектом QuadPatch с большим числом разбиений по всем направлениям) модификатор Ripple (Рябь), настроив его параметры примерно так, как показано на рисунке.

В заключение число частиц в системе было увеличено до 600, а тип их представления при визуализации был изменен на метачастицы (MetaParticles).

 

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

Затем создайте для воды (водных струй и водной поверхности бассейна) под-ходящие материалы. В дан-ном случае вначале был соз-дан один Blinn-материал с параметрами как на рисунке ниже, который был назна-чен для поверхности воды, а потом сделана его копия, в которой были изменены некоторые базовые парамет-ры (текстурные карты остались те же), — данный материал был назначен водяным струям.

 

 

Швейцарский сыр

Выполните следующие действия:

1. Перезагрузите 3d studio max.

2. Перейдите на вкладку Create (Создание) командной панели, выберите в категории Geometry (Геометрия) строку Standard Primitives (Простые примитивы) и нажмите кнопку Sphere (Сфера). Создайте сферу в окне проекции.

3. Перейдите на вкладку Modify (Изменение) командной панели и задайте для объекта следующие значения параметров: Radius (Радиус) – 50, Segments (Количество сегментов) – 70.

Установите флажок Slice On (Удалить) и выберите значение параметра Slice From (Удалить от) равным 90, чтобы получить полусферу. Поверните объект вокруг оси Y на 90°. Получилась заготовка для создания куска сыра (рис. 1).

Рисунок 1. Заготовка для создания куска сыра получена из сферы.

4. Теперь нужно создать объекты, которые будут вычтены из полусферы, в результате чего получатся «дырки». Для этого используем источник частиц PCloud (Облако частиц) (рис. 2). Ширина источника частиц (Width (Ширина)) должна быть равной диаметру, то есть 100, а его высота (Height (Высота)) – радиусу сферы, то есть 50.

Рисунок 2. Создание системы частиц.

5. Выровняйте объекты, чтобы плоскость с частицами расположилась возле поверхности сыра. Для этого выполните команду Tools –> Align (Инструменты –> Выравнивание) и щелкните на сфере. В появившемся окне установите флажок Y Position (Y-позиция) и установите переключатели Current Object (Объект, который выравнивается) и Target Object (Объект, относительно которого выравнивается) в положение Minimum (По минимальным координатам выбранных осей). Нажмите кнопку Apply (Применить), после чего установите флажки Z Position (Z-позиция) и X Position (Х-позиция) и установите оба переключателя в положение Center (По центру). Нажмите кнопку ОК (рис. 3).

Рисунок 3. Источник частиц выровнен относительно сыра.

6. Чтобы частицы отображались в виде сфер, в свитке Basic Parameters (Основные параметры) настроек источника частиц установите переключатель Viewport Display (Отображение в окне проекции) в положение Mesh (Поверхность), а переключатель Standard Particles (Обычные частицы) в свитке настроек Particle Type (Тип частиц) – в положение Sphere (Сфера).

7. В свитке Particle Generation (Генерация частиц) увеличьте размер частиц, задав параметру Size (Размер) в области Particle Size (Размер частиц) значение 12. Чтобы сферы имели разный размер, увеличьте значение параметра Variation (Разброс) до 40. Если сферы расположены неудачно, можно подобрать другое положение частиц, нажав кнопку New (Новый) в области Uniqueness (Уникальность) (рис. 4).

Рисунок 4. Теперь частицы отображаются в виде сфер разного размера.

8. Источник частиц не может участвовать в булевых операциях, поэтому используйте инструмент Snapshot (Снимок), чтобы превратить частицы в единый объект. Для этого выделите объект в окне проекции и выполните команду Tools –> Snapshot (Инструменты –> Снимок). В открывшемся окне установите переключатель Clone Method (Метод клонирования) в положение Mesh (Поверхность) и нажмите кнопку ОК. Спрячьте источник частиц, он больше не понадобится.

9. Щелкните на названии окна проекции правой кнопкой мыши. В появившемся контекстном меню выберите команду отображения ребер сетчатой поверхности объекта – Edged Faces (Контуры ребер). В этом режиме видно, что частицы имеют недостаточно сглаженную форму, поэтому примените к ним модификатор MeshSmooth (Сглаживание поверхности). Установите в свитке настроек Subdivision Amount (Количество разбиений) значение параметра Iterations (Количество итераций) равным 3.

Убедитесь, что в свитке Parameters (Параметры) переключатель булевой операции установлен в положение Substraction (Вычитание), и нажмите кнопку Start Picking (Начать выбор) в свитке Pick Boolean (Выбрать булевый объект). Выделите объект со сферами. После выполнения операции булевого вычитания получится кусок сыра (рис. 5).

 

А это получиться если его порезать.... (рис. 7, если вам интересно - модификатор slice :-) ):

Рисунок 7. "Нарезанный" кусок сыра.

 

Трава стандартными средствами 3ds Max + система частиц.

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

Открываем макс, настраиваем единицы измерения: меню → CustomizeUnits Setup… → отмечаем точку рядом с «Metric» и выбираем в строке ниже Centimeters OK, теперь все размеры в сцене будут в сантиметрах. Идем в меню → Create → Shapes → Rectangle, чертим в окне «Top» прямоугольник размером 200,0 cm на 200,0 cm.

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

Заранее в Photoshop-е нарисована вот такая текстура:

Идем в список модификаторов и применяем к плоскости, которую я назвала «Ground001», модификатор Displace. В разделе Image: под надписью Bitmap: жмем кнопку None и указываем путь к нашей текстуре, в разделе Displacement: устанавливаем параметр Strength равным 10,0 cm или больше, как кому нравится, это будет высота неровностей на почве.

Конвертируем то, что получилось, в Editable Mesh (правой кнопкой на названии модификатора Displace и нажимаем Collapse All), дублируем получившейся объект, соответственно, дубликат будет называться «Ground002» и временно скроем копию (Display → Hide Selected). Снова кликнем по Ground001, заходим в Editable Mesh → Polygon, выделяем все нижние полигоны и удаляем их.

Т

Применяем модификатор FFD(box)7х3х2 и, манипулируя контрольными точками…

еперь создадим собственно травинки, в окне Front рисуем Plane размером приблизительно 15,0 cm на 1,5 cm с сегментами 10 на 2 соответственно.

Используя модификатор Edit Mesh, на уровне подобъекта скопируем нес-колько раз нашу травинку, уменьшая и поворачивая копии, мы получим вот такой травяной «кустик»:

Важно!

Теперь необходимо выполнить еще два действия:

  1. на боковой панели зайти на вкладку Hierarchy, нажать кнопку Affect Pivot Only, это позволит переместить центр координат объекта в нужное положение, в нашем случае это самое основание «кустика», как бы точка, откуда растут травинки;

  2. во вкладке Utilities нажмите кнопку Reset XForm и ниже еще одну Reset Selected, перейдите во вкладку Modify, нажмите правой кнопкой на названии «XForm» и выберите Collapse All. Естественно, при этом, объект Blade001 (так я назвал нашу травку) должен быть выделен.

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

Ну, вот подготовительную работу мы сделали, приступим к созданию газона. На вкладке Create в выпадающем меню найдите группу объектов Particle Systems и создайте в любом месте сцены (положение не имеет значения) объект PArray. Да, да не удивляйтесь именно систему частиц мы и будем использовать для генерации травяного покрова! Перейдем на вкладку Modify.

Теперь в разделе Object-Based Emitter нажимаем кнопку Pick Object и указываем в качестве эмиттера «Ground001», в разделе Viewport Display ставим точку напротив Mesh, в окошке рядом с Percentage of Particles ставим 100%, в группе команд Particle Generation, в разделе Particle Quantity точку напротив Use Total и ниже вписываем 5000 (это общее количество частиц), в разделе Particle Motion – Speed: 0, Variation: 0, Divergence: 0; в разделе Particle Timing – Emit Start: -30 (минус 30), Emit Stop: 0, Display Unitil: 100 (или до конца активного участка), Live: 130 (или как минимум, на 30 кадров больше чем Display Unitil), Variation: 0.

Далее переходим к группе команд Particle Type, ставим точку напротив Instanced Geometry, в разделе Instancing Parameters нажимаем кнопку Pick Object и кликаем на нашу травинку (Blade001), вернемся в группу команд Particle Generation и в разделе Particle Size выставляем размер травинок (Size), у меня стоит: 0,03cm, но вы можете поставить больше или меньше, смотря какой высоты, требуется трава. Зайдем в группу команд Rotation and Collision и в разделе Spin Speed Controls поставим, Phase: 50, Variation: 50, это отрегулирует хаотичный поворот и наклон травинок. Смотрим что получилось.

Однообразно, если честно, давайте-ка создадим второй вид травы, но с другими листиками, вот, примерно так:

Примечание: для того что бы во время работы не возникали «тормоза», в настройках не-активной PArray необходимо изменить отображение час-тиц. В разделе Viewport Dis-play вместо Mesh, включить, к примеру, Dots, Ticks или BBox.

Назовем новую травку Blade002, скопируем объект PArray001, у нас получится вторая система частиц PArray002, зайдём в настройки и в группе Instancing Parameters жмем на кнопку Pick Object и кликаем на нашу травку №2 (Blade002), еще необходимо нажать на маленькую кнопочку New в группе Particle Generation, в разделе Uniqueness для того чтобы новая травка не располагалась в тех же местах, что и первая. Еще я увеличил общее количество травинок в разделе Particle Quantity до 8000.

Ну что ж, теперь плоскость Ground001 можно спрятать через кнопочку Display → Hide Selected и вытащим на свет объект, который будет изображать землю Ground002 кнопкой Unhide by Name.

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

Создадим материал травы:

Я не стал в рамках данного урока использовать сложные VRay-евские материалы — это тема для отдельного тутора а, использовал обычный Max-совский Standard, настройки на картинке, при желании, возможно, использовать текстуру. Для второй травы материал точно такой же, только изменил слегка оттенок и яркость. Теперь необходимо добавить освещение, я поставил всего лишь один Target Direct с тенями VRayShadow, включил GI, ну, и положил HDR на Environment. Здесь я не буду вдаваться в подробности, ищите уроки по настройке V-Ray. Смотрим картинку:

Уже лучше…Для натуральности не мешает добавить сухой травы и длинных стебельков с помощью тех же систем частиц PArray.

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

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

В редакторе материалов создаем стандартный материал: в diffuse вешаем цветную картинку на белом фоне, в Opacity – черно-белую. Поставим галочку 2-sided, чтобы материал был двухсторонним.

С помощью предыдущего метода раскопируем плоскости по поверхности. Если на визуализации не будет видно материала, то его следует назначить излучателю частиц.

Добавим посторонних деталей. Ну, вроде и все.

137