The Making of "Старый парк"

Здравствуйте, меня зовут Дмитрий Ярков. В этой статье я расскажу о том, как создавалась моя последняя работа "Старый парк".

Эскиз и композиция

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

Я постарался сделать мостик центральным элементом. Кроме того, его полукруглые формы должны были ненавязчиво притягивать взгляд, работать в качестве "линзы". Под "линзой" в композиции понимается любой объект примитивной геометрической формы: круг, квадрат, треугольник. Кроме того, основное движение картины - линии берега - направлено "вправо-вверх" - это создает позитивный настрой работы. Люди присутствуют на эскизе только в качестве масштабных объектов. Как видите, камера стоит повыше голов людей. Это сделано сознательно, для того чтобы взгляд на пейзаж получился чуть отстраненным, наблюдательным.

Геометрия поверхности

После завершения набросков, я перешел непосредственно в программу 3ds Max, она у меня последней, 2009 версии. Первое, что я сделал - это примитивными фигурами набросал композицию.

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

Ландшафт я начал строить из большой плоскости, разбитой на несколько сегментов, в режиме Editable Poly. Русло реки было сделано экструдированием полигонов со снятием фасок на берегах. После этого ландшафт был сглажен Turbo Smooth.

Принцип плановости

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

Я выбрал следующий способ текстурирования: на ландшафт накладывается планарный UVW Map, а в фотошопе рисуется диффузная карта. Но не мог же я наложить на всю поверхность земли одну карту размером 40000х40000 пикселов, чтобы мелкие детали вблизи не потерялись. И тогда я применил принцип плановости. Я выделил кусок земли, который попадал в область ближайшего осмотра, и сделал его отдельным объектом.

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

После этого я сделал то же самое с берегом реки за мостом. Это будет средний план: на нем будет расти геометрическая травка, но больше деталей там не требуется.

Все остальное пространство стало дальним планом с минимальной детализацией.

Создание текстуры земли

Я перешел в виду сверху и снял скриншот получившегося участка (вместе с мостом). Затем вставил его в фотошопе, обрезал лишние края и увеличил размер изображения до 4000х4000 пикселей.

Сначала я заполнил все пространство повторяющейся текстурой травы. Затем взял понравившуюся текстуру дорожек:

И начал размещать эти дорожки на траве. Для речного дна и берегов я использовал третью текстуру. В конце концов, получилось вот это:

Кроме этого, я сразу сделал текстуру дисплейса для травы:

Дисплейс травы - только основа, реальная трава будет сделана геометрией.

Мост

Создание моста - дело несложное. Самым сложным было отсмотреть достаточно много фотографий подобных мостов и сделать из них некий микс. Главное в этом деле - не лениться корежить доски модификатором Noise и не жалеть полигонов.

Также некоторые доски я дополнительно вручную помял с помощью Edit Poly. Текстура моста:

Трава

Приступим к разбору одного из самых интересных моментов - создания травы. Траву я делал с помощью VRay Fur. Мой выбор пал именно на этот плагин, так как он позволяет использовать растровые маски плотности, длины травинок и т. д.

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

Одно удовольствие рисовать такие маски: сделал мазок в фотошопе - а в 3д максе появился пучок травы.

Настройки травы такие:

Length (Длина) - 30 см, Thickness (Толщина) - 5 мм, Gravity (Гравитация - степень наклона по оси Z) - -1 мм, Bend (Сгибание - по любым осям) - 1, Taper (Заострение к концу) - 1, Knots (Количество сегментов по вертикали) - 4, Direction Var (Варьирование направления травинок в разные стороны) - 0.6, Length Var (Варьирование длины) - 0.8. На Density Map (Карта плотности) положена вышеупомянутая текстура плотности.

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

Обратите внимание на галочку WU - она означает, что градация цвета будет происходить по вертикальной оси травы. Но это еще не все. На самом деле, на каждый из флажков Gradient Ramp наложена своя текстура.


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

А эта наложена на самый правый флажок (верх травинок). Трава светлеет к верху:

Камни

Создание камней - достаточно тривиальная задача. С помощью сфер и модификатора Noise я создал 12 видов камней:

После чего перевел их в VRay Proxy и сохранил в отдельном файле. А вот красиво разложить их по поверхности земли - уже сложнее. Вручную это делать как минимум нереально, как максимум - долго и сложно (конечно, при условии, что каждый из 12 камней нужно расставить в случайном порядке, и чтобы это не выглядело нарочито). Тут мне помог скрипт ObjectPainter. Вы можете скачать его здесь: http://www.3dcenter.ru/tutors//images/uploads/Image/Articles/old_park/maxscript_3script/ObjectPainter.rar

