Как сделать воду в 3ds Max
Материал воды достаточно легко настраивается. Например, в CoronaMtl для этого понадобится изменить всего несколько основных параметров. Для большей реалистичности можно добавить одну стандартную процедурную карту. И после таких несложных действий можно получить отличный финальный результат. Но в статье будут описан и другой, более сложный метод настройки прозрачного материала воды.
Поверхность воды можно создать из одного полигона. В качестве геометрии для воды можно использовать Plane или Box. Они находятся в меню Create – Geometry – Standard Primitives.
1. Основные настройки материала
Откройте Material Editor (горячая клавиша «M») и создайте материал Materials – Corona – CoronaMtl. В материале нужно задать следующие параметры:
Изменять цвета и снижать Diffuse Color не обязательно. При полной прозрачности влияние цветов мало заметно. По настроенным свойствам материал напоминает стекло. Но отличие от стекла заключается в параметре IOR, величину которого можно найти в Сети.
С помощью указанных настроек получится материал чистой воды. А как отрендерить получившийся материал вы узнаете из статьи «Как сделать рендер в 3ds Max».
2. Bump и Volumetric
Для большей реалистичности можно создать рябь на поверхности воды.
Волны или рябь можно сделать, назначив процедурную карту Noise к параметру Bump. В зависимости от сцены, может понадобиться изменить интенсивность выдавливания в CoronaMtl – Maps – Bump. Также понадобится изменить размер карты Noise – Noise Parameters – Size.
Карта Noise создаст неровности, которые можно увидеть на рендере.
В зависимости от угла обзора вода может иметь разный цвет. Например, при наличии Corona Sky, если опустить камеру ниже, то вода будет выглядеть более синей.
Если вода должна иметь более насыщенный цвет или быть грязнее, то это можно установить с помощью Volumetrics and SSS. Для этого понадобится установить Mode: Volumetric scattering, затем установите нужный цвет Absorption Color. Для включения эффекта нужно увеличить значение Distance.
Distance нужно делать достаточно большим, чтобы материал был не слишком темным. Универсального значения Distance нет. Для каждой сцены и каждого материала жидкости придется подбирать его самостоятельно.
На рендере слева – вода с включенным свойством Volumetrics scattering, слева – материал без указанного свойства.
3. Особенности Refraction Color и Caustics
Refraction Color может придать цвет толще воды, как Absorption Color. Однако Refraction Color не создает объемного цвета. Он будет одинаковым по всему объему воды. Volumetrics and SSS усиливает интенсивность цвета в зависимости от «глубины».
Установка флажка Caustics включает физически корректный расчет каустики для всего, что имеет прозрачность. Настраивать каустику практически нельзя. Более того, изменение параметров типа Volumetrics scattering или Refraction Color могут практически не влиять на материал.
Для улучшения каустики можно установить несколько скрытых настроек Corona Renderer. Для этого нажмите Render Setup – System – System Settings – Enable devel/debug mode. Затем нужно установить Performance – Development/Experimental Stuff – Render engine: Bidir/VCM. Установив этот движок, перейдите в Bidirectional Pathtracing/VCM Render Engine – Use MIS – Mode: [VCM] Vertex connection and merging.
С данными настройками стоит быть очень аккуратным, т.к. они экспериментальные. Более того, улучшив рендер каустики, может сильно измениться результат для материалов без этого свойства. Результат можно увидеть ниже.
Освойте профессию визуализатора
Научитесь создавать крутые рендеры, панорамы 360, виртуальные туры и анимационные ролики.
Анимация жидкости в 3ds Max
Я новичок в океане 3ds Max, потихоньку учусь в меру своих возможностей. И посетило меня вдохновение, захотелось сделать для души и самообучения ради, небольшой анимационный ролик в 3д. Как реализовать большую часть задуманного я имею какое-никакое, но представление, а насчёт одного момента у меня большие вопросы. Мне бы хотелось создать объекты букв, по которым как-бы стекает густая жидкость (без источника таковой), ну или визуальную аналогию можно построить с плавящейся парафиновой свечой.
Насколько понимаю, анимацию подобного рода надо моделировать в Patricle Flow, но, к сожалению, пока что не было опыта работы с частицами и не знаю, с какого конца взяться.
Если кто-то смог бы помочь, поделившись правильным алгоритмом разработки данного объекта с дальнейшим импортом в 3дмаксовскую сцену, ну или если есть у кого-то полезные обучающие источники, буду безмерно благодарна!
Анимация жидкости
Удачной тебе охоты, о Великий Алл! Вот и пересеклись снова наши пути дорожки. Сегодня я намерен рассказать о том, как можно анимировать жидкость, налитую в некую посудину. Что и говорить, скрипты будут, но немного и не больно :), так что пугаться не надо. Ну все, поехали. Давайте для начала просто построим произвольный цилиндр и представим, что это жидкость в некоторой емкости. Емкость в настоящий момент нам глубоко неинтересна, потому будем работать только с жидкостью. Наша задача — на этом подопытном цилиндре найти и отработать метод изображения анимации жидкости. Рассматривать мы будем только случай анимации жидкости в емкости с параллельными стенками. Кто знает, почему — молодец, шагом марш за пирожками с верхней полки, ну а кто не догадался, — узнает в конце урока. Присвойте цилиндру модификатор Taper, указав в качестве primary axis X, а в качестве Effect — Z. Давайте разберемся, что нам это дает. В принципе, этого уже достаточно для анимации жидкости в стакане, так как данный модификатор позволяет создать односторонний скос (при наклоне стакана установить поверхность горизонтально) и имитировать запаздывание жидкости вследствие инерции. Проверить это утверждение просто — наклоните цилиндр, к примеру, на 30 градусов вдоль оси Y и постепенно увеличивайте значение amount в параметрах модификатора. Получили жидкость в наклоненном стакане. У меня это вышло при значении 0.5, но здесь все зависит от соотношения длины и ширины цилиндра, чем «толще» цилиндр, тем большее значение придется ввести. Давайте представим, что этот стакан еще и двигается вдоль оси Х в отрицательном направлении. Жидкость сначала запаздывает, поднимаясь по стенке стакана, затем догоняет, потом поднимается на другую стенку, и этот процесс повторяется, постепенно затухая. Попробуйте задать несколько произвольных значений кривизны curve и убедитесь, что одного модификатора Taper вполне достаточно для задания такого движения. Ну а что делать, если наклон не вдоль оси Y, да и движение не вдоль оси X? Можно, конечно, сделать два модификатора Taper — по одному на каждую ось и затем управлять ими, но мы пойдем другим путем. Мы вспомним, что модификатор Taper имеет gizmo, которое так же можно анимировать. Воспользуемся поворотом габаритного контейнера относительно оси Z локальной системы координат, — это даст нам возможность имитировать наклон/движение стакана в любом направлении. Самостоятельно убедитесь в правильности последнего заявления. Анимировать все это безобразие вручную — нелегкий труд, следовательно, заставим компьютер делать это за нас. Для начала вспомним, что появился такой модификатор, как Flex, позволяющий задавать «запаздывание» геометрии. Параметры его довольно просты, потому описывать не буду. Кому интересно, создайте кубик, повесьте на него модификатор, задайте кубику какое-либо движение и просмотрите анимацию. Пять минут на разбор полета методом оценки изменений параметров модификатора и поехали дальше. Легко понять, что просто применить модификатор Flex к нашей жидкости мы не можем — нам нужно, чтобы жидкость оставалась в посуде. Однако мы можем создать систему, управляющую параметрами модификатора Taper используя модификатор Flex. Удалите цилиндр, поскольку нам он больше не понадобится. Постройте куб со стороной, равной единице, и назовите его Inerbox. Примените к нему модификатор Flex. Настройте видовые экраны, выполнив Zoom Extents All. Что нам это дает? Так как наш бокс под воздействием модификатора flex будет изменять геометрию, то и расстояния между точками противолежащих граней будут изменяться, причем в соответствии с настройками модификатора flex, проще говоря, — по законам инерции, что нам и нужно. Мы не можем напрямую использовать значения смещений между этими точками, но, привязав с помощью контроллера Attachment вспомогательный объект к точке на грани, можем получить значение положения опорной точки этого объекта. Простое выражение, определяющее разность положений между опорными точками бокса и вспомогательного объекта даст нам параметр, управляющий анимацией жидкости. Постройте объект Dummy произвольного размера, назовите его Inerdum. Из этих двух объектов мы и создадим управляющую систему. Для начала привяжем объект Inerdum к боксу, используя контроллер Attachment, — этот контроллер позволяет привязать положение объекта к конкретной точке на грани другого объекта.
Выделив объект Inerdum, перейдите на панель Motion, выберите в списке Assign Controller контроллер положения и нажмите на кнопку изменения контроллера. В раскрывшемся окне выберите контроллер Attachment и нажмите Ok. Раскроется свиток параметров контроллера Attachment. Нажмите кнопку выбора объекта привязки Pick Object и укажите мышью на Inerbox. Имя бока появится над кнопкой выбора объекта. Активируйте режим установки позиции на грани Set Position и снова укажите на Inerbox. В параметрах позиции появятся значения положения Inerdum относительно той грани, на которую вы указали мышью. Исправьте значения: face=2, A=0.5, B=0. Мы выставили вспомогательный объект по центру верхней стороны бокса, обеспечив, тем самым, максимальную амплитуду колебаний опорных точек объектов относительно друг друга. Отключите режим Set Position. Обратите внимание,- значениями положения для контроллера Attachment являются величины A и B, определяющие размещение объекта на грани. Нас же интересует положение опорной точки объекта в пространстве, — для этого измените контроллер позиции на List, оставив в списке Attachment. Выберите новый появившийся трек Available и присвойте ему контроллер Безье. Дважды щелкните по нему, чтобы сделать активным. Остался последний штрих — если просмотреть значение положения вспомогательного объекта, выбрав инструмент Select and Move, и щелкнув по нему правой кнопкой мыши при выделенном объекте Inerdum, то можно увидеть, что это значение по оси Z равно единице. Запомним этот момент, он нам пригодится в дальнейшем. Сохраните сцену. Данная заготовка может пригодиться во многих анимациях, имитирующих инерцию, так что можете не уничтожать ее, закончив урок. Все, с приготовлениями покончено, давайте делать стакан и воду. Спрячьте на время объекты Inerbox и Inerdum, выполните Zoom Extents All для пустых экранов. Поскольку наша задача заключается в том, чтобы разобраться с анимацией, модели объектов мы будем делать чисто схематически. На экране Front постройте две линии, представляющие собой сечения стакана и фужера.
3d max анимация жидкости
Тема может и старая, но способ анимации необычный, тут: http://3dsmaxdeshnik.ucoz.ru/index/animacija_zhidkosti/0-417
Я ни как не пойму, какой параметр отвечает за длительнось анимации бултыхания жидкости, flex увеличивал, но анимация всё-равно заканчивается на 100-ом кадре, а после 100 кадра при движении стакана, жидкость вообще даже не бултыхается. Может кто догадается. Благодарю.
Вот:сцена
30/11/2014, 14:31
Почитал урок. Какой-то он мутный. Ничего не понял.)
Вот вариант попроще. Вместо Flex используется контроллер Spring. Делается так. К стакану линкуется два даммика. Затем на первый даммик назначается контроллер позиции Spring, а на второй даммик назначается контроллер поворота LockAt, который смотрит на первый даммик. В результате получается так, что при анимации стакана первый даммик запаздывает, а второй даммик поворачивается в сторону первого даммика. Теперь третий даммик и вешаем скрипт-контроллер в любое удобное место, например, на Z Scale, и пишем скрипт, который вычисляет расстояние пежду первым и вторым даммиками. Теперь делаем воду из цилиндра. Вешаем на воду модификатор Taper. И через Wire Parameters связываем Taper Amount и Taper Curve с Z Scale третьего даммика. Получается вода, которая бултыхается всегда. Даже за пределами сотого кадра. Вроде бы похоже на результат урока.))