воскресенье, 25 августа 2013 г.

PF Toolbox 3 (Data Operator) - Particles Backface Cull

Задача - сидят партиклы на объекте. Как удалить партиклы которые сидят на задней стороне объекта (задана камера). Решение

Пару слов о самом принципе.
Берем два вектора - нормаль поверхности в том месте где лежит партикл и вектор из партикла на камеру (Ну или любой другой объект) и вычисляем скалярное произведение векторов. Если вектора нормализированны (длина вектора = 1), то скалярное произведение (оно же dot product) равно косинусу угла между векторами. Т.к. если вектора полностью совпадают (направлены в одну сторону) скалярное произведение =1, если вектора перпендикулярны то 0, если вектора направленны в разные стороны то -1. И потом проверяем (нода Condition - условие) по порогу.

Скалярное произведение векторов обозначается точкой, отсюда и название - dot product
Направление из точки (P) на камеру обычно везде обозначается I (Incident vector - вектор падения, т.е вектор падающий из глаза наблюдателя на точку). Собственно в моем нетворке я вектор I получил вычитанием позиций точки (партикла) и камеры.

Комментариев нет:

Отправить комментарий