Сообщений
13, на страницах:
1добавить сообщениеСимуляция жидкости (Fluid Simulation)
Оригинал http://wiki.blender.org/index.php/Doc:Manual/Physics/Fluids Перевод Sever
Сразу хочу предупредить, что то, что вы увидете на примерах ниже, вам не удастся повторить в таком же качестве, далее будет объяснено почему. Опять же, перевод грубоват.Object (F7) → Physics Buttons → FluidНекоторые объекты могут быть отмечены, для участия симуляции жидкости, как жидкость или как препятствие. Ограничительный прямоугольник объекта будет использоваться, как форма коробки в которой будет происходить симуляция жидкости (так называемая область симуляции). Глобальные параметры симуляции (типа вязкости и тяжести) могут быть установлены для этой области объекта.
Используя кнопку запекания симуляция запекается (сохраняется) на жесткий диск.
Пример разрушенной платиныПроцесс создания жидкости1. Смоделировать сцену (Объекты, материалы, свет, камера).
2. Определить часть сцены, где будет протекать жидкость (область).
3. Определить функции различных объектов, поскольку они касаются жидкости (входное. отверстие, выход, преграда и т. д.).
4. Создать жидкий источник, и определить его материал, вязкость, и установить скорость.
5. Запечь предварительную симуляцию.
6. Пересмотреть по мере необходимости, сохраняя изменения.
7. Запечь заключительную симуляцию.
http://www.pkblender.it — отличный сайт с примерами жидкой симуляции.
http://blender3d.org.ua — здесь можно найти уроки по процессу создания симуляции жидкости.
На самом деле все очень просто. Главное задать каждому объекту правильное значение. Создаем куб, определяем его как Область; Внутрь куба вставляем сферу или любой другой объект, определяем ее как Жидкость; Дополнительно вставляем так же внутрь куба необходимый объект и определяем его как Препятствие, Втекание, Вытекание, Контроль. Запекаем все это.
Опции

а)Основные (и часто необходимые) опции; б)Менее необходимые опции
Domane (Область)/Fluid (Жидкость)/Obstacle (Препятствие)/Inflou (Втекание)/ Outflou (Вытекание)Выбор одной из этих кнопок определяет, как активный объект используется в течении симуляции. У каждой кнопки свои настройки.
Domane (Область)
Ограничивающий прямоугольник объекта служит границей моделирования. Все жидкие объекты должны находиться в области. Жидкие объекты вне области не будут выпекаться. Ни одна из капель не может перемещаться вне области; это, как будто жидкость удерживается невидимыми силами области в 3D-пространстве. В сцене может быть только одна единственная область симуляции жидкости. Длины сторон ограничивающего прямоугольника могут быть отличными.
Вид областиФорма объекта не имеет значения, потому, что это всегда будет фиксированная кубическая область, поэтому обычно не имеет смысла использовать что-то другое, чем коробка. Если необходимы препятствия или другие границы чем коробка, чтобы они сталкивались с потоком жидкости, надо вставить дополнительные объекты-препятствия в границы области.
Std, Ad, Bn, ParНажатие одной из этих кнопок отобразит дополнительные параметры (Standart (Стандартные), Advanced (Продвинутые), Boundary (Границы), Particle (Частицы)).
Std
Resolution (Разрешение по X,Y,Z осям)Степень детализации, с которой будет выполняться фактическая симуляция жидкости. Это один из самых важных регуляторов жидкости, поскольку он определяет качество детализации жидкости. Затрагивает память компьютера.

