Render.ru

Crowd System(Particle Instance) HELP!

ghenci

Активный участник
Рейтинг
7
#1
Привет всем! Делаю симуляцию толпы насекомых бредущих так сказать по пересеченной местности... Все вроде бы нормально, инсекты бегают, смотрят в нужную сторону, ножками перебирают, но... никак не могу заставить инстансы накренятся в зависимости от топологии местности проще говоря не получается связать наклон объекта(инстанса) с нормалью поверхности где в данный конкретный момент находится частица.

в expression нахожу вектор нормали:

float $normalF[] = `pointOnSurface -u (particleShape1.goalU) -v (particleShape1.goalV) -normalizedNormal nurbsPlane1`;

vector $normal = << $normalF[0], $normalF[1], $normalF[2] >>;

так же нахожу направление движения:

vector $direction = particleShape1.velocity;


это понятно... дальше ступор. Как описать расположение частиц в пространстве что б они учитывали не только направление движения но и нормали Nurbs поверхности???

Если кто сталкивался и решил подобную проблему, большая просьба поделиться идеей решения... Ну очень надо!
Заранее спасибо! :)
 

Lakoske

Активный участник
Рейтинг
11
#2
ну если ты заставил частицы двигаться по плоскости, то particleShape->Instancer->AimDirection=velocity
 

ghenci

Активный участник
Рейтинг
7
#3
эт да понятно :) но тогда инстансы будут просто "смотреть" в сторону движения, но крена не будет... Те на пример, муравей бежит по какой то холмистой поверхности вдоль оси X. Если он бежит по центру холмика то все впорядке (он находится четко перпендикулярно поверхности и нормаль в точке 0,1,0) , но если он бежит по его краю или склону который направлен на пример по оси Z то видно что муравей не совсем "обтекает" поверхность. Часть его ног просто проваливаются, а часть висят в воздухе, хотя пивот его и привязан к "земле". Нормаль поверхности в этой точке направлена уже не строго по оси Y (0 , 1 , 0) а имеет уже другую ориентацию (те к примеру 0 , 0.7 , 0.3). Если выставить " particleShape->Instancer->AimDirection=velocity" то как раз такой наклон не учитывается что введет к не совсем корректному расположению инстанса в пространстве (нет нужного крена). Вот в этом и вопрос, как учесть КРОМЕ направления движения еще и и нормаль....

(можно представить лодку плывущую по волнам... он же он же колеблется не только взад вперед (нос лодки вверх, нос - вниз) но и в сторонны:лево - вправо)...
 
Сверху