Я пытаюсь заставить частицы кружиться по спирали, но не совсем понимаю, как это сделать. Это то, что я делал до сих пор, и это только перемещает их (хотя и в унисон) вверх и вниз по оси 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);
}