а) Кружка 10см, резолюция 70; б) Кружка 10см, резолюция 200
Это так же и самый нехороший параметр из-за которого у вас и не получится сделать очень качественной симуляции жидкости. А все из-за затрагиваемой памяти компьютера. При увеличении резолюции, превышающей память компьютера, Blender просто напросто зависнет. Максимальное значение резолюции 1024, что потребует 90Гб оперативной памяти. У XP максимальное количество памяти 3Гб — это приблизительно равно резолюции 220. У Vista 64bit максимальное количество памяти 16Гб — это приблизительно 550 резолюции. То есть получается, что даже имея на сегодняшний день самый мощный компьютер, у вас даже на половину не получится симулировать качество жидкости, так как выше 16Гб на одном компьютере вряд ли «прыгнешь». Для отличной симуляции жидкости вам потребуется несколько компьютеров или лучше целая станция. И не забывайте о невероятно длительном времени просчета симуляции и о других параметрах настройки, при повышении которых, также требуется память, которой в большинстве случаев, как я предполагаю не так уж и много.Необходимо убедиться, что установленная резолюция соответствует размеру реального мира области. Если область будет не кубической, то резолюция будет взята для самой длинной стороны. Резолюции по другим сторонам будут уменьшены, согласно их длинам (не кубическая область, будет нуждаться в меньшем количестве памяти, чем кубическая, хотя буте являться тем же самым).
Preview-Res (Предварительная резолюция)
Это резолюция, в которой будет отображена поверхность меша при предварительном создании (просмотре в 3D-окне). Это не влияет на законченную симуляцию.
Start Time (Начальное время)
Время начала симуляции в секундах. Область деформации и поток жидкости до начала не сохранены.
End Time (Завршающее время)
ремя окончания симуляции в секундах. Если частота кадров в секунду — 25 и время окончания — 4 сек., то надо (если начальное время — 0) закончить симуляция в 100 кадра. Запекание всегда признает конечный кадр который устанавливают во вкладке Anim в кнопках рендера. Начальное и завершающее время не имеют никакого отношения к тому, сколько кадров запеклось, но вместо этого базируются на физической силе и вязкости жидкости. Если установить время начала — 3, а время конца — 4, то симулируется 1 сек. жидкого движения. Эта одна секунда движения жидкости будет распространена как-бы в ширину многих кадров, установленных во вкладке Anim, вплоть до последнего кадра. Симуляция жидкости игнорирует Sta: (начальный кадр) во вкладке Anim и всегда будет запекаться от первого кадра.
Старт симуляции не из первого кадраНадо ключевой объект жидкости в нашей области дезактивировать (отключить) до кадра в котором должна начаться симуляция (Смотреть пункт «Анимация движения жидкостных состояний»)
Если есть установленные параметры 250 кадров в 25 fps (кадров в сек.)Жидкость будет выглядеть так, как будто она уже течет в течении 3 сек. с начала симуляции, но будет медленно двигаться, начиная с 1 секунды симуляция жидкости проигрывается в течении 10 сек. видео. Если изменить время окончания на 13, чтобы соответствовать 250 кадрам в 25 fps, то симуляция будет в реальном времени, так как установится 10 сек. движения жидкости в симуляции более чем 10 сек. анимации. Наличие этих средств управления позволяют «контролировать скорость» симуляции.
Disp. -Qual (Качество отображения)
GuidDisplayMode – как будет отображаться (как качественно) запекание симуляции в 3D-окне (первое выпадающее меню).
RenderDisplayMode – как будет отображаться (как качественно) запекание симуляции в окне рендера (второе выпадающее меню).
Для этих двух выпадающи меню, имеются 3 параметра:
• Geometry - Оригинальная геометрия (следует выставлять в первом выпадающем меню, когда необходимо изменить Область уже после запекания).
• Preview – Предпросмотр (следует выставлять в первом выпадающем меню, чтобы запекание просчитывалось быстрее (немного хуже качество, чем при финальном рендере) и при этом симуляция отражалась в 3D-окне)
• Final — Финал (следует выставлять во втором выпадающем меню, для финального редера сцены, для максимального качества симуляции)
Path (Путь)
Место хранения (на жестком диске) запеченной области.
После запекания, в месте хранения запеченной области (кэша) появится 3 файла. Два bobj.gz (один по заключительному качеству, другой по качеству предварительного просмотра), плюс третий — bvel.gz (по заключительному качеству). При запекании, если надо сохранить уже запеченную область, надо в Path поменять название, иначе новое запекание перепишет старое.
Можно использовать запеченные файлы с другими объектами, просто указывая к ним путь в Path.
Выбор запеченной областиПосле того, как Область была запечена, это изменит жидкий меш. Чтобы повторно выбрать область так, чтобы запечь ее снова после того, как внесли в нее изменения, надо выбрать нужный кадр и выбрать ПКМ жидкий меш. Тогда можно снова нажать Bake, чтобы повторно вычислить поток жидкости в выбранной области.
Ad
Gravity X,Y,ZСила направленности жидкости (в какую сторону течь) по X,Y,Z плоскостям. Z должно быть отрицательным, что бы
жидкость падала в низ. X,Y,Z не должны равняться нулю, иначе жидкость не будет течь.
Viscosity (Вязкость)
Плотность жидкости. Можно выбрать предустановленные значения (Honey (Мед), Oil (Масло), Water (Вода)). Либо задать настройки вручную (Manual). Нормальная вязкость в реальном мире — динамическая вязкость; Blender использует кинематическую вязкость, (которая является динамической вязкостью, разделенной на плотность, единица [m^2/s])
Ручные настройки определяются числом плавающей точки и образцом. Они, плавающая точка, и область входа образца, упрощают вход в очень маленькое и большое количество. Вязкость воды при комнатной температуре 1.002cP; таким образом, вход был бы 1.002 времени 10 к минус 6 (10^-6). Горячее стекло и плавящееся железо — жидкости, но очень плотные; мы должны ввести что-то типа 1*10^0 как вязкость (указанное значение 1*10^6 cP). Симулятор не является подходящим для не жидкостей, материалов, которые «не текут». Настройки вязкости с очень большими значениями не будут приводить к твердому поведению тела, но могли бы привести к нестабильности.
Изменение вязкостиЗначения по умолчанию в Blender, для выбранных типов жидкости считаются типичными и «выглядят правильно». Однако, фактическая вязкость небольшого количества жидкостей, как шоколадный сироп и мед (содержащих сахар) зависят от температуры и концентрации. Вязкость масла измеряется рейтингом SAE. Стекло комнатной температуры в основе твердое, но стекло в 1500 градусов подобно воде.
| Таблица преобразований единиц вязкости Blener |
| Жидкость |
Динамическая вязкость |
Кинематическая вязкость (Blender) |
| Вода (20С) |
1.002 (1*10^0) |
1*10^-6 (.000001) |
| Масло SAE 50 |
500 (5*10^2) |
5*10^-5 (.00005) |
| Мед (20С) |
10,000 (1*10^4) |
2*10^-3 (.002) |
| Шоколадный сироп |
30,000 (3*10^4) |
3*10^-3 |
| Кетчуп |
100,000 (1*10^5) |
<1*10^-1/td>
|
| Расплавленное стекло |
1*10^15 |
1*10^0 |
Real -World sizeРазмер области объекта в реальном мире в метрах. Если необходимо создать кружку кофе, она могла бы быть 10см (0,1м), в то время как плавательный бассейн мог бы быть 10м. Размер здесь устанавливается для самой длинной стороны ограничивающего прямоугольника области.
GridlevelСколько адаптивных (грубых) уровней сетки, которые используются в течении симуляции. Значение по умолчанию 1 сделает автоматический выбор.
Compressibility (Сжимаемость)
Если есть проблемы с большими, постоянными Областями жидкости с высокой разрешающей способностью, этот параметр поможет уменьшить это число, но увеличит время вычисления.
Bn
Настройка границ Области.
Boundary Type — выбор типа настроек Области:
• Noslip – Прилипание жидкости к границам области.
• Part — Смешивание Noslip и Free (только к не движущимся объектам).
• Free – Свободное прилипание.
Surface SubdivПозволяет делать поверхности мешей в высоком разрешении непосредственно в течении симуляции (альтернатива модификатору Sub Surf). Значение 1 — нет подразделения, каждое последующее увеличение приводит к одному дальнейшему подразделению каждого объемного элемента жидкости. Большие значения сглаживания, могут привести к длительному времени вычисления из-за генерации подразделения меша.
Surface SmoothinКоличество сглаживания, которое будет применено к поверхности жидкости. 1.0 — стандартно, 0 — выключено, а большие значения увеличивают количество сглаживания.
Generate Speed VЕсли опция активна, то векторы скорости не будут экспортироваться. А по умолчанию векторы скорости сгенерированны и записаны на диске. Они могут использоваться, что бы вычислить изображение стандартного размытия движения с композитными узлами (Compositing Nodes).
Par
Tracer ParticlesЧисло сгенерированных трассирующих частиц, которые будут помещены в жидкость в начале симуляции.
Generate ParticlesУправляет количеством созданных жидких частиц (0 — выключено, 1 — нормально, >1 — больше). Что бы использовать эту опцию Surface Subdiv должно иметь значение минимум равное 2.

