Laggy Hololens App since update to XR SDK - unity3d

Since I updated my Unity3D Hololens 2 project, using MRTK 2.5.1, to also use the XR SDK for holographic remoting, the app has become laggy also when deploying even though the profiler doesn't show much activity.
Is this a known issue that can be updated in some settings?

Could you provide more information about your project? Without any specific context, the above information make it is difficult for us to profile your application. It is recommended you follow this guide to optimize the performance of mixed reality apps in Unity: Performance recommendations for Unity
In addition, the GitHub issue page of MRTK is an important way for us to collect user feedback, and it currently has no reports on the latest MRTK performance issues. As for XR SDK, because it is a Unity API, we recommend that you submit a new feedback to the Unity product team for a professional suggestion. We always recommend the latest Unity LTS (Long Term Support) stream as the best version to develop MR app, and the current recommendation is to use Unity 2019.4.15f1: https://unity3d.com/unity/qa/lts-releases

Related

Will a mixed-reality application and experience developed for Hololens 2 using Unity work on Oculus Quest as is?

To allow sales people to meet clients in the COVID19 era without travelling, busienss wants to create a virtual meeting room .
The clients will get Oculus Quest as Hololens is hard to procure right now where as business wants to use Hololens on their end.
Will an application /experience created for Hololens using Unity work as is on Oculus Quest or does it make sense to have the same device on both end?
I am new to this area, so not sure if this question makes sense, but is it something like developing 2 versions of code, one for iOS and one or Android and using something like Xamarin to make the process easy ?
Does Unity have features to make applications compatible between Hololens and Oculus Quest ?
MRTK makes it easy to make multiplatform XR applications.
https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/GettingStartedWithTheMRTK.html
Unity will allow you to run most applications on both Windows on ARM (HoloLens 2) and Android (Quest).
MRTK even has hand tracking support on both platforms.
https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/CrossPlatform/OculusQuestMRTK.html

Should I use "Daydream technical preview" version of Unity to develop for Cardboard?

Is it a requirement to use the "Daydream technical preview" version of Unity with Google VR SDK, even if I am targeting Google Cardboard? I don't think this is clear from the documentation, and I don't want a development environment which is Daydream-specific.
Currently, I have installed Unity 5.5.1f1 and Google VR SDK 1.20. However, in player settings, I do not get any of the Cardboard/Daydream options shown in this screenshot:
https://developers.google.com/vr/unity/get-started#prerequisites
Is it a requirement to use the "Daydream technical preview" version of
Unity with Google VR SDK, even if I am targeting Google Cardboard?
No. If you are building for Daydream then you need the Daydream technical preview. Note that there are some sample scenes from the Google VR SDK plugin that are exclusively meant for Daydream. One such example is the VideoDemo. These scenes have Daydream scripts that won't compile on a normal Unity version. If you use the normal Unity version, you will get compile-time errors if you load one of these scenes.
Daydream technical preview is only used to experiment building for Daydream at this moment. It will be added to the normal Unity version when it is ready and with most bug fixed.
In fact, Daydream support is now added to Unity 5.6 beta. You can get that here. I suggest you start developing with Unity 5.6 beta in order to prevent mistakenly using scripts are made for Unity 5.6 beta.

Understanding VR ecology

I have background in android and have developed few apps of my own. Now I want to explore VR app development for android. Going through forums etc., first thing I understand is that I need to have basic infrastructure like unity 3d sdk, cardboard sdk, cardboard device etc. I am not able to understand roles these individual components play in overall bigger picture.
Like, why do I need unity 3d sdk if I have android sdk and cardboard sdk, and android studio as dev environment?
Then, if I plan to develop for something like Oculus then what all sdks and devices are needed, and which programming language I can work with?
Your options depend on which device you'll target:
Game engines like Unity: You need Unity and some plug ins and of course the device you will target too:
Google Cardboard / Daydream
Samsung Gear VR
From scratch application: Your language is java and you need to download the sdk for your target device:
Google Cardboard / Daydream SDK
Samsung Gear VR, Oculus Mobile SDK
Regards
I think there is a lot of promise in web-based VR. Of course, the app will not be as high fidelity as a native application built in Unity or Java but you get the benefit of being able to target many platforms out of the box. ReactVR is a cool project coming out of facebook that is making it easier and more performant to build VR apps with web technologies.
Here is a cool starter-kit that can help you get started if you are interested: https://github.com/scaphold-io/react-vr-graphql
P.S. GraphQL is a great tool for enriching your VR apps with data no matter if you're building it with React, Unity, or Java.
You can check out A-Frame (https://aframe.io), a web framework for building VR experiences. It's been out over a year and has a strong community and ecosystem. With web-based VR, you get cross-platform support across Rift, Vive, Cardboard, Daydream, GearVR out of the box. With A-Frame, you get all of the boilerplate with a single line of HTML. You just have to grab a VR-enabled browser.
A-Frame's architecture is similar to Unity's, entity-component, but A-Frame makes it declarative and similar to web development. With effort, the fidelity can rival native (https://blog.mozvr.com/a-painter/).

Unity: how to embed a VR Cardboard game into a website

Right now, I think there is not a way to do it within Unity. This is what I have found so far (please, correct me if I'm wrong):
The most popular VR plugins compatible with Unity for both Android and iPhone are Durovis Dive SDK and Google Cardboard SDK.
I have read that most Android phones are compatible with those VR plugins. My experience is that just a few are compatible. Durovis Dive SDK seems to be the most compatible one nowadays. If the Android phone has not gyroscope and the game has the Google Cardboard SDK plugin, the game won't load or crash. If the Android phone has not gyroscope, the game will load but the image will be still when we move the phone.
Unity 5.3 has been just released. It includes WebGL support. It includes VR support. Samsung Gear and Occulus are supported. However, I have not found out anything about the compatibility with others Android or iPhone devices. Maybe it works (I have not test it. I have not found somebody who has test it yet).
Here there is a list with VR technology for the web.
We can find stuff to Export an Unity scene to Three.js. Scripts and animations don't seem to work though.
I just spoke with an industry leader in VR experiences for media companies a couple weeks ago. And his company was one of the first to attempt VR in a web browser through mobile. He said it didn't work very well. He was partially successful, but if his company had problems, I'm guessing it's still a few years off. He said new additions to HTML are coming that will improve this over the next few years.
Hope that helps!
could you try WEBVR
YouTube Tutorial: Demo WebVR Unity
Although it has some defects, but it can serve you for basic applications. I was testing it with 360 videos, this was very heavy for the platform.
You may try WebXR. But you can't add both SDK at the same time.

Do I need to update the Unity?

I have a license Unity 3.x. Now we need to create a simple 2D mobile application. Is compatible Unity 3.x SDK with current mobile API platform (Android, IOS) ?
I would say it's not really an issue of if you need to but should you.
And you absolutely should. Unity has released numerous improvements and native support for 2D applications that didn't exist or at least were very rough around the edges prior to 4. I can't think of any reason why I'd want to stay stuck with Unity 3.x when Unity 5 is readily available.