Proper way to determine out of IR camera range?
I looked all over and didn't see a way to even simply query whether the player is out of range or not.
I see in OVRVisionGuide that the position of the player (relative to where the orientation/position was last reset) is checked against the bounds of a cube of a particular size, and then it figures out from that whether to display a "out of range" message and how much to fade out. The problem with this is that the camera's tracking volume is not a cube so it may warn the player prematurely or too late depending on how close to the camera the player is. Plus, the cube is based on the user's relative position so if the user reset his orientation/position near the edge of the actual tracking volume, the cube becomes even more ineffective as a warning.
OVRDevice.IsCameraTracking() appears to always return true (and probably simply means the blue light is on).
So... unless I missed something, I don't see a way (in Unity) to accurately determine whether the player is out of range (or even close to being out of range).
I have a way to guesstimate at the bounds of the tracking volume frustum, but this assumes that the camera is straight ahead and aimed straight at the player at startup. As soon as the camera is repositioned to the side or up or down or aimed anything other than straight at the player, this frustum becomes incorrect and thus ineffective as a warning to the player.
In the Configuration Utility's demo scene, there is a Camera Bounds feature that shows the tracking volume that I'm interested in. Anyone know of a way to access that information from the Unity integration?
I see in OVRVisionGuide that the position of the player (relative to where the orientation/position was last reset) is checked against the bounds of a cube of a particular size, and then it figures out from that whether to display a "out of range" message and how much to fade out. The problem with this is that the camera's tracking volume is not a cube so it may warn the player prematurely or too late depending on how close to the camera the player is. Plus, the cube is based on the user's relative position so if the user reset his orientation/position near the edge of the actual tracking volume, the cube becomes even more ineffective as a warning.
OVRDevice.IsCameraTracking() appears to always return true (and probably simply means the blue light is on).
So... unless I missed something, I don't see a way (in Unity) to accurately determine whether the player is out of range (or even close to being out of range).
I have a way to guesstimate at the bounds of the tracking volume frustum, but this assumes that the camera is straight ahead and aimed straight at the player at startup. As soon as the camera is repositioned to the side or up or down or aimed anything other than straight at the player, this frustum becomes incorrect and thus ineffective as a warning to the player.
In the Configuration Utility's demo scene, there is a Camera Bounds feature that shows the tracking volume that I'm interested in. Anyone know of a way to access that information from the Unity integration?
