diff --git a/common/src/main/cpp/extensions/openxr_fb_passthrough_extension_wrapper.cpp b/common/src/main/cpp/extensions/openxr_fb_passthrough_extension_wrapper.cpp index 6891db7b..91f6ec27 100644 --- a/common/src/main/cpp/extensions/openxr_fb_passthrough_extension_wrapper.cpp +++ b/common/src/main/cpp/extensions/openxr_fb_passthrough_extension_wrapper.cpp @@ -93,7 +93,6 @@ void OpenXRFbPassthroughExtensionWrapper::_bind_methods() { ClassDB::bind_method(D_METHOD("set_color_lut", "weight", "color_lut"), &OpenXRFbPassthroughExtensionWrapper::set_color_lut); ClassDB::bind_method(D_METHOD("set_interpolated_color_lut", "weight", "source_color_lut", "target_color_lut"), &OpenXRFbPassthroughExtensionWrapper::set_interpolated_color_lut); - ClassDB::bind_method(D_METHOD("destroy_color_lut", "color_lut"), &OpenXRFbPassthroughExtensionWrapper::destroy_color_lut); ClassDB::bind_method(D_METHOD("get_max_color_lut_resolution"), &OpenXRFbPassthroughExtensionWrapper::get_max_color_lut_resolution); ADD_SIGNAL(MethodInfo("openxr_fb_projected_passthrough_layer_created")); diff --git a/doc_classes/KhronosEditorExportPlugin.xml b/doc_classes/KhronosEditorExportPlugin.xml index f9ed3836..04faab1c 100644 --- a/doc_classes/KhronosEditorExportPlugin.xml +++ b/doc_classes/KhronosEditorExportPlugin.xml @@ -1,8 +1,10 @@ + Editor export plugin for the Khronos OpenXR loader. + Editor export plugin for the Khronos OpenXR loader. diff --git a/doc_classes/KhronosEditorPlugin.xml b/doc_classes/KhronosEditorPlugin.xml index bcc1a2ad..0928effe 100644 --- a/doc_classes/KhronosEditorPlugin.xml +++ b/doc_classes/KhronosEditorPlugin.xml @@ -1,8 +1,10 @@ + Editor plugin for the Khronos OpenXR loader. + Editor plugin for the Khronos OpenXR loader. diff --git a/doc_classes/LynxEditorPlugin.xml b/doc_classes/LynxEditorPlugin.xml index e00aa4d7..79bcf41f 100644 --- a/doc_classes/LynxEditorPlugin.xml +++ b/doc_classes/LynxEditorPlugin.xml @@ -1,8 +1,10 @@ + Editor plugin for the Lynx OpenXR loader. + Editor plugin for the Lynx OpenXR loader. diff --git a/doc_classes/MetaEditorExportPlugin.xml b/doc_classes/MetaEditorExportPlugin.xml index aed74a09..54cdd811 100644 --- a/doc_classes/MetaEditorExportPlugin.xml +++ b/doc_classes/MetaEditorExportPlugin.xml @@ -1,8 +1,10 @@ + Editor export plugin for the Meta OpenXR loader. + Editor export plugin for the Meta OpenXR loader. diff --git a/doc_classes/MetaEditorPlugin.xml b/doc_classes/MetaEditorPlugin.xml index 2a524c27..96436f6d 100644 --- a/doc_classes/MetaEditorPlugin.xml +++ b/doc_classes/MetaEditorPlugin.xml @@ -1,8 +1,10 @@ + Editor plugin for the Meta OpenXR loader. + Editor plugin for the Meta OpenXR loader. diff --git a/doc_classes/OpenXREditorExportPlugin.xml b/doc_classes/OpenXREditorExportPlugin.xml index 8f1e83a7..acda0c08 100644 --- a/doc_classes/OpenXREditorExportPlugin.xml +++ b/doc_classes/OpenXREditorExportPlugin.xml @@ -1,8 +1,10 @@ + Common parent for editor export plugins for all OpenXR loaders. + Common parent for editor export plugins for all OpenXR loaders. diff --git a/doc_classes/OpenXRFbBodyTrackingExtensionWrapper.xml b/doc_classes/OpenXRFbBodyTrackingExtensionWrapper.xml index b79762a3..ba7f978b 100644 --- a/doc_classes/OpenXRFbBodyTrackingExtensionWrapper.xml +++ b/doc_classes/OpenXRFbBodyTrackingExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_body_tracking[/code] extension. + Wraps the [code]XR_FB_body_tracking[/code] extension. diff --git a/doc_classes/OpenXRFbCompositionLayerAlphaBlendExtensionWrapper.xml b/doc_classes/OpenXRFbCompositionLayerAlphaBlendExtensionWrapper.xml index 35299a70..ba549185 100644 --- a/doc_classes/OpenXRFbCompositionLayerAlphaBlendExtensionWrapper.xml +++ b/doc_classes/OpenXRFbCompositionLayerAlphaBlendExtensionWrapper.xml @@ -1,23 +1,31 @@ + Wraps the [code]XR_FB_composition_layer_alpha_blend[/code] extension. + Wraps the [code]XR_FB_composition_layer_alpha_blend[/code] extension. + Blending factor set to zero, resulting in no contribution from the source. + Blending factor set to one, resulting in full contribution from the source. + Blending factor using the source alpha value. + Blending factor using one minus the source alpha value. + Blending factor using the destination alpha value. + Blending factor using one minus the destination alpha value. diff --git a/doc_classes/OpenXRFbCompositionLayerSecureContentExtensionWrapper.xml b/doc_classes/OpenXRFbCompositionLayerSecureContentExtensionWrapper.xml index 04ee4d9a..86067746 100644 --- a/doc_classes/OpenXRFbCompositionLayerSecureContentExtensionWrapper.xml +++ b/doc_classes/OpenXRFbCompositionLayerSecureContentExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_composition_layer_secure_content[/code] extension. + Wraps the [code]XR_FB_composition_layer_secure_content[/code] extension. diff --git a/doc_classes/OpenXRFbCompositionLayerSettingsExtensionWrapper.xml b/doc_classes/OpenXRFbCompositionLayerSettingsExtensionWrapper.xml index 1a26899a..2308250f 100644 --- a/doc_classes/OpenXRFbCompositionLayerSettingsExtensionWrapper.xml +++ b/doc_classes/OpenXRFbCompositionLayerSettingsExtensionWrapper.xml @@ -1,23 +1,31 @@ + Wraps the [code]XR_FB_composition_layer_settings[/code] extension. + Wraps the [code]XR_FB_composition_layer_settings[/code] extension. + Disable supersampling. + Normal supersampling. + Quality supersampling. + Disable sharpening. + Normal sharpening. + Quality sharpening. diff --git a/doc_classes/OpenXRFbFaceTrackingExtensionWrapper.xml b/doc_classes/OpenXRFbFaceTrackingExtensionWrapper.xml index d2db9fe5..4dd3e97c 100644 --- a/doc_classes/OpenXRFbFaceTrackingExtensionWrapper.xml +++ b/doc_classes/OpenXRFbFaceTrackingExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_face_tracking2[/code] extension. + Wraps the [code]XR_FB_face_tracking2[/code] extension. diff --git a/doc_classes/OpenXRFbHandTrackingAimExtensionWrapper.xml b/doc_classes/OpenXRFbHandTrackingAimExtensionWrapper.xml index 725e4b4f..7809939c 100644 --- a/doc_classes/OpenXRFbHandTrackingAimExtensionWrapper.xml +++ b/doc_classes/OpenXRFbHandTrackingAimExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_hand_tracking_aim[/code] extension. + Wraps the [code]XR_FB_hand_tracking_aim[/code] extension. @@ -10,6 +12,7 @@ + Checks if the extension is enabled or not. diff --git a/doc_classes/OpenXRFbHandTrackingCapsulesExtensionWrapper.xml b/doc_classes/OpenXRFbHandTrackingCapsulesExtensionWrapper.xml index c1b65a1a..967e4562 100644 --- a/doc_classes/OpenXRFbHandTrackingCapsulesExtensionWrapper.xml +++ b/doc_classes/OpenXRFbHandTrackingCapsulesExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_hand_tracking_capsules[/code] extension. + Wraps the [code]XR_FB_hand_tracking_capsules[/code] extension. @@ -10,6 +12,7 @@ + Gets the total number of hand capsules. @@ -17,6 +20,7 @@ + Gets the height of the given capsule for the given hand ([code]0[/code] is left, and [code]1[/code] is right). @@ -24,6 +28,7 @@ + Gets the joint that drives the transform of the given capsule for the given hand ([code]0[/code] is left, and [code]1[/code] is right). @@ -31,6 +36,7 @@ + Gets the radius of the given capsule for the given hand ([code]0[/code] is left, and [code]1[/code] is right). @@ -38,11 +44,13 @@ + Gets the transform of the given capsule for the given hand ([code]0[/code] is left, and [code]1[/code] is right). + Checks if the extension is enabled or not. diff --git a/doc_classes/OpenXRFbHandTrackingMesh.xml b/doc_classes/OpenXRFbHandTrackingMesh.xml index 228ea753..4282fa9b 100644 --- a/doc_classes/OpenXRFbHandTrackingMesh.xml +++ b/doc_classes/OpenXRFbHandTrackingMesh.xml @@ -1,8 +1,12 @@ + A skinned mesh representing the player's hand (retreived using the [code]XR_FB_hand_tracking_mesh[/code] extension). + A skinned mesh representing the player's hand. + The mesh will be retreived using the [code]XR_FB_hand_tracking_mesh[/code] extension (if supported by the OpenXR runtime and headset) sometime after the OpenXR session has begun. + It can be animated using [XRHandModifier3D]. @@ -10,23 +14,33 @@ + Gets the [MeshInstance3D] node, if it has been created. + The hand to retrieve the mesh for. + The material assigned to the hand mesh. + A scale multiplier to apply to the mesh. + Only used if [member use_scale_override] is [code]true[/code]. + [b]Note: This is a global value that applies to all [OpenXRFbHandTrackingMesh] nodes, which is only provided here for convenience.[/b] + Indicates whether or not [member scale_override] should be used. + [b]Note: This is a global value that applies to all [OpenXRFbHandTrackingMesh] nodes, which is only provided here for convenience.[/b] + Left hand. + Right hand. diff --git a/doc_classes/OpenXRFbHandTrackingMeshExtensionWrapper.xml b/doc_classes/OpenXRFbHandTrackingMeshExtensionWrapper.xml index bb88894f..3007e844 100644 --- a/doc_classes/OpenXRFbHandTrackingMeshExtensionWrapper.xml +++ b/doc_classes/OpenXRFbHandTrackingMeshExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_hand_tracking_mesh[/code] extension. + Wraps the [code]XR_FB_hand_tracking_mesh[/code] extension. @@ -10,6 +12,7 @@ + Emitted when the mesh data has been fetched for the given hand ([code]0[/code] is left, and [code]1[/code] is right). diff --git a/doc_classes/OpenXRFbPassthroughExtensionWrapper.xml b/doc_classes/OpenXRFbPassthroughExtensionWrapper.xml index d32c7d83..7bfd04b9 100644 --- a/doc_classes/OpenXRFbPassthroughExtensionWrapper.xml +++ b/doc_classes/OpenXRFbPassthroughExtensionWrapper.xml @@ -1,71 +1,90 @@ + Wraps [code]XR_FB_passthrough[/code] and related extensions. + Wraps the following OpenXR extensions: + - [code]XR_FB_passthrough[/code] + - [code]XR_FB_triangle_mesh[/code] + - [code]XR_META_passthrough_preferences[/code] + - [code]XR_META_passthrough_color_lut[/code] + Only the main [code]XR_FB_passthrough[/code] extension is required for basic passthrough functionality. The others allow for more complex features, such as filtering the passthrough output or using an [OpenXRFbPassthroughGeometry] node to control where passthrough is rendered. Settings for features unsupported by the current OpenXR runtime or headset will be ignored. + Passthrough will start automatically when [member XRInterface.environment_blend_mode] is set to [constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND], and will automatically stop when set to any other value. - - - - - - + Gets the current passthrough layer purpose. + Gets the current passthrough filter. + Gets the color to be drawn on top of edges that are detected in the original passthrough imagery. + Edge rendering is disabled when the alpha value of the color is zero. + Gets the maximum allowed resolution for color LUTs (Look Up Tables). + See [method set_color_lut] and [method set_interpolated_color_lut]. + Set the opacity of the passthrough imagery between [code]0.0[/code] and [code]1.0[/code]. + Returns [code]true[/code] if the headset supports color passthrough; otherwise [code]false[/code], if only monochrome passthrough is supported. + This is only valid if [method has_passthrough_capability] returns [code]true[/code]. + Returns [code]true[/code] if the headset supports passthrough layers composited using depth testing; otherwise [code]false[/code]. + This is only valid if [method has_passthrough_capability] returns [code]true[/code]. + Returns [code]true[/code] if the OpenXR runtime can give us extended information about passthrough capability via the [method has_color_passthrough_capability] or [method has_layer_depth_passthrough_capability] methods. + If this method returns [code]false[/code], don't trust the return value of those methods. + Returns [code]true[/code] if the OpenXR runtime recommends that the app start in passthrough mode (if supported); otherwise [code]false[/code]. + While this recommendation is platform dependent, it may, for example, return [code]true[/code] if the user was already in passthrough when they opened the app, in order to prevent the user switching from passthrough, to full VR, and back to passthrough again. + Checks if passthrough has been started. + Checks if passthrough is supported. @@ -74,6 +93,11 @@ + Sets the current passthrough filter to [constant PASSTHROUGH_FILTER_BRIGHTNESS_CONTRAST_SATURATION], which will adjust the brightness, contrast and saturation of the passthrough imagery. + - [param brightness]: brightness adjustment value in the range [code]-100[/code] to [code]100[/code]. The neutral value is [code]0[/code]. + - [param contrast]: contrast adjustment value which must be greater than [code]0[/code]. The neutral value is [code]1.0[/code]. + - [param saturation]: saturation adjustment value which must be greater than [code]0[/code]. The neutral value is [code]1.0[/code]. + [b]Note:[/b] Only one passthrough filter can be enabled at a time. @@ -81,18 +105,25 @@ + Sets the current passthrough filter to [constant PASSTHROUGH_FILTER_COLOR_MAP_LUT], which will use the [OpenXRMetaPassthroughColorLut] to map from the colors in the passthrough imagery into colors from the LUT (Look Up Table). + The [param weight] is a value between [code]0.0[/code] and [code]1.0[/code], which can be used to blend linearly between the original colors and the mapped colors. + [b]Note:[/b] Only one passthrough filter can be enabled at a time. + Sets the current passthrough filter to [constant PASSTHROUGH_FILTER_COLOR_MAP], which will use the given gradient to replace each input luminance value in the passthrough imagery with an RGBA color value. + [b]Note:[/b] Only one passthrough filter can be enabled at a time. + Sets a color to be drawn on top of edges that are detected in the original passthrough imagery. + Edge rendering is disabled when the alpha value of the color is zero. @@ -101,24 +132,38 @@ + Sets the current passthrough filter to [constant PASSTHROUGH_FILTER_COLOR_MAP_INTERPOLATED_LUT], which will use the given [OpenXRMetaPassthroughColorLut] objects to map from the colors in the passthrough imagery into colors interpolated between the two LUTs (Look Up Tables). + The [param weight] is a value between [code]0.0[/code] and [code]1.0[/code], which can be used to blend linearly between the colors from the two [OpenXRMetaPassthroughColorLut] objects. This can be used to smoothly transition from using one [OpenXRMetaPassthroughColorLut] to another. + [b]Note:[/b] Only one passthrough filter can be enabled at a time. - + Sets the current passthrough filter to [constant PASSTHROUGH_FILTER_MONO_MAP], which will use the given curve to replace each input luminance value in the passthrough imagery with a grayscale color value. + [b]Note:[/b] Only one passthrough filter can be enabled at a time. + + Sets the current passthrough filter. + The filter type can also be changed by calling any of the following methods: + - [method set_color_map] + - [method set_mono_map] + - [method set_brightness_contrast_saturation] + - [method set_color_lut] + - [method set_interpolated_color_lut] + However, the only way to disable the passthrough filter is by calling this method with [constant PASSTHROUGH_FILTER_DISABLED]. + Set the opacity of the passthrough imagery between [code]0.0[/code] and [code]1.0[/code]. @@ -126,41 +171,56 @@ + Emitted when the passthrough state has changed. + Emitted when passthrough has stopped. + Emitted when a projected passthrough layer has been created. + Passthrough layer is disabled. + Full environment is presented on the passthrough layer. + Passthrough is projected on custom geometry and presented on the passthrough layer. + Passthrough filter is disabled. + Filter passthrough using a color map. See [method set_color_map]. + Filter passthrough using a mono map. See [method set_mono_map]. + Filter passthrough using brightness, contrast and saturation. See [method set_brightness_contrast_saturation]. + Filter passthrough using a color LUT (Look Up Table). See [method set_color_lut]. + Filter passthrough using an interpolated color LUT (Look Up Table). See [method set_interpolated_color_lut]. + A non-recoverable error has occurred. A device reboot or firmware update may be required. + A recoverable error has occurred. The OpenXR runtime will attempt to recover, but some functionality may be temporarily unavailable. + The runtime has recovered from a previous error and is functioning normally. diff --git a/doc_classes/OpenXRFbPassthroughGeometry.xml b/doc_classes/OpenXRFbPassthroughGeometry.xml index cd658cc9..74fc2255 100644 --- a/doc_classes/OpenXRFbPassthroughGeometry.xml +++ b/doc_classes/OpenXRFbPassthroughGeometry.xml @@ -1,15 +1,20 @@ + A mesh that passthrough imagery will be rendered upon (via the [code]XR_FB_passthrough[/code] extension). + A mesh that passthrough imagery will be rendered upon (via the [code]XR_FB_passthrough[/code] extension). + Enables a technique called "hole punching", which removes anything rendered by Godot that would appear behind the mesh. + This can be used to create the illusion that the passthrough exists in the same 3D space as everything rendered by Godot, allowing objects to appear to pass both behind or in front of the passthrough. + The mesh data. diff --git a/doc_classes/OpenXRFbRenderModelExtensionWrapper.xml b/doc_classes/OpenXRFbRenderModelExtensionWrapper.xml index aa08b7b7..9a6667fb 100644 --- a/doc_classes/OpenXRFbRenderModelExtensionWrapper.xml +++ b/doc_classes/OpenXRFbRenderModelExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]XR_FB_render_model[/code] extension. + Wraps the [code]XR_FB_render_model[/code] extension. @@ -10,6 +12,7 @@ + Checks if the extension is enabled or not. diff --git a/doc_classes/OpenXRHtcFacialTrackingExtensionWrapper.xml b/doc_classes/OpenXRHtcFacialTrackingExtensionWrapper.xml index 38c17b9a..62761da7 100644 --- a/doc_classes/OpenXRHtcFacialTrackingExtensionWrapper.xml +++ b/doc_classes/OpenXRHtcFacialTrackingExtensionWrapper.xml @@ -1,8 +1,10 @@ + Wraps the [code]HTC_facial_tracking[/code] extension. + Wraps the [code]HTC_facial_tracking[/code] extension. diff --git a/doc_classes/OpenXRHtcPassthroughExtensionWrapper.xml b/doc_classes/OpenXRHtcPassthroughExtensionWrapper.xml new file mode 100644 index 00000000..a5b8e7d4 --- /dev/null +++ b/doc_classes/OpenXRHtcPassthroughExtensionWrapper.xml @@ -0,0 +1,25 @@ + + + + Wraps the [code]HTC_passthrough[/code] extension. + + + Wraps the [code]HTC_passthrough[/code] extension. + + + + + + + + Checks if passthrough has been started. + + + + + + Checks if passthrough is supported. + + + + diff --git a/doc_classes/OpenXRMetaPassthroughColorLut.xml b/doc_classes/OpenXRMetaPassthroughColorLut.xml index 0b0c6ed8..cc653267 100644 --- a/doc_classes/OpenXRMetaPassthroughColorLut.xml +++ b/doc_classes/OpenXRMetaPassthroughColorLut.xml @@ -1,8 +1,11 @@ + Uses the [code]XR_META_passthrough_color_lut[/code] extension to provide a color LUT (Look Up Table) for recoloring passthrough imagery. + Uses the [code]XR_META_passthrough_color_lut[/code] extension to provide a color LUT (Look Up Table) for recoloring passthrough imagery. + See [method OpenXRFbPassthroughExtensionWrapper.set_color_lut] and [method OpenXRFbPassthroughExtensionWrapper.set_interpolated_color_lut] @@ -12,13 +15,16 @@ + Creates a color LUT (Look Up Table) from an image. + Contains RGB data. + Contains RGBA data. diff --git a/doc_classes/PicoEditorPlugin.xml b/doc_classes/PicoEditorPlugin.xml index 0e6c22b4..15c970bd 100644 --- a/doc_classes/PicoEditorPlugin.xml +++ b/doc_classes/PicoEditorPlugin.xml @@ -1,8 +1,10 @@ + Editor plugin for the Pico OpenXR loader. + Editor plugin for the Pico OpenXR loader. diff --git a/docs/make_rst.py b/docs/make_rst.py index ab83fba0..e80aa21e 100755 --- a/docs/make_rst.py +++ b/docs/make_rst.py @@ -113,7 +113,9 @@ "Vector3", "XRAnchor3D", "XRController3D", + "XRHandModifier3D", "XRHandTracker.HandJoint", + "XRInterface", "XRNode3D", "XROrigin3D", "XRServer",