Skip to main content
Up and Coming
January 18, 2014

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?

    This topic has been closed for replies.

    18 replies

    Inspiring
    September 21, 2015
    If you use a mesh as the particle, it should look correct from any angle.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Participant
    September 23, 2015
    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.
    RaveTZAuthor
    Up and Coming
    March 8, 2016
    Old topic, but still relevant. Anyone have a method for getting around this?
    Up and Coming
    March 8, 2016
    Apart from not rolling your head no. :(
    Inspiring
    March 8, 2016
    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);
    Inspiring
    March 8, 2016
    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.
    Participant
    June 2, 2016
    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).
    sh0v0r
    Up and Coming
    June 5, 2016
    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.