XRTK / com.xrtk.core

The Official Mixed Reality Framework for Unity
https://xrtk.io
MIT License
309 stars 34 forks source link

Enable "Platform Specific" MR Config base profiles #290

Closed SimonDarksideJ closed 4 years ago

SimonDarksideJ commented 5 years ago

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

As more platforms are coming on board requiring specific configuration templates, we need a way to allow developers to override the base configuration with another profile tree based on the running platform. (Not the build target as we are getting many different platforms running on Android and UWP)

How would you classify your suggestion

Describe the solution you'd like

Currently the MR config only supports a single root configuration definition, which must be selected:

image

I propose we extend this like we do with extension services and visualisation to allow overrides for specific platforms, allowing variants of configuration to be used on demand.

image

Allowing for a default runtime profile and then overrides per supported platform as required (non-mandatory)

Describe alternatives you've considered

Manually configuring each time for every platform before a build, meh

Additional context

Question. Is it likely to have more than one Mr base scene to load?
With different config?
I ask because Mrtk now ship several default config profiles (which I dislike as it breaks the multi - platform idea) which you select on startup

DinomiteToday at 09:31
I'd say no. As I imagine XRTK to be it should be one base scene whatever I do. BUT XRTK should allow me to configure more than one config profile and then add all of them to the "root configuration" and have a "conditional logic" that will then decide which one to use on start.
Basically like the platform enum dropdowns
If Android -> Config Android
if UWP -> A different one

SimonDarksideJToday at 09:32
I was just thinking that too :blush:
So like the extension services config. Have a default and possibly an override for specific platforms or supported platforms.
I say platforms as a lot more devices are using the android platform and its becoming an issue distinguishing between them

DinomiteToday at 09:34
True
Yeah we'll have that issue more often in the future. I am also seeing some trouble with the camera / quality config in the camera profile.
Not sure if opaque and transparent displays is just it

SimonDarksideJToday at 09:35
Thinking we are going to need a platform identification module to load before the MR Config init

DinomiteToday at 09:35
I'd rather distinguish this using different profiles

SimonDarksideJToday at 09:35
Something lightweight

DinomiteToday at 09:36
Definitely. I might look into that after hand tracking because I need something lik that anyway for my game. I need to know on start exactly what I am running on.

SimonDarksideJToday at 09:36
Well. Here's your problem, we've been talking to different vendors and each are subtly different but all in android
So the use case I guess we need to distinguish is, when do you need different profiles?
Ar vs Immersive?
Or more detailed

DinomiteToday at 09:37
I think that's the number one case
Also when "non - XR"
classic 2D
I've heard XRTK is supposed to handle that as well

SimonDarksideJToday at 09:38
2D is possibly a lot harder :rofl:
To detect

DinomiteToday at 09:39
Yeah. I think we might just have to wait a little more with this and let people use it, gatheer more information and use cases

SimonDarksideJToday at 09:39
And what about 2D plus hands?
We can start with allowing different config based on the "target", e.g. HoloLens vs Quest
Then build up from there, having an addition list like with visualisation
StephenHodgson commented 5 years ago

See #294 as a different approach to how to solve this problem.

SimonDarksideJ commented 4 years ago

Complete in dev