Закрученные частицы - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь заставить частицы кружиться по спирали, но не совсем понимаю, как это сделать. Это то, что я делал до сих пор, и это только перемещает их (хотя и в унисон) вверх и вниз по оси Y.

Как бы я заставил их вращаться / закручиваться вокруг своей позиции и добавлять фазу к алгоритму, чтобы частицы не вращались / спирали в одном и том же месте?

glm::vec3 SwirlParticleBehavior::UpdatePosition(int index, glm::vec3 position, glm::vec3 velocity, float lifeTime, float frameTime)
{
    m_time += frameTime;

    auto theta = m_time * glm::pi<float>();
    auto hdist = 0.1f * (float)index * cos(glm::radians(theta));
    auto vdist = 0.1f * (float)index * sin(glm::radians(theta));
    auto pos = position + m_direction + velocity * frameTime;
    auto offsetX = hdist * sin(glm::radians(theta));
    auto offsetZ = hdist * cos(glm::radians(theta));

    return glm::vec3(
        pos.x + offsetX,
        pos.y + vdist,
        pos.z + offsetZ);
}
...