? О моделировании водной поверхности в MAX'е написано достаточно много
English Russian
Live Здравствуйте, дорогие любители RENDER.RU. Вот спустя некоторое время решил написать собственный ...
Главная   Уроки   Библиотека   Документация   Знания

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

Новости

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятел...
3D моделирование и визуализация
  Создавая какую-то фигуру или элемент трехмерной графики, перед самим дизайнеро...
Создание нерегулярных сложных объектов
Основной проблемой при создании таких объектов является постоянное видение объе...
Home Вы здесь:: 3D инженерия Дизайн О моделировании водной поверхности в MAX'е написано достаточно много
 

Модели

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

Вход для авторов



 
   
О моделировании водной поверхности в MAX'е написано достаточно много
09.11.2011 20:32

О моделировании водной поверхности в MAX'е написано достаточно много. Совсем простенькие примеры (вроде тех, что описаны в учебниках), если честно, производят впечатление скорее унылое. Качественная модель может потребовать значительных аппаратных ресурсов, создания специальных материалов, применения плагинов, не входящих в стандартный набор MAX и проч. Тем более обидно, если в итоге, после всех стараний и затрат, море получается... хм... мягко говоря... всё равно достаточно условным. Cтатичную картинку ещё можно «вытянуть» различными средствами компьютерной графики, но с анимацией в таком случае – просто беда. С другой стороны, анимация адекватной, но сложной модели морской поверхности может стать опять-таки проблемой, когда рендеринг одного кадра занимает хотя бы больше минуты процессорного времени.

Я попытался создать простую повторяемую анимируемую модель морской поверхности, используя стандартные материалы, стандартное освещение и стандартный рендеринг; я принял во внимание наиболее общие оптические свойства водной поверхности и постарался хотя бы имитировать эффекты, недостижимые без применения каустики (от которой я также отказываюсь ради сведения к минимуму времени визуализации); за пределами задачи остаётся и моделирование геометрии поверхности моря (а, следовательно, и крупных волн, «барашков» и проч).

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

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

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

... море можно превратить в тропический океан...

...коли придет желание изобразить какую-нибудь эффектную марину:

Короче... понадобится морской клип - не обязательно отправляться на Карибы: если не всё, то многое можно нарисовать дома ;) Тут я разместил для иллюстрации flv-ролик, но, видать, скрипт какой-то кривой - показывает через раз. Ну не Web я мастер. Впрочем, по этой ссылке ролик можно скачать и посмотреть любым flv-проектором - коли в браузере его не видно. Хм.

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

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

Моделирование водной поверхности

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

Завожу геосферу радиусом 800 метров (этого, полагаю, хватит) с координатами (0,0,-105) (все линейные размеры даются в метрах).

Воздействую на неё модификатором EditPoly, выделяю все полигоны и обращаю нормали в свитке EditPoligons (это необязательно, но удобно – чтобы не беспокоиться впредь специально о том, чтобы источники освещения сцены не закрывались этой нашей «небесной твердью»). Далее применяю модификатор UVW Mapping, выбрав в его свитке Parameters опцию Spherical – чтобы иметь возможность управлять нанесением текстуры.

Текстуру для неба можно сочинить в Photoshop’е или в каком-либо другом графическом редакторе, чтобы получилось что-то в этом роде:

Надеюсь, что приёмы создания «бесшовных» картинок вами уже усвоены, если же нет – постарайтесь, чтобы камера не смотрела в неудачную часть «небес». Создаю первый материал модели – для небесной сферы. Это - стандартный материал, использующий растровую текстуру в карте Diffuse Color с весом 90, Self Illumination – 100 и значениями цветов Ambient и Diffuse 18 42 56 (голубой) и 120 190 230 (синий) соответственно. Распределение света по Blinn’у; значения для блика (Specular Level, Glossiness и Soften) - 0, 0, и 0,1 соответственно. Впрочем, поскольку в данном материале используется самосвечение на 100%, последние параметры не столь уж важны (вообще большинство параметров, равно как и выбор исходного материала для текстуры небес определяются задачей композиции и могут «плавать» в достаточно широких пределах). Присваиваю нашей геосфере этот материал (я так и назвал его «небо»). Ставлю точечный источник света. Тени отключены, интенсивность – 1, координаты – 0,0,0. Назову и его также - «небо». Единственное его предназначение – освещать купол небес

