Render.ru

Динамическая вязкость жидкости.

Shiva

Мастер
Рейтинг
197
#1
Нужно динамически менять вязкость жидкости.
Для этого подключаю vopsop регулирующую вязкость для нужных частиц в жидкости к ноде солвера жидкости.
Все работает но не понимаю как сделать историкозависимое изменение.
Т.е. так чтобы изменения вносились относительно предидущего состояния. Ведь у позиции и других параметров есть история - Pos previous.
Подскажите Как?
Пока единственная мысль - как-то передавать частицы из жидкости в партиклы и там пытатся изменять параметры вязкости для каждой отдеьной частицы а потом как то переносить эти параметры на жидкость. =\
 

sanchoflat

Активный участник
Рейтинг
11
#2
а если включить viscosity у партиклов и потом либо как говоришь - voppop или попробуй viscosity by attribute, к примеру меняй вязкость по цвету, где белый - вязкость 100%, где черный - 0%
 

Shiva

Мастер
Рейтинг
197
#3
зачем по цвету? почему не создать кастомный атрибут? Тем более сам viscosity тоже можно менять.
Собственно вопрос не в этом был. Ответ нашел уже. Оказывается vopsop подключенный к FlipSolver уже все умеет. Просто create attributre надо писать експрешен с сылкой на этот же атрибут т.е. $VISCOSITY + 100 например. и так каждый TimeIcrement будет меняться и вязкость.
Только вот считается это все на реальной задаче безумно долго. (((
 

виталий антоновас

Модератор форума
Команда форума
Рейтинг
329
#4
to sanchoflat
А можно в двух словах раскрыть этот вопрос? Я буквально вот на днях рыпнулся в эту вкладку увидел by attribute а вот как прикрутить аттрибут из SOP`a в DOP что-то с наскоку не придумал((
Мож эта тема была бы многим интересна?
 

sanchoflat

Активный участник
Рейтинг
11
#5
смотри, я пока конечно особо не заморачивался, но по идеи - ты создаешь атрибут , к примеру для плейна, изменяешь его ( paint'ом) чтобы увидеть результат и уже в самих флюидах вписываешь этот атрибут. По крайней мере с pop'ами работало.
 

виталий антоновас

Модератор форума
Команда форума
Рейтинг
329
#6
хм,да вот как раз-таки вот и делал именно так((( пишет что "...attribute is missing..." хотя вязкость всё работает.Я тут нарыл инфу,что в ДОП"е можно юзать експрешн для выдергивания аттрибутов из СОПа тоже point(),но синтаксис там немного другой point( $OBJID, 0, "Cd", 0)
То есть,я так понимаю,что в переменную $OBJID надо как то "запхать" объект,с которого читается этот аттрибут.Мож как-то проще можно?
 

виталий антоновас

Модератор форума
Команда форума
Рейтинг
329
#7
Продолжу свои изыскания. Меня немного понесло не в ту степь.Всё проще.В DOP создаём SOP Solver,втыкаем его во FLIP Solver,заходим туда там создаём аттрибут,с названием viscosity, во FLIP Solver ставим галочку by attribute, там уже по умолчаниию написано "viscosity" и наш солвер уже начинает для вязкости использовать аттрибут из SOP Solver, а если в значении аттрибута вбить,например $T то жидкость будет твердеть со временем.
 

sanchoflat

Активный участник
Рейтинг
11
#9
такой вопрос, не могу никак разобраться. если я создаю эммитер с помощью геометрии, а не через поинты и в сопсолвере подклюнном к флипсолверу пытаюсь добавить к флиам атрибут, то солвер его не сохраняет, если я использую вдальнейшем атрибт трансфер, единственный вариант - создать атрибут креэйт на референсной геометрии, прописать значения по дефолту и трансфернуть на мою геометрию, но таким образом не работает парамер blend width чтобы сгладить края. и не очень понятно как к примеру создать и передать, ЧТОБЫ еще и сохранился атрибут цвета.
Если же я превращаю геометрию в партиклы и потом импортирую во флипы, то проблем нету, я в сопе создаю атрибут и он передается и все отлично работает.
Почему если к партиклам в соп солвере прикрутить новый атрибут и начать его трансферить - он не сохрняется?
 
Сверху