From ce74efacbbad6edc7d84975f4480aa254f73b6cd Mon Sep 17 00:00:00 2001 From: BastiaanOlij Date: Fri, 29 Sep 2017 21:36:27 +1000 Subject: Made a few tweaks to the interface --- doc/classes/ARVRAnchor.xml | 7 +++ doc/classes/ARVRInterface.xml | 88 +++++++++++++++++++++++++++++++------ doc/classes/ARVRScriptInterface.xml | 43 +++++++++++------- doc/classes/ARVRServer.xml | 32 +++++++------- 4 files changed, 124 insertions(+), 46 deletions(-) (limited to 'doc/classes') diff --git a/doc/classes/ARVRAnchor.xml b/doc/classes/ARVRAnchor.xml index 4ff39390b2..6e11034073 100644 --- a/doc/classes/ARVRAnchor.xml +++ b/doc/classes/ARVRAnchor.xml @@ -34,6 +34,13 @@ Returns true if the anchor is being tracked and false if no anchor with this id is currently known. + + + + + Returns a plane aligned with our anchor, handy for intersection testing + + diff --git a/doc/classes/ARVRInterface.xml b/doc/classes/ARVRInterface.xml index fad9571628..1c2e761b57 100644 --- a/doc/classes/ARVRInterface.xml +++ b/doc/classes/ARVRInterface.xml @@ -12,6 +12,20 @@ + + + + + Returns true if achor detection is enabled (AR only). + + + + + + + Returns a combination of flags providing information about the capabilities of this interface. + + @@ -26,11 +40,11 @@ Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform. - - + + - Returns true if an HMD is available for this interface. + If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking. @@ -51,34 +65,45 @@ Returns true if this interface is active. - + - Returns true if this interface has been installed. Say your game is designed to work with OpenVR so you are using the OpenVR interface but the user hasn't installed SteamVR, this would return false. + Returns true if this interface is currently the primary interface (the interface responsible for showing the output). - + - Returns true if this interface is currently the primary interface (the interface responsible for showing the output). + Returns true if the current output of this interface is in stereo. - + - Set this interface to the primary interface (unset the old one). + Enables anchor detection, this is used on AR interfaces and enables the extra logic that will detect planes, features, objects, etc. and adds/modifies anchor points. - - + + + + + + + Initialise/uninitilise this interface (same effect as calling intialize/uninitialize). + + + + + + - Returns true if this interface supports HMDs and by extension uses stereo scopic rendering. + Set this interface to the primary interface (unset the old one). @@ -90,10 +115,32 @@ - + + On an AR interface, is our anchor detection enabled? + + + Has this interface been initialized? + + + Is this our primary interface? + + No ARVR capabilities. + + + This interface can work with normal rendering output (non-HMD based AR). + + + This interface supports stereoscopic rendering. + + + This interface support AR (video background and real world tracking). + + + This interface outputs to an external device, if the main viewport is used the on screen output is an unmodified buffer of either the left or right eye (stretched if the viewport size is not changed to the same aspect ratio of get_recommended_render_targetsize. Using a seperate viewport node frees up the main viewport for other purposes. + Mono output, this is mostly used internally when retrieving positioning information for our camera node or when stereo scopic rendering is not supported. @@ -103,5 +150,20 @@ Right eye output, this is mostly used internally when rendering the image for the right eye and obtaining positioning and projection information. + + Tracking is behaving as expected. + + + Tracking is hindered by excessive motion, player is moving faster then tracking can keep up. + + + Tracking is hindered by insufficient features, it's too dark (for camera based tracking), player is blocked, etc. + + + We don't know the status of the tracking or this interface does not provide feedback. + + + Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.) + diff --git a/doc/classes/ARVRScriptInterface.xml b/doc/classes/ARVRScriptInterface.xml index 54415539e0..182147a015 100644 --- a/doc/classes/ARVRScriptInterface.xml +++ b/doc/classes/ARVRScriptInterface.xml @@ -29,6 +29,20 @@ Outputs a finished render buffer to the AR/VR device for the given eye. + + + + + Returns true if achor detection is enabled (AR only). + + + + + + + Returns a combination of flags providing information about the capabilities of this interface. + + @@ -36,6 +50,13 @@ Returns the size at which we should render our scene to get optimal quality on the output device. + + + + + If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking. + + @@ -47,13 +68,6 @@ Get the location and orientation transform used when rendering a specific eye. - - - - - Return true is an HMD is available. - - @@ -68,13 +82,6 @@ Returns true if this interface has been initialized and is active. - - - - - Returns true if the required middleware is installed. - - @@ -89,11 +96,13 @@ Gets called before rendering each frame so tracking data gets updated in time. - - + + + + - Returns true if this interface supports HMDs. + Enables anchor detection, this is used on AR interfaces and enables the extra logic that will detect planes, features, objects, etc. and adds/modifies anchor points. diff --git a/doc/classes/ARVRServer.xml b/doc/classes/ARVRServer.xml index 282f25bec9..6a7262bd14 100644 --- a/doc/classes/ARVRServer.xml +++ b/doc/classes/ARVRServer.xml @@ -20,6 +20,22 @@ Mostly exposed for GDNative based interfaces, this is called to register an available interface with the AR/VR server. + + + + + + + + + This is a really important function to understand correctly. AR and VR platforms all handle positioning slightly differently. + For platforms that do not offer spatial tracking our origin point (0,0,0) is the location of our HMD but you have little control over the direction the player is facing in the real world. + For platforms that do offer spatial tracking our origin point depends very much on the system. For OpenVR our origin point is usually the center of the tracking space, on the ground. For other platforms its often the location of the tracking camera. + This method allows you to center our tracker on the location of the HMD, it will take the current location of the HMD and use that to adjust all our tracking data in essence realigning the real world to your players current position in your game world. + For this method to produce usable results tracking information should be available and this often takes a few frames after starting your game. + You should call this method after a few seconds have passed, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, and when implementing a teleport mechanism. + + @@ -84,22 +100,6 @@ Removes a registered interface, again exposed mostly for GDNative based interfaces. - - - - - - - - - This is a really important function to understand correctly. AR and VR platforms all handle positioning slightly differently. - For platforms that do not offer spatial tracking our origin point (0,0,0) is the location of our HMD but you have little control over the direction the player is facing in the real world. - For platforms that do offer spatial tracking our origin point depends very much on the system. For OpenVR our origin point is usually the center of the tracking space, on the ground. For other platforms its often the location of the tracking camera. - This method allows you to create a reference frame, it will take the current location of the HMD and use that to adjust all our tracking data in essence realigning the real world to your players current position in your game world. - For this method to produce usable results tracking information should be available and this often takes a few frames after starting your game. - You should call this method after a few seconds have passed, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, and when implementing a teleport mechanism. - - -- cgit v1.2.3