Суть его работы следующая: он загружает все наши камни и вы в виде сверху рисуете кистью по поверхности земли, расставляя их в случайном порядке. Подробнее можете прочитать здесь: http://www.3dcenter.ru/tutors/read.php?sname=maxscript&articlealias=maxscript_3script

После того, как камни красиво легли (у меня это получилось не с первого раза), нужно их немножко разнообразить. У нас, конечно, есть 12 видов камней, но есть вероятность, что некоторые одинаковые из них окажутся рядом. Для случайного масштабирования и поворота камней я использовал скрипт из коллекции BlurScripts под названием Random Transform. Можете поискать их в сети, они бесплатные. Последнее обновление выходило очень давно, но оно все равно подходит даже под 2009 макс. В этих же скриптах есть Random Select, с помощью него я присвоил камням три различные текстуры.

Одуванчики

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

1. Корежим плоскость Edit Poly
2. Копируем несколько плоскостей и по-разному их корежим
3. Копируем все получившиеся плоскости несколько раз вокруг центра одуванчика
4. Копируем все плоскости чуть-чуть вверх и применяем к каждой из них Bend (все одинаковые плоскости должны быть инстансами)
5. Повторяем процедуру несколько раз, пока не получится несколько слоев лепестков, на самой верхушке уже совсем загибающихся к центру. Немного повернем каждый слой лепестков вокруг центра.

Добавляем стебелек, переводим в прокси (не забудьте назначить полигонам ID ) и одуванчик готов!

Материал одуванчиков - самый обычный желто-оранжевый диффуз с небольшим Falloff к краям.

Вода

Еще один интересный объект - вода. Геометрия воды - обычная плоскость. Материал чуть поинтереснее.

На рефракте чуть зеленый цвет, но его можно было бы сделать любого другого оттенка, смотря какого эффекта вы хотите добиться. IOR воды - 1.33, это табличное значение. На диффузе положен VRay Dirt с такими параметрами:

Здесь на Occluded Color положена карта пены:

Таким образом, основной цвет диффуза - черный, это дает полную прозрачность воды (да-да, цвет диффуза влияет на прозрачность). В тех местах, где вода соприкасается с любыми объектами (с берегом - в первую очередь), карта VRay Dirt меняет диффузный цвет на карту пены. Белые (точнее - сероватые) области делают воду почти непрозрачной, таким образом, получается эффект пены.

Можно было бы нарисовать карту пены вручную, наподобие карты плотности травы. Но в этом случае VRay Dirt оказался гораздо рациональней, хотя блендом можно было бы гибче управлять текстурой пены.

Рябь на воде сделана с помощью VRay Displacement Mod, высота дисплейса 12 мм, тип - 3D mapping. Текстура дисплейса неоднородна:

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

Это еще не все. Я добавил мелких деталей на поверхность воды: что-то наподобие тополиного пуха и древесных щепок:

Белые точки - это пух, обычные сферы, помятые нойзом (можно было бы обойтись даже плоскостями). Коричневые прямоугольнички - это щепки, обычные плоскости, помятые тем же нойзом. По поверхности воды я распределил их с помощью того же скрипта ObjectPainter. Я забыл перевести эти детальки в прокси - в результате получилось около 300.000 лишних полигонов - но мне это не помешало.

На воде есть еще одна деталь - прилипший к опоре моста листик:

В центре композиции деталей должно быть много.

Деревья и кусты

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

Болванки деревьев я моделировал в Onyx Tree Storm. Рассмотрим главное дерево сцены:

Сначала в ониксе я сделал болванку дерева:

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

1. Заменяем все листья дерева на свои. Для этого рисуем в отдельном файле нужный лист с пивотом в центре координат и проделываем соответствующую операцию с деревом (подробнее смотрите в уроке "Создание реалистичного дерева" на этом сайте). Важно: в 2009 максе коннектор оникса почему-то не включает возможность замены листьев. Мне пришлось установить 2008 макс - там эта функция работает. Не забудьте поставить UV-координаты для всех веток дерева.

2. Переводим все ветки дерева в Editable Poly и с помощью Detach отделяем основные три ветки (каждую в отдельный объект), ствол, а также я отделил одну из нижних веточек (ту, которая в моей работе сломана). Смысл в том, чтобы выделить в отдельные объекты те ветки, которые будут особо детализированы. С помощью Edit Poly я сразу "сломал" нижнюю ветку, т.е. распилил напополам и одну часть повесил вниз.

