User:PeterKim/Reports/2021

= Weekly Reports: 2021 =

November 29 - November 30
Submitted patches for customizable VR actions, which will allow users to adjust default action settings (fly speed, navigation locks, input mappings, etc.) as well as create their own custom actions.

Now, initial work on the Virtual Reality 3.x series roadmap has been mostly completed, with all planned features (except for drawing/painting in VR) waiting on patches to be reviewed.

Created patches:
 * XR: Customizable Actions
 * XR: Customizable Actions (Add-on)

November 22 - November 28
Continued work on VR integration of the Blender tool system by supporting gizmo interaction with VR controllers. Using this approach of simulating mouse events, tool gizmos such as the transform manipulator were able to be used successfully in VR.

Created patches:
 * XR: Active Tool Gizmo Interaction

Next Week
Revisit customizable VR actions (3.x roadmap feature ).

November 15 - November 21
Worked on VR integration of the Blender tool system, beginning with displaying active tool gizmos in VR. Next step is to support gizmo interaction with controllers.

Created patches:
 * XR: Active Tool Gizmo Display

Next Week
Work on gizmo interaction in VR.

November 8 - November 14
Started reworking VR controller-based selection, beginning with simulating the mouse position with a controller. Using this approach, the `view3d.select` operator was able to be used successfully in VR.

Also responded to bug reports. In particular, progress is being made in fixing SteamVR issues on Linux and hopefully this can be resolved in time for the 3.0 release.

Created patches:
 * XR: Mouse Position Simulation

Next Week
Work on supporting gizmos in VR.

November 1 - November 7
Worked on various VR-related tasks including responding to bug reports, reviewing community patches , and creating a sample add-on showing how to use the new XR actions API (P2567).

Also updated the VR motion capture patch and created a separate patch for the add-on portion.

Created patches:
 * XR: Motion Capture (Add-on)

Updated patches:
 * XR: Motion Capture . Rebase on master.

Review:
 * VR Landmark Switcher

Next Week
Work on 3.x roadmap features, beginning with controller-based selection.

October 25 - October 31
Committed the remaining VR patches for 3.0 (viewport navigation and add-on update ). VR controllers can now be used in Blender!

All the VR-related changes that should be included in the 3.0 release are listed in the (non-finalized) release notes.

Commits:
 * XR Controller Support Step 5: Navigation
 * XR: View adjustments for variable viewer scale
 * VR: Default Actions, Controller Visualization

Next Week
Update the Virtual Reality workboard and patch review sections. Also test/bug fix the 3.0 beta.

October 18 - October 24
Updated the remaining VR patches planned for the 3.0 release (VR viewport navigation, VR add-on update ).

Also updated the Virtual Reality Supported Platforms section in the Blender Manual documentation.

Updated patches:
 * XR Controller Support Step 5: Navigation . Update with requested changes.
 * VR Add-on: Default Actions, Controller Gizmos . Add base scale property to landmarks.

Next Week
Merge last two VR patches planned for 3.0 release.

October 11 - October 17
Committed patches for VR events and controller drawing.

Also updated the VR navigation patch (, planned for 3.0) based on reviewer feedback.

Commits:
 * XR Controller Support Step 3: XR Events
 * XR Controller Support Step 4: Controller Drawing

Updated patches:
 * XR Controller Support Step 5: Navigation . Update with requested changes.
 * VR Add-on: Default Actions, Controller Gizmos . Add navigation operators from D11501.

Next Week
Merge last two VR patches planned for 3.0 release.

October 4 - October 10
Committed the first half of XR event handling and updated the second half  with Python API additions that allow add-ons to access XR event data from a window manager `Event`.

Commits:
 * XR: Add runtime window area for XR events

Updated patches:
 * XR Controller Support Step 3: XR Event Handling . Add changes to WM event RNA.

Next Week
Merge remaining VR patches planned for 3.0 release.

September 27 - October 3
Intended to get most of the VR patches into master by bcon2 (Wednesday), but ran into some travel complications and will instead do this before bcon3 (Oct. 20).

Updated planned 3.0 patches based on reviewer feedback.

Updated patches:
 * XR: Add runtime window area for XR events . Cleanup.
 * XR Controller Support Step 4: Controller Drawing . Cleanup, fix controller model loading with TINYGLTF_NO_STB_IMAGE.
 * XR Controller Support Step 5: Navigation . Cleanup.

Next Week
Merge remaining VR patches planned for 3.0 release.

September 20 - September 26
Added TinyGLTF as an extern lib for loading OpenXR glTF controller models.

