Автор: Константин Евдокименко a.k.a Qew (qew@email.su)
Дата: 27.10.2005
Версия документа: 0.1
Примечание: вся информация представленная здесь относится к Blender 2.40alpha1
Разработчики Blender'а с каждым релизом всё больше и больше радуют пользователей новыми возможностями, особенно много новшеств введено в последнию на момент написания статьи версию Blender 2.40alpha1. Конечно это только альфа, но думаю, что появление информации о новых возможностях заранее будет полезным.
В данной статье я раскажу о новом свойстве объектов, а именно fluid, которое позволяет создавать удивительные эффекты различных жидкостей и вязких веществ. Я не претендую на полноту описания, а просто хочу рассказать от том, как можно быстро начать работать с этой функцией.Главное понять какой подход используется, а иначе можно долго ковыряться и ни к чему не прийти. Чтобы понять в чём идея, я потратил пару часов, а могло быть гораздо больше, если бы вдруг не вспомнил Maya. Хотя единственное сходство - это только то, что в ней также как и в Blender'е для симуляции используется контейнер, остальное всё по другому. Однако этого мне хватило и придало сил ковыряться дальше. О том, что я наковырял, читайте ниже, примеры простые, т.к. у меня ещё не было времени наковырять что-то серьёзное, но они хорошо демонстрируют то, что можно сделать с помощью fluid.
Коротко можно сказать так. Создаётся контейнер (domain), bouding box которого используется как домен симуляции. То, что внутри участвует в симуляции, остальное нет. В него помящаются объекты (только Mesh, как и для домена), объём и форма которых используютя для симуляции. Если для объекта включена опция fluid - он будет использоваться для создания объёма жидкости, а если включена опция obstacle, то он будет препятствием для жидкости. Про остальные опции сказано ниже.
Стоит заметить, что симуляция сохраняется в объекте, который является доменом, а остальные не изменяются, так что их при необходимости нужно будет спрятать или удалить.Теперь быстренько об интерфейсе. Я не буду описывать каждую кнопку, только те, которые наиболее важны.
|
Для начала нужно перейти на панель Physics Buttons. Жмите F7, а потом на кнопку, которая обведена белым кружком. |
|
На панели Fluid Simulation нужно нажать кнопку Enable для объектов участвующих в симуляции. |
|
Возьмите объект побольше для домена и включите для него опцию
Domain. BAKE - запустить симуляцию с сохранением кеша, нажимать только после того как всё настроено. Resolution - точность симуляции, т.е воксельное (воксел (voxel) - объёмный пиксел) разрешение. Чем больше, тем точнее и медленнее. Preview-Res - разрешение при просморте в 3D окне. Первый выпадающий список отвечает за детализацию в 3D окне, а второй за детализацию при рендеринге. Если симуляция не очень сложная, лучше поставить в обоих случаях final, а то можно вообще ничего не увидеть. Ниже выбирается каталог куда будет сохранятся кеш симуляции и префикс для файлов кеша. |
|
Здесь собраны допольнительные параметры симуляции. Gravity - гравитация. Ниже в выпадающем списке можно выбрать вязкость, по умолчанию water (вода), ещё есть oil и honey (масло и мёд), а также manual для самотоятельной настройки вязкости. Realworld-size - размер реального мира, влияет на масштаб симуляции, по умалчанию тянет на мир жуков. Значение подбирается шаманскими танцами. |
|
Опция Fluid включается для объектов, которые будут символизировать
жидкость. Initial Velocity - вектор начальной скорости объекта. |
|
Obstacle - это объекты, которые будут препятствиями для жидкости. |
|
Объекты Inflow добавляют жидкость к симуляции в направлении укзанном в Inflow Velocity. Попробуйте и поймёте как оно работает. |
|
Вся жидкость которая попадает в область объектов Outflow исчезает, т.е исключается из симуляции. |
Здесь я кратко опишу весь процесс создания симуляции.
![]() |
Создаём такую вот не хитрую сцену. Начальный и конечный кадры (F10) можно оставить как есть (1, 250), но если вы хотите побыстрее, то измените как вам угодно. |
![]() |
Включаем для шарика опцию Fluid и задаём начальную скорость по вектору (0, 0, -1), как показано на картинке. |
![]() |
Для кубика включаем опцию Domain и устанвливаем параметры так, как показано на картинке. Вообще когда весь домен вплотную входит в экран то достаточно разрешения от 60 до 100. Но чем объект жиже, тем большее требуется разрешение для реалистичного результата. При приближении естественно нужно увеличивать разрешение, а при удалении можно и уменьшить |
![]() |
Устанавливаем viscosity в water (вода, по моему мнению, наиболее красива), жмём BAKE, ... и ждём, это довольно ресурсоёмкая операция. |
![]() |
В процессе. Я оставил детализацию для 3D окна как Preview, поэтому жидкость отображается упращённо. Когда расчёты завершатся всё ещё будет можно включить final и в 3D окне будет всё также как и при рендеринге. |
![]() |
А вот и результат. Только не забудьте сделать Set Smooth (F9 и кнопка
Set Smooth на панели Link and Materials) для куба (хотя это уже совсем не
куб), чтобы он отображался гладко. Жмите Alt+A для запуска анимации и наслаждайтесь. |
Несколько простых примеров.
![]() |
Всплеск при падении. Использован YafRay без GI.
Жидкость на самом деле прозрачная, материал Color Class, только вот на
фоне ничего нет. Удобно то, что при симуляции жидкость остаётся мешем и к
ней можно применять любые метериалы любого рендера. Видно что жидкость не
выходит за границы домена, а ударяется об его стенки. Параметры fluid: viscosity (вязкость) - water resolution: 82 шарик fluid имел начальную скорость (-1.0) по оси Z |
![]() |
Расплавленная голова. Очень похоже на
мазут. Здесь рендером был родной Blender с рэйтрэйсингом. Кубик, однако,
немного меньше домена симуляции. Параметры fluid: viscosity (вязкость) - oil resolution: 100 (хотя здесь можно и меньше) обезьянка имела начальную скорость (-1.0) по оси Z |
![]() |
Жидкость стекает по желобу. В качестве рендера опять
Yafray, с теми же параметрами что и в первом примере. Желоб - это объект
Obstacle. Шарик находился чуть выше желоба. При скорости болшей чем (0.2),
жидкость с брызгами разлетается в стороны. Параметры fluid: viscosity (вязкость) - water resolution: 78 шарик fluid имел начальную скорость (-0.1) по оси Z |
Я так и не смог сделать эффект падения объекта в жидкость, т.к. Obstacle работает только как неподвижный объект, а при анимации используется только его начальное положение. Если у кого-нибудь получится сделать что-то подобное, то думаю многие были бы благодарны за такую информацию.
Copyright © 2005, Константин Евдокименко
Разрешается
копировать, изменять и распространять без предварительного уведомления, при
условии сохранения иформации об авторе