Пример эффекта частиц. Слева — без частиц; справа — с применением частиц и активным Subdivision.
Fluid (Жидкость)
Вся область объекта, определенная как Жидкость, находящаяся внутри ограничительного прямоугольника (Области), будет использоваться как жидкость в симуляции. Если размещается больше, чем один объект жидкости внутри области, они, в настоящее время, не должны пересекаться. Так же нормали поверхности должны находиться снаружи.
Volume Init Type:• Volume init (Объем) — Объем Init будет определять внутреннюю часть объекта как жидкость. Это работает только для закрытых объектов.
• Shell init (Оболочка) — Будет определять только тонкий слой для всех граней меша как жидкость. Работает и для открытых мешей.
• Both init (Оба) — Комбинирует Volume и Shell. Меш должен быть закрытым.

Пример различного объема init типов: Volume, Shell, Both. Заметьте, что Shell обычно немного больше, чем внутренний объем.
Initial velocity (Начальная скорость)
Скорость жидкости (по осям) в начале симуляции. Измерчяется в м/сек.
Obstacle (Препятствие)
Объект, определенный как Препятствие, будет использоваться как препятствие в симуляции. Более одного объекта препятствия в сцене, не должны пересекаться друг с другом. Для препятствий используется существующая меш- геометрия (уже созданный меш). Для объектов с Volume init: Volume – нормали препятствия должны быть вычислены правильно (наружу), особенно при использовании скрученного препятствия. Применение Aply к модификатору Sub Surf (если он используется для Препятствия), могло бы помочь, если вдруг меш не анимируется.
Volume Init TypeТо же самое, что и во Fluid
Boundary Type (Тип ограничения)
Определение липкости поверхности Препятствия, названной «Поверхностным прилипанием». Поверхностное прилипание в реальном мире зависит от жидкости, которая падает на поверхность и зернистости поверхности или трения/слипания/впитывания поверхности.
• Noslip – заставляет жидкость прилипать к препятствию (нулевая скорость). Опция для движущихся объектов.
• Free (-slip) – позволяет движение по препятствию (только нулевая нормальная скорость)
• Part (-slip) – смешивает Noslip и Free. 0 — Noslip, 1 – Free. Если меш Препятствие будет перемещаться, Part будет автоматически рассматриваться как Noslip.
Animated MeshАктивировать эту кнопку, если меш анимируется (например искажен арматурой, ключами формы (Shape Keys), решоткой). Активация может значительно замедлить процесс, и не требуется, если меш анимируется с перемещением или вращением IPO.
Part Slip Amount (Количество прилипших частиц)
Количество смешивания между Noslip и Free, активно при Part.
Анимированные объекты и NoslipЕсли Препятствие движется, то Blender автоматически определяет его как Noslip. Если необходимо, чтобы жидкость разлеталась прочь, от перемещающегося объекта, надо поместить прозрачную плоскость в жидкость и жидкость оттолкнется от движущегося объекта.
Impact Factor (Фактор воздействия)
Количество корректирования жидкого объема для прибавления/потери от столкновения с перемещающимся объектом. Если объект не перемещается, этот параметр не имеет никакой силы. Однако, если жидкость сталкивается с перемещающимся объектом, отрицательное значение убирает объем прочь от Области, а положительное значение добавляет объем к Области (Увеличении или уменьшение объема жидкости).

