The Mixed Reality Forums here are no longer being used or maintained.
There are a few other places we would like to direct you to for support, both from Microsoft and from the community.
The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.
For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality.
If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers, or in our Microsoft Tech Communities forums at https://techcommunity.microsoft.com/t5/mixed-reality/ct-p/MicrosoftMixedReality.
And always feel free to hit us up on Twitter @MxdRealityDev.
maintain 60fps
any advice on how to maintain 60fps throughout use of app? i'm currently have 1:1 scale model in app. frame drops to >45, <60fps when user moving around causing model to jitter. using holotookit shader made it a little better but still jitters. currently only 1 directional light and all shadows are off in scene.
Best Answer
-
You're missing the frame deadline. That's what wait for FPS usually means. I found even without using unity (C++ engine) that 30 draw calls plus spatial room enables can drop you below 30 FPS if you aren't careful. As others said, check for complexity of your shaders. Ideally unity should be sorting by materials and minimizing state changes. If you're able to GPU profile using visual studio + unity, try that. The profiler helped me identify the major contributors to CPU/GPU time spent each frame. That helped me when I was struggling with frame rate issues.
5
Answers
@felsiska,
Are you using the stabilization plane? https://developer.microsoft.com/en-us/windows/holographic/case_study_-_using_the_stabilization_plane_to_reduce_holographic_turbulence
For frame drop, try a simpler model, just to test, and see if that makes a difference. Your model may be too complex.
James Ashley
VS 2017 v5.3.3, Unity 2017.3.0f3, MRTK 2017.1.2, W10 17063
Microsoft MVP, Freelance HoloLens/MR Developer
www.imaginativeuniversal.com
If it is unity take a close look at your draw calls, the profiler, and the number of verts/polys you are trying to display.
Also don't use Unity's standard shader. Use Holotoolkit shaders... vertexLit is a good one. Or mobile shaders.
Taqtile
@james_ashley yes, I have stabilization plane from GazeManager. both SetStabilizationPlane and UseBuilInGazeStabilization are ticked. now I'm wondering, do they only stabilize object that are with colliders? currently majority of my objects do not have colliders yet.
@mark_grossnickle currently have 32 draw calls and 8.3k verts. is this considered very expensive to work with?
i'm using mostly VertexLit and some Lambertian for the whole scene.
Nope, 8k verts and 32 draw calls are both within reason. Do you have any scripts running? Try running the profiler and see what is taking up the most time.
Taqtile
Nope, 8k verts and 32 draw calls are both within reason. Do you have any scripts running? Try running the profiler and see what is taking up the most time.
Taqtile
@mark_grossnickle no scripts running. VSync, WaitForTargetFPS takes highest percentage. >80%. rendering, physics only take up <10% in total
You're missing the frame deadline. That's what wait for FPS usually means. I found even without using unity (C++ engine) that 30 draw calls plus spatial room enables can drop you below 30 FPS if you aren't careful. As others said, check for complexity of your shaders. Ideally unity should be sorting by materials and minimizing state changes. If you're able to GPU profile using visual studio + unity, try that. The profiler helped me identify the major contributors to CPU/GPU time spent each frame. That helped me when I was struggling with frame rate issues.
@mlfarrell will explore gpu profile further. btw, is it safe to disable VSync in quality setting?
@felsiska
Have you addressed the issue?