Помещаю направленную камеру с координатами x=150, y=141, z=17, объективом 46мм и «мишенью» в области x=144, y=-60, z=-15. Самое время посмотреть, что получилось в поле зрения камеры. Так, ничего особенного, всё ожидаемо… небо вроде бы готово.

Дном служит плоскость 2000м на 2000м с координатами x=162м y=10м z=-7м. Материал для дна – также стандартный. За основу я взял растр SPONGE.JPG из библиотеки 3DSMAX... но вообще-то можно использовать любое изображение каменистой или песчаной поверхности, сделав его бесшовным:

Значения Ambient и Diffuse 26 27 10 (тёмно-зелёный) и 182 219 119 (салатный) соответственно. Распределение света по Blinn’у; значения для блика (Specular Level, Glossiness и Soften) - 0, 10, и 0,1. Используются карты текстур Ambient Color (50), Diffuse Color (20) и Bump (140). В моём случае используется тайлинг 25 в свитке Coordinates и инвертирование в свитке Output каждой карты:

Но это всё, конечно, зависит от того, что именно вы возьмёте в качестве основы для текстуры дна. Присваиваю этот материал (назову его "дно") плоскости – дно готово.

Для имитации солнечных «зайчиков» на донной поверхности нам понадобится отдельный источник света с анимированной картой освещенности. Она является смесью типа Mix двух текстур типа Noice с анимированными фазами. Поскольку солнечные блики на дне – очень важная часть модели, расскажу об этом подробно (впрочем, тем, кто освоил приёмы составления и анимации сложных материалов, львиную долю моих дальнейших словопрений можно смело опустить, обратив внимание лишь на структуры карт и параметры текстур).

Итак, выделяю любую свободную ячейку в окне редактора. В моём случае это - неиспользуемый покуда материал Material #15 (вокруг ячейки появляется яркая белая рамка). Щелчком открываю свиток Maps. В раскрывшемся свитке выбираю любую карту – например, Diffuse Color:

Щелкаю по клавише None в поле карты Diffuse; в раскрывающемся окне материалов Material/Map Brouser выбираю вариант Noise и подтверждаю выбор кнопкой OK:

Установки карты типа Noise «по умолчанию», которые будут изменены, показаны обводкой. Устанавливаю новые значения: выбираю Blur – 2, Blur offset – 2, Noise Type – Turbulence, Levels – 6, Size – 800:

Для создания составного материала щелкаю по кнопке Noise, в раскрывающемся браузере материалов/карт выбираю вариант Mix, подтверждаю выбор кнопкой OK. В ответ на вопрос, что делать со старой картой и не сделать ли её компонентом новой (по умолчанию), щелкаю OK

Получаю сложный материал типа Mix, одним из компонентов которого является уже созданный мной Map #217 (Noise). В свитке Mix Parameters меняю установки как показано. Щелкаю по свитку Output и изменяю характер кривой приблизительно так, как показано на рисунке. Эта кривая определит в будущем нам вид и яркость границ сетки бликов на поверхности дна.

Возвращаюсь в свиток Mix Parameters, чтобы добавить второй компонент карты Mix, для чего щелкаю по кнопке None, в окне материалов Material/Map Brouser выбираю вариант Noise и подтверждаю выбор кнопкой OK; установки по умолчанию изменяю следующим образом:

Цвета Color#1 и Color#2 для шума устанавливаю на уровне 92 и 144 соответственно. Щелкаю по кнопке навигатора карт редактора материалов, получаю схему нашего будущего карта освещенности дна. Надеюсь, у вас получилось то же самое.