3. Исправляем геометрию веток. Для этого к каждой ветке применяем последовательность действий: 1) выделяем все вершины и делаем Weld с порогом примерно 0.1 см (чтобы убрать из модели дыры, образованные неслитыми вершинами); 2) На уровне выделения Border выделяем все ребра (должны выделиться только ребра на концах веток) и жмем Cap для создания полигонов на этих местах.

4. Сливаем все ветки и ствол с помощью ProBoolean в режиме Union, ставим галочку Make Quadrilaterals для автоматического создания четырехугольных полигонов и применяем к модели TurboSmooth. Теперь ветки можно двигать как угодно (в режиме подобъектов ProBoolean), их сливание сохранится (осторожно, может вылететь). Я подвинул левую ветку вниз, а вслед за ней подвинул и листья.

5. С помощью Edit Poly на готовой геометрии можно набросать небольших деталей.

6. Применим модификатор Noise для неровностей.

7. После текстурирования и дисплейса дерево выглядит так:

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

Примерно так. Дальше несложно: убрать лишние листья, чуть изменить ветки (+ я еще разбросал скаттером несколько маленьких веточек по стволу) и готово.

Материал листьев:

Здесь цвет Translucenсy  не чисто белый, а чуть сероватый, иначе блик от отражения совсем пропадет. Вообще, VRay 2-sided материал нужен для того, чтобы листья пропускали свет сквозь себя. Мульти-материал нужен для некоторого разнообразия цвета листвы. На диффузе - растровая карта, взята из коллекции листьев оникса. Trace Reflections (Просчитывать отражения) отключено, чтобы листья давали блик, но не отражали по-настоящему.

Материал коры и дисплейса для нее:

Куст справа делается еще проще: никаких махинаций с ветками проводить не надо, только с листьями:

Здесь листья

Сирень делается тоже легко, пару слов про цветы:

Это плоские окружности, распределенные по телу вращения (позже удаленному) с помощью Scatter. Потом перевел в прокси и с помощью того же скрипта ObjectPainter распределил цветы по сирени. Кстати, очень удобно, рекомендую. Материал - такой же, как у листьев, только без мульти-материала и отражения.

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

Освещение

Освещение в сцене - канонное: VRay Sun, VRay Sky, VRay Physical Camera. Гамма 2,2. Солнце направлено под 90 градусов к камере и под 45 к земле. Тип затухания - линейный. Контраст GI понижен до 0,7.

Постобработка

Финальный рендер без фотошопа выглядел так:

А это канал глубины:

Последовательность действий следующая:

1. По каналу глубины выделяем задний фон в отдельный слой и делаем его гораздо светлее и контрастнее, применяем к нему PhotoFilter теплого цвета (из пресетов). Размываем его по Гауссу с радиусом 0.4

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

3. Копируем основной слой, размываем его по Гауссу с радиусом 2.0 и меняем режим наложения на Overlay. Ослабим прозрачность до 50%. Теперь, чтобы новый слой влиял только на освещение, и не влиял на насыщенность цветов, делаем ему Desaturate. Сливаем с предыдущим слоем и с помощью Curves делаем светлее (тянем за центр кривой вверх).

4. Лучи света добавляем на новом слое с помощью Gradien типа Noise. Делаем Desaturate, затем сводим к золотому цвету с помощью галочки Colorize в Hue/Saturation/Lightness, делаем контрастней и прозрачней. Удаляем ненужные участки, чтобы лучи были только в левом верхнем углу.

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

