Particle Systems for HoloLens
When it comes to learning a new technology, always test multiple avenues during development. Do your research on all the different ways you can create or test your product.
When first working with the HoloLens, my task for my project was to create a smoke particle effect. After downloading free smoke materials and loading them up into Unity, I began tweaking the emission rate, color, and shape of the emission into what was needed. Everything looked great in Unity, and despite some clipping issues, my particle system was working as intended. And then I tried it on the HoloLens, first physically wired to my computer, in which the frame rate dropped like a rock. Even halving the emission rate and density wasn’t helping. After a couple more tests, I tried remoting over Wifi to the HoloLens. I hoped that my computer was struggling to handle Unity and the HoloLens at the same time. This time the quality was even worse. It took a Co-worker to tell me that the old version downloaded on the HoloLens was fine, for me to begin to understand the problem.
Tip 1: When working with the HoloLens never test performance remotely. Always load the actual build.
My problem wasn’t that the HoloLens or my computer couldn’t handle the particle system. Remoting the HoloLens tanked performance by itself. When working on any game, test your builds in a capacity where they would be played. In my case, I should have checked to see if it worked as an app on the HoloLens as opposed to streaming it from my computer.
The next (and thankfully lesser) problem I had moving forward was the smoke even in an app build would dip the frame rate when looking at certain objects. Two cabinets of drawers next to one another, in particular, were the culprit.
Tip 2: When working with a particle system, cut down on a number of object vertices in one area.
By having drawers, and handles, and frames, on top of a particle system was enough to tank the frame rate even on the official app build. The less complex geometry you have for the HoloLens to render, the better. Don’t make the same mistakes I did!