Releases: Rectus/openxr-steamvr-passthrough
Releases · Rectus/openxr-steamvr-passthrough
Release 0.4.1
This is a bugfix release
- Fixed left to right camera pose being calculated incorrectly. This may fix incorrect projection in all modes. It may also result in slightly worse projection for the Valve Index, in line with the Room View projection.
- Fixed configuration folder not being created for fresh installs.
- Removed mostly defunct
DepthOffsetCalibrationsetting. - Fixed Unicode paths in config and log file creation.
- Added camera status to debug screen.
- Fixed pixel offsets being setup with unsigned integers in sevral shaders.
- Fixed reversed translation axes for custom calibration.
- Added button to copy stock SteamVR camera calibration to custom calibration.
- Added dummy elements to webcam list in order to allow selecting virtual cameras not enumerated by Windows Media Foundation.
- Fixed menu crashing when using the webcam tracked device combo box.
- Fixed menu not disconnecting from OpenVR runtime on SteamVR shutdown.
Release 0.4.0
This update mainly restructures the application into a separate menu executable.
- Moved the configuration menu into a separate application.
- Configuration menu now available as a desktop window, in addition to the dashboard overlay. It is accessible from the notification area.
- Added application selector to configuration menu. This selector shows all running OpenXR instances.
- Added per-application log files, and moved them to the %LOCALAPPDATA%\OpenXR SteamVR Passthrough\ directory.
- Added debug display of more application parameters.
- Restructured the configuration menu tabs.
- Changed logging library.
- Changed the OpenVR bindings to manually retrieve the interfaces instead of calling VR_Init(). This should prevent any potential interference from OpenVR changing the application type of the OpenXR client.
- Added dynamic icons showing the passthrough state. This is currently non-functional on the dashboard icon.
- Added persistent menu category open/closed states.
Release 0.3.6
This is a quick bugfix release.
- Changed the Dashboard settings menu to only be available when an OpenXR session is active.
This fixes crashes on SteamVR beta version 2.15.2 and later due to changes in overlay handling. The crashes occurred when an application started an instance without immediately starting a session (such a Unreal Editor), and when an application quit or destroyed its OpenXR session.
I am planning to implement a more permanent solution involving splitting the menu into a separate process. - Improved support for the original single-camera HTC Vive. Possibly also improved rendering on stereo camera Vive models.
- Added debug readouts on more SteamVR properties.
- Minor shader cleanup.
Release 0.3.5
Features
- Added OpenGL application support.
- Added partial XR_FB_passthrough support.
Supports underlays for the reconstructed passthrough mode, depth testing, and setting brightness, contrast, saturation and opacity.
Does not support overlay passthrough, custom surface projection, keyboard hands, edge color, and color remapping. - Added XR_ANDROID_passthrough_camera_state support for querying the passthrough rendering state.
- Added override toggle for alpha premultiplication handling.
- Added more status and debug indicators in the menu.
Fixes
- Added better handling of uninitialized and stale frames, and prevented the rendering of them.
- Fixed menu frame synchronization not working.
- Fixed the debug view not working with array textures.
- Fixed application based chroma key left eye not working in 2D modes.
- Fixed flipped alpha premultiplication bit in debug menu.
Misc
- Updated OpenXR SDK to version 1.1.53.
Release 0.3.4
Features
- Added improved render path that reads generated depth maps directly in the pixel shader. This can improve performance significantly and scales better with larger depth maps.
- Added support for supplying a reversed alpha channel using the XR_EXT_composition_layer_inverted_alpha extension. This enables Unreal Engine 5.6 to support alpha blended passthrough without custom postprocess materials.
See: https://portal.productboard.com/epicgames/1-unreal-engine-public-roadmap/c/2040-openxr-passthrough - Added option to use both the application alpha and chroma key masking at the same time.
- Added slider to scale up the depth map relative to the disparity map.
- Added depth contour filtering. This is designed to combat gradient artifacts when sampling low resolution depth maps.
- Added more debug visualization modes and parameters to the menu.
- Added maximum confidence adjustment for disparity filtering.
Bug fixes
- Improved rendering in many ways.
- Added double buffering for settings menu.
- Fixed depth testing being disabled when writing deferred depth map, leading to occluded areas being drawn over foreground.
- Fixed depth folding being applied into areas with high confidence instead of areas with low confidence.
- Many misc. fixes.
Misc
- Updated OpenXR SDK to 1.1.48.
- Set the stereo mode to 3D projection on first launch if compatible headset is detected.
Version 0.3.3
- Added deferred rendering pass for depth maps. This allows proper depth support when compositing cameras, as well as filtering out some artifacting.
- Greatly improved the disparity temporal filtering (it actually does something now).
- Improved the passthrough temporal filtering and added support for blending in data from both cameras.
- Attempt at getting Vive Pro 2 cameras working with the custom projection modes.
- Added override for selecting the lens model.
- Added button to dump out a camera frame to file (goes into local AppData).
- Tweaked the stereo presets.
- Many fixes.
Version 0.3.2
- Added Vulkan to Direct3D 11 interop. Vulkan applications using XR_KHR_vulkan_enable2 can now use all features.
- Added disparity map hole filling compute shader.
- Added option to pause image processing and camera stream when passthrough isn't being rendered.
- Fixed renderer to only upload a new disparity map when one is available instead of every frame.
- Fixed layer framework throwing exception with the Unity OpenXR loader.
- Fixed rendering both cameras per-eye not working in some cases.
- Fixed camera image temporal filtering not kicking in in some cases.
- Fixed disparity map temporal filtering not working at all (it's still extremely bad).
- Misc. bug fixes and improved conformance with the OpenXR specification.
Version 0.3.1
This release mainly adds a camera calibration utility and stereo webcam support.
- Added support for stereo webcams.
- Added camera calibration utility.
- Added support for manual calibration of SteamVR HMD cameras.
- Fixed rendering with clamped frame.
- Fixed D3D12 and Vulkan renderers not being correctly selected.
- Added webcam FPS selection.
- Fixed startup crash on Vulkan.
- Added proper rectification support for non-fisheye lenses.
- Changed camera calibration rotation axes to match calibration app.
- Added support for more decimals in config files.
- Removed OpenVR function exports from .dll file.
Known issues:
- Vulkan applications do not show webcam feed, and may crash when changing camera providers.
Version 0.3.0
- Added experimental webcam support using OpenCV. Currently only monoscopic cameras are supported.
- Fixed triangles being backface-culled in some cases when using OpenComposite and Unity.
- Added virtual keyboard support to dashboard menu.
- Updated OpenCV to version 4.10.0.
- Packed loose images into the .dll as resources.
Known Issues:
- The Clamp Camera Frame option does not cull the image properly in 2D mode.
Version 0.2.8
- Changed OpenVR library to use static linking. This prevents interference with applications that use their own openvr_api.dll file, and also allows OpenComposite to work.
- Improved swapchain handling. This fixes some cases where the passthrough was not being rendered to one or both eyes.
- Slight improvements to the (still very experimental) temporal filtering.