Also updated the XR area and controller drawing  patches in preparation for bcon2.

Commits:
 * Extern: Add TinyGLTF to load XR controller model

Updated patches:
 * XR: Add runtime window area for XR events . Make XR area independent of windows/screens.
 * XR Controller Support Step 4: Controller Drawing . Remove TinyGLTF additions.

Next Week
Merge remaining VR patches planned for 3.0 release.

September 13 - September 19
Submitted a patch implementing a dedicated offscreen window area for VR events. This was motivated by reviewer feedback on the VR event handling patch. Patch review for VR events and controller drawing is still ongoing.

Created patches:
 * XR: Add runtime global window area for XR events

Next Week
Continue VR patch review.

September 6 - September 12
Fixed an issue with only a pink screen being displayed when using the SteamVR runtime with AMD graphics cards on Windows.

Also updated the patch for VR controller drawing based on reviewer feedback and discussed the use of an external glTF library  to load the OpenXR-provided controller model.

Commits:
 * XR: Re-enable SteamVR OpenGL backend for AMD gpus

Updated patches:
 * XR Controller Support Step 4: Controller Drawing . Refactor immediate-mode drawing.
 * Add glTF library for loading OpenXR controller model . Add fx-gltf, separate json lib from glTF libs.

Next Week
Continue VR patch review.

August 30 - September 5
Added a VR "reset navigation" operator, which is useful for restoring viewer height/scale after navigation changes, and added this to the default VR actions along with the View3D toggle shading (solid, material preview) operator.

Also submitted a patch to add TinyGLTF as an external library for loading the OpenXR controller model and accepted the patch for Varjo headset support.

Commits (xr-controller-support):
 * XR: Add reset navigation operator
 * VR: Add reset navigation, toggle matview defaults

Created patches:
 * Add TinyGLTF library for loading OpenXR controller model

Updated patches:
 * XR Controller Support Step 5: Navigation . Update based on master, add "reset navigation" op.
 * VR Add-on: Default Actions, Controller Gizmos . Move class/property registration to appropriate files.

Review:
 * Accepted: Support for Varjo OpenXR extensions

Next Week
Continue VR patch review.

August 23 - August 29
Refactored VR motion capture objects (improved API, location/rotation offsets, support for multiple objects per device) and updated the patch.

Also committed a number of small VR-related fixes/improvements and reviewed a user-submitted patch for Varjo headset support.

Commits:
 * Fix: Incorrect declaration of XrActionMaps RNA
 * Fix: XR action map memory leaks
 * Fix: Crash on file read with active VR session
 * XR: Improve "Invalid stage ref space" warning
 * XR: Enable controller profile extensions
 * Fix "toggle shading" op not updating VR view

Commits (xr-controller-support):
 * XR: Refactor motion capture objects
 * VR: Refactor motion capture objects

Updated patches:
 * XR: Motion Capture . Refactor motion capture objects.

Review:
 * Requested changes to: Support for Varjo OpenXR extensions

Next Week
Continue VR patch review.

August 16 - August 22
Committed patch to use higher color depth for VR-displayed images when supported by runtime.

Also implemented dynamic/animated controller model components and updated the upcoming VR controller drawing patch with these changes.

Commits:
 * XR: Color Depth Adjustments

Commits (xr-controller-support):
 * XR: Support dynamic controller model components

Updated patches:
 * XR Controller Support Step 4: Controller Drawing . Support dynamic controller model components.

Next Week
Continue VR patch review.

August 9 - August 15
Updated VR patches for event handling, controller drawing , and default actions based on review feedback.

Also submitted a number of small patches for VR-related fixes/improvements and worked with a user to fix the Reverb G2 controller models (`xr-controller-support` branch).

Commits (xr-controller-support):
 * XR: Improve "Invalid stage ref space" warning
 * XR: Fix crash/assert on loading controller model
 * VR: Add toggles for controller profile extensions

Created patches:
 * XR: Controller Profile Extensions
 * XR: Improve "Invalid stage ref space" warning
 * Fix: Crash on file read with active VR session
 * Fix: XR action map memory leaks
 * Fix: Incorrect declaration of XrActionMaps RNA

Updated patches:
 * XR Controller Support Step 3: XR Event Handling . Use regular window queues for XR events.
 * XR Controller Support Step 4: Controller Drawing . Add controller model drawing.
 * VR Add-on: Default Actions, Controller Gizmos . Remove action map editing, split up main file.

Next Week
Continue VR patch review.

August 2 - August 8
Committed VR patches for session data improvements and action maps.

