realitycollective / com.realitytoolkit.player

The camera service module of the Reality Toolkit. Use this module to set up a camera rig for XR apps and games in no time.
https://realitytoolkit.realitycollective.net/
MIT License
0 stars 0 forks source link

Feature Request: Allow Camera Service Modules to denote incompatibilities between modules #3

Open SimonDarksideJ opened 1 year ago

SimonDarksideJ commented 1 year ago

When dealing with headsets, identifying a singular camera system is fairly simplistic, however there are likely to be many scenarios moving forward for cases where you might have an ARFoundation Camera system which is incompatible with a Niantic camera system (both require dedicated access to the device camera stream).

Ideally, if you have a project and attempt to register multiple cameras for use, but some are incompatible with each other.

Additionally, there may be systems with a dependency on a specific camera setup, or a camera with certain attributes, such as Azure Spatial Anchors requiring either ARFoundation or a HoloLens camera.

Thoughts?

FejZa commented 1 year ago

I am not sure I can follow your thoughts here.

FejZa commented 1 year ago

So you are saying you have implemented e.g. your own ICameraService "NianticCameraService" and another one "ARFoundationCameraService" and then you have added both to your root profile and they are both running at the same time?

SimonDarksideJ commented 1 year ago

No, I have one camera setup for Niantic and one for ARFoundation. Depending on whether I run a system that depends on ARFountation or Niantic, I need to start the system that is needed ONLY.

E.G. If I use Azure Spatial Anchors, which depends on ARFoundation, then I want to call the Camera system and tell it to initialise the ARFoundation Camera

FejZa commented 1 year ago

Starting to get an idea of what you mean. But I see this rather as a more generic issue in that the apart from the

RuntimePlatform

we need to be able to declare further constraints on when a service is to be used.

SimonDarksideJ commented 1 year ago

It's something I'll pick up once you have the system up and running, since it is my requirement :D