Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
RaveTZ's avatar
RaveTZ
Protege
12 years ago

HMD Roll and Particles

I'm trying to find a solution to particle effects rolling with the OVR. The issue is that camera facing particles rotate the same direction as the camera so when you tilt your head, the particles rotate to match. This looks terrible. Any elegant solution I'm missing?

18 Replies

Replies have been turned off for this discussion
  • If you use a mesh as the particle, it should look correct from any angle.
  • As cybereality said, mesh particles work better for VR, but sometimes they're not quite what you need.

    I've updated this script for the projects I'm working on to have a single manager object that tracks the camera orientation during update and each particle system that needs it has a script that reads that value to apply to the particles in late update. I've been thinking about some way to add some parallelism, but I haven't spent the time to figure out if the expensive part is iterating the particle list or the get/setParticles.
  • Old topic, but still relevant. Anyone have a method for getting around this?
  • This was suggested in https://feedback.unity3d.com/suggestion ... ientationf. Unity is working on it, but I have a feeling it has slipped to 5.4. In the meantime, you would have to use a solution like bgolus's or do something like the following with a non-Shuriken billboard:
    transform.rotation = Quaternion.LookRotation(transform.position - Camera.main.transform.position, Vector3.up);
  • Actually, it appears to have been fixed in 5.3 and I can see it in 5.3.3p1. See "Billboard Alignment" in the "Renderer" module of the Particle System inspector to control if particles face the camera, the world axes, or locally based on the Transform. You can also use the 3D Rotation settings to set start rotation to any direction, plus animate them to spin in full 3D.
  • If you're using camera facing billboard particles you'll still need something like my script to fix the orientation. The billboard alignment settings in 5.3 are nice for the control it gives you, but world and local are explicitly not camera facing, so you'd still need to do something like set the 3d rotation of the particle to orient it towards the camera, and then you'll need to handle all of the rotation yourself since setting the rotation3D also sets the 2d rotation value (it blows it away with the z component of the rotation3D).
  • I wrote a cloud system for another project that uses quads and a simple lookat script, there was no control over it like a particle system though. I also aligned the vertex normals on the quad to be coplanar to the surface for more even lighting. Made some really nice hand sculpted cloud volumes and a pooled spawner that would randomly spawn them with a direction and control fade in and out. I'm going to reuse some of this for the Mars Dust Storms in Lunar Flight.