Commits:
 * XR: Action Binding Improvements
 * XR: Controller Data Improvements
 * XR Controller Support Step 2: Action Maps

Next Week
Continue VR patch review.

July 26 - August 1
Removed need for device-specific VR action maps by moving interaction profiles and input-specific settings from action maps/actions to action bindings.

Also refactored controller/eye data to use dynamic arrays in order to better accommodate different hardware setups.

Commits (xr-controller-support):
 * XR: Move controller batch creation to draw func
 * XR: Use dynamic arrays for eye, controller data
 * XR: Refactor action maps, bindings
 * VR: Refactor action maps, bindings

Created patches:
 * XR: Controller Data Improvements
 * XR: Action Binding Improvements

Next Week
Update VR action maps patch based on review feedback.

July 19 - July 25
Committed VR patches for reference space improvements and viewport denoising fixes.

Also added basic controller model drawing using the OpenXR controller model extension and refactored controller poses to include both grip and aim components, which are needed to properly display the controllers.

Commits:
 * XR: Reference Space Improvements
 * VR: Add "absolute tracking" session option to UI
 * XR: Fix for Viewport Denoising Artifacts

Commits (xr-controller-support):
 * XR: Refactor controller poses
 * VR: Refactor controller poses
 * XR: Add basic controller model drawing
 * VR: Improve controller gizmo display

Next Week
Update next VR patches based on review feedback.

July 12 - July 18
Updated next VR patch based on discussion with Julian and Brecht (, #xr channel).

Updated patches:
 * XR Actions [part 2]: Actionmaps . Removed code for action map storage/customization.

Next Week
Add support for OpenXR controller model extension.

July 5 - July 11
Submitted patch for a user-reported issue from master when using EEVEE and viewport denoising in VR (scene geometry could sometimes be occluded for one eye).

Also made adjustments to the XR grab and teleport operators based on user feedback.

Commits (xr-controller-support):
 * XR: Fix render artifacts with viewport denoising
 * XR: Fix mirror view not matching navigation
 * XR: Show selection/controller overlays by default
 * XR: Add teleport offset option
 * XR: Fix action state querying from Python
 * XR: Fix grab interp/offsets for parented objects

Created patches:
 * VR: Fix for Viewport Denoising Artifacts

June 28 - July 4
Added haptic feedback support for actions. Users can configure the duration, frequency, and amplitude of the feedback as well as when it will be applied (press, release, press/release, or repeat).

Also made adjustments to the XR grab and fly operators based on user feedback. Commits (xr-controller-support):
 * XR: Fix grab transform for parented objects
 * XR: Add option to raycast from viewer pose
 * XR: Add cubic interpolation option for fly speed
 * XR: Support haptic feedback for actions
 * VR: Add haptic feedback settings
 * XR: Direction lock, frame based speed fly options

June 21 - June 27
Added XR fly navigation operator, which allows users to navigate the scene by moving/turning relative to navigation space or the VR viewer/controller.

Also enabled multiple modal actions at a time to improve action fluidity and added default actions for gamepad input.

Commits (xr-controller-support):
 * XR: Update controller data again in viewer update
 * XR: Add fly navigation operator
 * VR: Add fly navigation, gamepad profile defaults
 * VR: Rename some actions for better clarity
 * XR: Use prior nav data to calculate viewer pose
 * XR: Allow multiple modal actions at a time

June 14 - June 20
Added XR grab navigation operator, which allows users to move/rotate/scale themselves relative to the scene by using inputs from one or both controllers.

Also fixed clipping/shading issues and pose calculation when a scale factor is applied to the VR viewmat.

Commits (xr-controller-support):
 * XR: Fixes/adjustments when viewer scale != 1.0
 * XR: Smooth transition between modal actions
 * XR: Add grab navigation operator
 * XR: Add location/rotation locks for navigation
 * VR: Add grab navigation to default actions

June 7 - June 13
Improved mapping of VR inputs to actions via axis region/bimanual flags. Using the new bimanual flag, extended the XR grab operator to scale objects by pressing inputs on both controllers.

Commits (xr-controller-support):
 * XR: Add axis region, bimanual action flags
 * VR: Add axis region, bimanual flags
 * XR: Add bimanual scale mode for grab operator
 * VR: Add bimanual scale mode for grab operator
 * XR: Fix viewer pose and teleport calculation

June 1 - June 6
Started adding VR navigation support, beginning with session state modifications and a simple teleport operator (work performed in the `xr-controller-support` branch).

Commits (xr-controller-support):
 * XR: Add initial navigation support
 * XR: Add teleport navigation operator
 * VR: Add "teleport" default action