Стоит сразу же и анимировать этот материал. Проще всего это сделать так. Возвращаюсь в свиток Noise Parameters какой-нибудь из компонент нашего материала Mix (например, Color 1, в моём случае это материал Map #217 (Noise)) – щёлкаю по полю Phase и выбираю в раскрывающемся меню пункт Show in Track Vew

Раскроется редактор построения графика анимации. Каким-нибудь инструментом (например, карандашом) рисую кривую из двух точек. Затем, выделяя их, устанавливаю значения для первой, например, точки номер кадра – 0, величина фазы – (-9); для второй – 100 и 0 соответственно.

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

Такой график изменения фазы шума при проекции со скоростью 15 – 30 кадров в секунду отвечает достаточно естественному изменению бликов и волн нашего будущего моря. Теперь анимационное окно Selected можно закрыть. Следует анимировать и вторую компоненту материала. В окне редактора материалов в свитке Noise Parameters только что анимированного компонента Color 1 (материал Map #219 (Noise)) окошко Phase теперь содержит красную окантовку – признак анимации фазы шума, лежащего в основе текстуры компонента. Щелкаю в поле Phase и выбираю из выпадающего меню строчку Copy Animation. Перехожу ко второму компоненту (в моём случае - это Color 2, материал Map #217 (Noise)), щелкаю правой кнопкой мышки в поле Phase и выбираю пункт Paste Animation – Instance.

Теперь у меня анимированы оба компонента сложного материала Mix. Если мне не понравится темп анимации, достаточно поправить её для одного компонента – и анимация второго претерпит аналогичные изменения (поскольку мы использовали вариант копирования Instance). Создаю новый стандартный точечный источник света, называю его «грунт». Координаты – 160, 56, 165, розоватый цвет (255, 227, 190), тени включены, тип теней – Adv. Ray. Traced, интенсивность – 0,2. Мне нужно, чтобы этот источник рисовал блики на дне – в соответствии с тем анимированным материалом, который я смастерил. В редакторе материалов я перехожу на уровень списка карт (свиток Maps), щелкаю правой кнопкой мыши по карте, где находится материал солнечных бликов (в моем случае Map 217 (Mix) в карте Diffuse Color ячейки текстур Material #15) и в выпадающем меню выбираю строчку Copy.

Теперь перехожу в свиток Advanced Effects источника света «грунт», щелкаю правой кнопкой мыши по кнопке None в области Projector Map и выбираю команду Paste (Instance) в выпадающем меню. Теперь наш источник содержит анимированную карту Map#217 (Mix), которую я создавал в редакторе материалов. Если картина бликов мне не понравится, я смогу отредактировать её в окне редактора материалов; при этом анимация источника освещения преобразуется автоматически.

Дно есть, блики есть, осталось позаботиться, чтобы источник освещения неба освещал только небо, а источник освещения дна – только дно. В свитке General Parameters источника света «грунт» в поле инструментов Shadows щелкаю по кнопке Exclude… и в раскрывающемся окне Exclude/Include выделяю объект «небеса»: мне вовсе ни к чему блики на сфере, имитирующей небо. Потом щелкаю по кнопке >> и по OK.

Окно свернётся. Далее ту же процедуру произвожу с источником света «небо», потому что мне вовсе ни к чему засвечивать дно лишним светом, предназначенном для неба. Проведу пробный рендеринг. У меня получилось вот что:

Варьируя параметры компонент материала Map#217 (Mix), я могу менять характерные размеры бликов, а трансформируя кривую распределения интенсивности компонента Color#1 (Map#217(Noise)) – толщину и яркость сетки. Вообще, есть смысл самостоятельно поменять некоторые параметры (включая коэффициент смешивания компонент) и выбрать то, что покажется наиболее подходящим.

Теперь нужно «накрыть» дно с анимированными бликами анимированной водной гладью. Создаю плоскость размерами 2000м на 2000м и координатами 0, 0, 0. Назову её «море». Исключаю этот объект из воздействия источников света «небо» и «грунт» так, как уже описывал ранее. Для создания материала водной поверхности выделяю свободную ячейку в редакторе материалов Material editor и так и называю этот материал – море. Присваиваю этот материал только что созданной плоскости. Изменяю установки по умолчанию в свитке Blinn Basic Parameters в поле инструментов Highlightes. Открываю свиток Maps и меняю «влияние» карты Bump с 30 на 20. Теперь займусь созданием материала, имитирующего волны и рябь на воде.

Щелкаю по кнопке None карты Bump вызываю броузер карт и материалов, выбираю вариант Mix.

Установки по умолчанию меняю следующим образом: клавишей Swap реверсирую цвета компонент и устанавливаю 50% смешивание будущих карт шумов, имитирующих волны и рябь морской поверхности. Щелкаю по кнопкам None компонент материала Color#1 и Color#2 выбираю в редакторе карт и материалов варианты Noise. Характеристики шумов для имитации волн и ряби указаны на рисунке: в данном случае выбран режим Fractal, цвета карты шумов Map#221 компоненты Color 2 устанавливаю на уровне 92 и 144. После этого остаётся анимировать материалы, составляющие карту Bump – чтобы поверхность моря ожила. Честно, мне лень подробно рассказывать, как это делается, тем более, что приёмы там те же, что и в анимации карты бликов на дне, а о ней я уже говорил. В этом примере я просто скопировал анимацию фазы одного из компонентов материала Map 217 (Mix) и перенёс её в компоненты материала Map 215 (Mix), формирующего текстуру Bump поверхности материала «море». Покончив с анимацией Bump'а, займусь оптикой - поглощением, отражением и преломлением.

Перехожу на 2 уровня выше, дважды щелкнув по соответствующему значку   на линейке инструментов редактора материалов, и выбираю в свитке Maps следующую характеристику материала «море» - Opacity. Это очень важная характеристика материала: она обеспечивает изменение прозрачности поверхности воды. Чем меньше угол, под которым мы смотрим на водную гладь, тем менее она прозрачна, и наоборот. В свою очередь, чем дальше от камеры тот или иной участок морской поверхности, тем меньше и угол, под которым эта поверхность видна. Поэтому естественно использовать в этой карте материала текстуру типа Falloff.

В окне материала Falloff выбираю спад по Френелю и модифицирую кривую в свитке Mix Curve так, как показано на рисунке. Сбросив – чтобы волны и рябь не мешали обзору - флажок Bump в свитке Maps материала «море», стоит сделать пробный рендеринг и убедиться, что морская поверхность и впрямь становится все менее и менее прозрачной по мере удаления к горизонту. Если характер этого изменения покажется вам неестественным, можно скорректировать его, изменяя кривую карты Falloff, сдвигая границу видимости дна ближе или дальше от горизонта, регулируя степень размытости этой границы.

Вот что получилось у меня. Вроде бы сносно.

Моделируя отражение, я использую стандартный приём, когда карта Reflection составляется из материала типа Raytrace, который маскируется материалом типа Falloff, только здесь обратная ситуация: чем дальше к горизонту, тем лучше водная поверхность отражает окружающий мир (и в первую очередь небо). Составляю «каркас» материала. Для начала завожу в свитке Maps редактора материалов в строчке Reflection текстуру типа Mask. А потом то же самое делаю с компонентой материала: щелкаю по кнопке None компоненты Mask и в раскрывающемся списке карт и материалов выбираю вариант Falloff

В результате раскроется поле редакции материала Faloff. Параметры по умолчанию меняю примерно так же – но не тождественно – как я уже делал для карты прозрачности Opacity несколько раньше. Критерий подбора тот же самый: меняя характер кривой смешивания материала Falloff добиться естественного изменения отражательной способности «моря» по мере удаления поверхности воды к горизонту.

Поднявшись на уровень выше по иерархии вложенных материалов (использую значок перехода ), я вновь открываю в редакторе материалов текстуру типа Mask. Щелкаю по кнопке None компонента Map и выбираю вариант Raytraced. Работа с картой Reflection закончена: в нашем примере я не изменяю ни один параметр, установленный в этой текстуре по умолчанию.

Вот, что получилось, если в списке карт Maps материала «море» оставить активной только карту Reflection.

Материал для моря почти готов. Есть ещё одна характеристика, без которой анимация воды на ближнем плане будет неубедительна. Я имею в виду рефракцию. Эта карта, в сочетании с анимированным Bump’ом, обеспечит легкое ритмичное искажение дна, которое мы обычно наблюдаем, когда смотрим на дно сквозь спокойную, чуть колыхающуюся, прозрачную воду. Я выбрал вариант Thin Wall Refraction с параметрами Thickness 0 и Bump Map Effect 0,5. Сила воздействия этой карты - 25%. Таким образом, материал поверхности воды составлен из карт следующих текстур; их параметры я уже описал.

Пожалуй – пока не забыл – поменяю цвета материала «море»: ведь я моделирую не ласковое Терренское, не знойное Карибское, а прохладное, хоть и летнее, Балтийское море. Поэтому цвета материала я меняю с изумрудного на серый.

Чтобы в соответствующих ракурсах на волнах появились солнечные блики необходимо, натурально, светило. В качестве солнца использую стандартный точечный источник света, размещаю его приблизительно там же, где находится источник бликов на дне. Тени, интенсивность, цвет «солнца» оставляю – по умолчанию (только тени надо будет включить). Ну и исключаю из действия «солнца» всё, кроме «моря». Вот теперь настало время для визуализации. На всякий случай откройте закладку Renderer в окне Render Setup и убедитесь, что в установках визуализатора активен режим Auto-Reflect/Refract and Mirrors. А вот птичку в Antaliasing можно снять. Если понадобится увеличить качество картинки, используйте отключенные по умолчанию режимы Super Sampling: время визуализации возрастёт, зато качество результата вас наверняка приятно удивит.

Благословясь, учиняем рендеринг.

Вроде сносно получилось. Заняло всего семь секунд на компе с 2GHz процессором далеко не «навороченной» сборки минимум трехлетней давности. Обратите внимание на живописные сочетания «зеркальности» с придонными бликами в пограничных (на рубежах отражения и проницаемости) областях изломанной рябью морской поверхности. Игра света, теней и солнечных зайчиков вкупе с разбитым волнами отражением небес создаёт удивительное ощущение достоверности (не смотря на примитивные средства, использованные при моделировании).

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

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

Но это уже за пределами темы… Впрочем, я, кажется, повторяюсь? Значит, самое время закругляться.

Удачи!

Александр Сокорнов (toft)

 
   
 
Ulti Clocks content

Новые поступления

Циклевка полов
Одним из самых лучших видов напольного покрытия можно назвать паркет. Состоящий из экологически чистой древесины, у него есть и масса других достоинств: практичн...
Значение 3D моделирования в нашей жизни
В наш век высоких технологий наука не стоит на месте. Большой популярностью сейчас пользуется 3D моделирование различных объектов. ...
Привет всем посетителям рендера! Я уже рассказывал о себе в прошлом making of
Привет всем посетителям рендера! Я уже рассказывал о себе в прошлом making of. С того времени коренных изменений в моей жизни не было, кроме 3D-Award на CGSociety за эту работу :-)....

Методы

3D моделирование в деятельности человека
Компьютеры, планшетные и настольные, равно как и компьютерные технологии прочно обосновались в нашей повседневной жизни. Очень часто их присутствия не замечают, однако компьютерные технологии широко применяются во в...
3D моделирование как способ визуализации в среде проектирования
В наше время компьютерная графика используется в качестве одной из методик проектирования в самых разных отраслях промышленности и предоставления услуг. В этом плане данный метод является очень удобным для визуализа...
История развития 3D моделирования и компьютерной графики
Компьютерная графика бывает двух типов — интерактивная и неинтерактивная графика. В последнем случае мы просто видим графический объект, например по телевизору или в компьютере, но не можем его изменить и манипулиров...
Введение в компьютерную графику и 3D моделирование
Сегодня существует очень мало аспектов нашей жизни, которые не зависели бы от компьютеров. Практически каждый день мы имеем дело с компьютерами — дома, на работе, когда снимаем деньги в банкомате, во время поездки в мет...
3D моделирование и программы для создания компьютерной графики
Для того чтобы создавать компьютерную графику, используется много разных программ. CAD: позволяет архитекторам и инженерам составлять проекты конструкций. Это акроним для автоматизированного проектирования. CAD предст...
 

Стоит попробовать

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятельности. Черчение, рисование, моделирование и даже проектирование – все это сфера применения компьютерной графики. Голливудские фильмы ...

Документация

3DS Max: краткий обзор
У большинства современных дизайнеров слово «3D» ассоциируется с известной программой 3D Max, которая предназначена преимущественно для создания графических сцен и разработку качественной анимации. Не является удивите...
Top
Яндекс.Метрика
Travel Turne Tranzito
заказ контекстной рекламы