User:PeterKim/Reports/2021

Weekly Reports: 2021

November 29 - November 30

Submitted patches for customizable VR actions (D13420, D13421), 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 (#91627) 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 (D13420)
  • XR: Customizable Actions (Add-on) (D13421)

November 22 - November 28

Continued work on VR integration of the Blender tool system by supporting gizmo interaction with VR controllers (D13397). 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 (D13397)

Next Week

Revisit customizable VR actions (3.x roadmap feature #91627).

November 15 - November 21

Worked on VR integration of the Blender tool system, beginning with displaying active tool gizmos in VR (D13299). Next step is to support gizmo interaction with controllers.

Created patches:

  • XR: Active Tool Gizmo Display (D13299)

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 (D13153). Using this approach, the view3d.select operator was able to be used successfully in VR.

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

Created patches:

  • XR: Mouse Position Simulation (D13153)

Next Week

Work on supporting gizmos in VR.

November 1 - November 7

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

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

Created patches:

  • XR: Motion Capture (Add-on) (D13102)

Updated patches:

  • XR: Motion Capture (D10947). Rebase on master.

Review:

Next Week

Work on 3.x roadmap features (#91627), beginning with controller-based selection.

October 25 - October 31

Committed the remaining VR patches for 3.0 (viewport navigation rB3434a991 and add-on update rBA823910c). 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 (rB3434a991)
  • XR: View adjustments for variable viewer scale (rB7ae28108)
  • VR: Default Actions, Controller Visualization (rBA823910c)

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 D11501, VR add-on update D11271).

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

Updated patches:

  • XR Controller Support Step 5: Navigation (D11501). Update with requested changes.
  • VR Add-on: Default Actions, Controller Gizmos (D11271). Add base scale property to landmarks.

Next Week

Merge last two VR patches planned for 3.0 release (D11501, D11271).

October 11 - October 17

Committed patches for VR events (rBcdeb5060) and controller drawing (rB9dda6545).

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

Commits:

  • XR Controller Support Step 3: XR Events (rBcdeb5060)
  • XR Controller Support Step 4: Controller Drawing (rB9dda6545)

Updated patches:

  • XR Controller Support Step 5: Navigation (D11501). Update with requested changes.
  • VR Add-on: Default Actions, Controller Gizmos (D11271). Add navigation operators from D11501.

Next Week

Merge last two VR patches planned for 3.0 release (D11501, D11271).

October 4 - October 10

Committed the first half of XR event handling (rB08511b1c) and updated the second half (D10944) 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 (rB08511b1c)

Updated patches:

  • XR Controller Support Step 3: XR Event Handling (D10944). Add changes to WM event RNA.

Next Week

Merge remaining VR patches planned for 3.0 release (D10944, D10948, D11501, D11271).

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 (D12472). Cleanup.
  • XR Controller Support Step 4: Controller Drawing (D10948). Cleanup, fix controller model loading with TINYGLTF_NO_STB_IMAGE.
  • XR Controller Support Step 5: Navigation (D11501). Cleanup.

Next Week

Merge remaining VR patches planned for 3.0 release (D12472, D10944, D10948, D11501, D11271).

September 20 - September 26

Added TinyGLTF as an extern lib for loading OpenXR glTF controller models (rB3fa64263).

Also updated the XR area (D12472) and controller drawing (D10948) patches in preparation for bcon2.

Commits:

  • Extern: Add TinyGLTF to load XR controller model (rB3fa64263)

Updated patches:

  • XR: Add runtime window area for XR events (D12472). Make XR area independent of windows/screens.
  • XR Controller Support Step 4: Controller Drawing (D10948). Remove TinyGLTF additions.

Next Week

Merge remaining VR patches planned for 3.0 release (D12472, D10944, D10948, D11501, D11271).

September 13 - September 19

Submitted a patch implementing a dedicated offscreen window area for VR events (D12472). This was motivated by reviewer feedback on the VR event handling patch (D10944). Patch review for VR events and controller drawing (D10948) is still ongoing.

Created patches:

  • XR: Add runtime global window area for XR events (D12472)

Next Week

Continue VR patch review (D10944, D10948, D12472).

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 (rB82ab2c16).

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

Commits:

  • XR: Re-enable SteamVR OpenGL backend for AMD gpus (rB82ab2c16)

Updated patches:

  • XR Controller Support Step 4: Controller Drawing (D10948). Refactor immediate-mode drawing.
  • Add glTF library for loading OpenXR controller model (D12344). Add fx-gltf, separate json lib from glTF libs.

Next Week

Continue VR patch review (D10944, D10948, D12344).

August 30 - September 5

Added a VR "reset navigation" operator, which is useful for restoring viewer height/scale after navigation changes (D11501), 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 (D12344) and accepted the patch for Varjo headset support (D12229).

Commits (xr-controller-support):

  • XR: Add reset navigation operator (rB07a92c61)
  • VR: Add reset navigation, toggle matview defaults (rBA1bbddad)

Created patches:

  • Add TinyGLTF library for loading OpenXR controller model (D12344)

Updated patches:

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

Review:

  • Accepted: Support for Varjo OpenXR extensions (D12229)

Next Week

Continue VR patch review (D10944, D10948, D11501).

August 23 - August 29

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

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

Commits:

  • Fix: Incorrect declaration of XrActionMaps RNA (rBa34652d6)
  • Fix: XR action map memory leaks (rBcb9c0aa7)
  • Fix: Crash on file read with active VR session (rBd6ace5a7)
  • XR: Improve "Invalid stage ref space" warning (rB940ba740)
  • XR: Enable controller profile extensions (rB5a0ec230)
  • Fix "toggle shading" op not updating VR view (rBc88ba461)

Commits (xr-controller-support):

Updated patches:

  • XR: Motion Capture (D10947). Refactor motion capture objects.

Review:

  • Requested changes to: Support for Varjo OpenXR extensions (D12229)

Next Week

Continue VR patch review (D10944, D10948).

August 16 - August 22

Committed patch to use higher color depth for VR-displayed images when supported by runtime (rBeb278f5e).

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

Commits:

Commits (xr-controller-support):

  • XR: Support dynamic controller model components (rB1990bb92)

Updated patches:

  • XR Controller Support Step 4: Controller Drawing (D10948). Support dynamic controller model components.

Next Week

Continue VR patch review (D10944, D10948).

August 9 - August 15

Updated VR patches for event handling (D10944), controller drawing (D10948), and default actions (D11271) 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 (rB5f528951)
  • XR: Fix crash/assert on loading controller model (rBbe0a272d)
  • VR: Add toggles for controller profile extensions (rBA26fb63e)

Created patches:

  • XR: Controller Profile Extensions (D12168)
  • XR: Improve "Invalid stage ref space" warning (D12206)
  • Fix: Crash on file read with active VR session (D12169)
  • Fix: XR action map memory leaks (D12183)
  • Fix: Incorrect declaration of XrActionMaps RNA (D12182)

Updated patches:

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

Next Week

Continue VR patch review (D10944, D10948).

August 2 - August 8

Committed VR patches for session data improvements (rBd3d4be1d, rBfb1822dd) and action maps (rBe844e9e8).

Commits:

Next Week

Continue VR patch review (D10944, D10948).

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 (rBc4c4b1a0)
  • XR: Use dynamic arrays for eye, controller data (rB99beac7b)
  • XR: Refactor action maps, bindings (rB6b67760b)
  • VR: Refactor action maps, bindings (rBA45c234f)

Created patches:

  • XR: Controller Data Improvements (D12073)
  • XR: Action Binding Improvements (D12077)

Next Week

Update VR action maps patch (D10943) based on review feedback.

July 19 - July 25

Committed VR patches for reference space improvements (rB36c0649d) and viewport denoising fixes (rBc41b93bd).

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 (rB36c0649d)
  • VR: Add "absolute tracking" session option to UI (rBAac92e71)
  • XR: Fix for Viewport Denoising Artifacts (rBc41b93bd)

Commits (xr-controller-support):

Next Week

Update next VR patches based on review feedback.

July 12 - July 18

Updated next VR patch (D10943) based on discussion with Julian and Brecht (#88839, #xr channel).

Updated patches:

  • XR Actions [part 2]: Actionmaps (D10943). 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 (rBf7d42065)
  • XR: Fix mirror view not matching navigation (rB6ee46d5e)
  • XR: Show selection/controller overlays by default (rB1f1589b4)
  • XR: Add teleport offset option (rB7863f2fb)
  • XR: Fix action state querying from Python (rB872484df)
  • XR: Fix grab interp/offsets for parented objects (rB3feb3a47)

Created patches:

  • VR: Fix for Viewport Denoising Artifacts (D11858)

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 (rB004034f8)
  • XR: Add option to raycast from viewer pose (rBe8926d40)
  • XR: Add cubic interpolation option for fly speed (rB1184da29)
  • XR: Support haptic feedback for actions (rB714224ee)
  • VR: Add haptic feedback settings (rBAa708524)
  • XR: Direction lock, frame based speed fly options (rB7a7ee11f)

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 (rB8ace7897)
  • XR: Add fly navigation operator (rBe3cab5c2)
  • VR: Add fly navigation, gamepad profile defaults (rBA2c6f9cb)
  • VR: Rename some actions for better clarity (rBA9c20bc0)
  • XR: Use prior nav data to calculate viewer pose (rB80c80f5e)
  • XR: Allow multiple modal actions at a time (rBe022f99e)

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 (rB6732d31f)
  • XR: Smooth transition between modal actions (rBeed31613)
  • XR: Add grab navigation operator (rB2585d7f1)
  • XR: Add location/rotation locks for navigation (rB65804b20)
  • VR: Add grab navigation to default actions (rBA3012fff)

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 (rBeeb948f4)
  • VR: Add axis region, bimanual flags (rBA91a8d30)
  • XR: Add bimanual scale mode for grab operator (rB9ce38d17)
  • VR: Add bimanual scale mode for grab operator (rBA71a834f)
  • XR: Fix viewer pose and teleport calculation (rB0c92bf5e)

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):