785 0 850 95
36
2008-07-22
Спасибо. Было интересно почитать.
2008-07-22
Отличный урок! Молодца!!! Хоть я и не работаю в максе - извлек для себя пару интересных моментов [smile=07]
2008-07-22
Отлично, спасибо, я много нового узнал. А как получить канал глубины? Очень нужно, плиз!
2008-07-22
Agior, в настройках рендера, во вкладке Render Elements, выбираешь VRayZDepth. После, если используешь VRayFrameBuffer, после рендера каналы можно переключать с помощью выпадающего списка в левом верхнем углу. Это один из способов.
2008-07-22
отлично! хоть и несколько... хм... "скукожено", но основная мысль до сознания доходит без проблем. Ну и конечно, не для ночичков. Но всё равно - 5\5
2008-07-22
Давненько не было мэйкинг оф'ов. Особенно хороших. Теперь есть ) Все аккуратно и детально написано, есть даже пара авторских фич. Вообщем, автор - молодец =)
2008-07-22
Спасибо) Да, это не для новичков. Мне как-то не по себе расписывать действия, которые я считаю простейшими. Чувствую себя дураком) Поэтому описал только то, что для самого меня представляло определенную сложность и интерес.
2008-07-22
Большое спасибо за урок! Очень понравились некоторые моменты. VrayDirt на воду? как я сам не додумался, можно ведь сделать кучу еффектов ) И со стволом дерева тоже понравился рецепт ) Автор молодец )
2008-07-23
Наконец хороший и качественный "Making of"!!!!!!!!!!!!! Автор молодчина ;) 5/5
2008-07-23
как человек изучающий виз мне было полезно) спасибо 5\5!
2008-07-24
Интересный и качественный материал 5/5
2008-07-24
Очень хорошая работа. Молодец
2008-07-24
Очень интересный материал, автору большой респект!
2008-07-24
:) Всем спасибо за оценки)
2008-07-24
[b]Долбануцца!!!! [/b] не обижайтесь на резкое высказывание, но просто мне оченнннь понравилось!!! Просто супер! приду домой - попробую. Автор -молодец! 5 баллов!
2008-07-25
.....только открыл, и не успев пролистать чуствую предвкушение чудовещно интересного приключения в волшебный мир!!! Заранее огромное спасибр!!!!,.............
2008-07-25
Отличный урок!
2008-07-25
Я[b] выделил листья и увеличил каждый из них в 2 раза, а потом повернул на 90 градусов, чтобы они были развернуты к нам. На эту операцию требуется много памяти и времени, процесс никак не отображается, так что наберитесь терпения:[/b] Извините за глупый вопрос - а как лучше провести сию процедуру? Если каждый лист выделять как отдельный элемент единого меша, то рискуешь стать инвалидом умственного труда, не дождавшись конца процедуры... там ведь этих элементов десятки тысяч...
2008-07-25
Вадим Ермак, просто выделяешь все листья на последнем уровне выделения (Element). Можно с помощью Ctrl-A, а можно выделить прямоугольным выделением только те, которые попадают в зону прямой видимости. В любом случае, отделять каждый лист от основной сетки не надо. Переключатель выбора опорной точки трансформации (в верхней панели посередине) должен стоять в режиме Use Pivot Point Center.
2008-07-25
Обалденно!!! 5/5
2008-07-29
Не ясно, [b]почему трава за мостиком светлее?[/b]
2008-07-29
iLyxa, за мостиком трава [b]другая - береговая[/b]
2008-07-30
Потрясающе. 10 из 5 )
2008-08-01
Спасибо за урок,Дмитрий! По атмосфере это АВАРД!!!!! 8)
2008-08-01
Ага, но в авард работа не попала все-таки)
2008-08-05
Захватывающая работа! после такого трудно устоять и не взяться за собственный пейзаж, т.к. автор подробно описал все сложные моменты. МОЛОДЦА! 5/5
2008-08-07
вижу, что урок уже - выбор публики, но не удержался поставит 5/5! Потрясающе!
2008-08-18
Здорово вобще.. Даже для меня частично понятно, жалко я так не умею...
2008-08-20
Действительно жаль, что нет этой работы в авардах. Оценка 5\5. А может, если-б дали авард, мы лишились бы отличного урока!!! Я кстати тоже свет ставлю к камере почти под прямым углом только не точно 90. а в среднем 85-100градусов - случайно вышло приближение к данной величине - просто результат так интересней. Так-что 90градусов это тоже почти канон. А так, много мелких подводных моментов рассказано.
2008-09-10
спасибо!!!особенно что подробно о траве рассказали!ОЧЕНЬ полезно для меня по крайней мере :) жаль что нет ничего о рендере,хотя-бы ради интереса какие настройки предпочел Автор.
2008-09-29
Ну как это нет. Глава "Освещение", там все написано) Кроме этого, все - стандартное
2009-04-10
1."Кроме этого, я сразу сделал текстуру дисплейса для травы" Скажите пожалуйста кто-н7ибудь по-подробнее, для чего нужен дисплейс и как его делать? 2."Вот маска плотности травы, натянутая на весь участок ближнего плана" Как это вообще понимать? Как это работает? Как это делается и для чего это нужно? P.S. Я только учусь и мне просто очень интрересны эти моменты, т.к. они для меня пока еще не ясны, а познать очень хочется. Кто знает ответы на мои вопросы, с удовольствием послушаю вас. ;)
2009-04-10
Fomen, я понимаю ваши восторги и желание узнать все "из первых рук", но то, что вы спрашиваете, крайне легко найти в сети. И про дисплейс, и про маски чего бы то ни было
2009-04-11
BlackAgate (Elrond), благодарю за развернутый ответ. )
2010-09-15
Спасибо за урок! Помогите разобраться, какое желательно соотношение между плоскостью(?) и текстурой(пиксель)
2010-11-15
Урок супер, спасибо!Во многом помог!
RENDER.RU