Пример различных типов ограничений, для капель, сползающих по стене. Слева на право: Noslip 0.3, Part-slip 0.7 и Free-slip.
Inflow (Приток)
Объект, определенный как Приток, поместит жидкость в симуляцию (жидкость будет находиться в объекте Приток и может так же вытекать из него).
Volume initТоже самое, что и во Fluid.
Inflow velocityСкорость жидкости по осям X,Y,Z, которая создана внутри объекта определенного как Приток (при X,Y,Z=0 — жидкость не течет).
Local CoordsИспользовать локальные координаты для Притока. Это полезно, если объект притока перемещается или вращается, поскольку поток Притока должен следовать/копировать это движение.
Animated MeshТо же, что и в Obstacle
Outflow (Отток)
Любая жидкость, которая будет попадать в область объекта, определенного как Отток, будет удалена из этой области (это может быть полезно в комбинации с притоком, препятствовать целой области заполниться).
Volume Init и Animated MeshТоже самое, что и у предыдущих параметров.
Particle (Частицы)
Используются для отображения частиц, созданных в течении симуляции. Пока поддерживаются частицы, плавающие наряду с жидкостью.
Particle Type (Тип частиц):
Drops (Капли)
Поверхностные всплески жидкости приводят к каплям, разбрасываемым по всюду, подобно свежей воде с низким Поверхностным натяжением (физика).
Floats (На поверхности)
Поверхностное натяжение жидкости выше, жидкость более тяжолая, как холодная морская вода и суп. Всплески более массивны и падают на поверхность быстрее, чем Капли.
Tracer (Трассировка)
Капли следуют за поверхностью воды, существуя как туман, нависший выше предыдущих жидких уровней. Используйте это, чтобы видеть, где был до этого жидкий уровень (получается, как хвост каметы).
Size Influence (Влияние размера)
Частицы могут иметь различные размеры (Параметр делает частицы разными по размеру). Если значение 0 — все частицы одинакового размера.
Alpha Influence (Альфа влияние)
Количество частиц, измененных альфа. 0 — альфа одинаково; 1 — крупные частицы получают малую альфа. Одинокие маленькие частицы получают большие значения альфа.
Path (Путь)
Путь запекания. Обычно, должно иметь тоже самое значение, что и Область жидкого ограничения (можно через копировать/вставить)
Создание частиц1. После создания объектов Области и Жидкости, копируем объект жидкости и оставляем его на том же месте. Определяем его как Частицы.
2. Выбираем тип частиц. 3. Устанавливаем влияния размера и альфа.
4. Переходим к объекту Области, в настройки Par и устанавливаем число сгенерированых частиц (не забываем про Surface Subdiv)
5. ЗапекаемControl (Контроль)
Вода моделируется, используя метод Решетки — Больцмана. Им управляют, используя частицы, которые определяют местные области силы и сгенерированны автоматически или от физического моделирования, или последовательности целевых форм. В то же самое время, в максимально возможной степени сохранена естественность жидкого движения (то есть из жидкости можно создать какой либо предмет).
Time (Время)
Определяем начало и конец, в течении какого времени, контроль над жидким объектом является активным.
Attraction force (Сила притяжения)
Сила притяжения определяет силу, которую получает эмиттер у жидкого контролируемого объекта. Положительная сила приводит к притяжению жидкости к объекту, отрицательная сила — к отклонению.
Velocity force (Скорость силы)
Если объект жидкого контроля перемещается, получается в результате перемещения скорость может так же ввести силу жидкости.
Quality (Качество)
Высокое качество, приводит к большему контролю частиц, для объекта жидкого контроля
Revers (Перемотка)
Контроль передвижения частиц становится измененным.

Пример анимации падающей капли, отрендереной в Yafray

“Волшебный Контроль жидкости”
Анимация изменений жидкостных состояний
Новый тип кривой IPO, FluidSim, доступен для жидких объектов Области. В отличае от большинства других значений анимации в Blender, FluidSim IPO не может быть ключевым кадром, при использовании меню вызываемого клавишей I; Надо вручную устанавливать значения в окне IPO. Чтобы установить ключевой кадр, надо выбрать состояние, которое надо анимировать и в окне IPO нажать Ctrl+ЛКМ, что бы установить ключевой кадр в желаемое местоположение в окне IPO.
Следующие вещи делают симуляцию дольше вычисляемой
• Большие Области
• Длинная продолжительность
• Низкая вязкость
• Высокие скорости
Совет
Не стоит пробовать сгенерировать сложную сцену целиком. Можно отдельно объединить несколько анимаций, наложив друг на друга, скажем, один поток AVI на другой поток в AVI, используя альфа и третий AVI — например, туман или дым.
Сообщений
13, на страницах:
1добавить сообщение