Skip to content

Integrate RVCA and enhance AR features with fixes#307

Open
doranteseduardo wants to merge 36 commits intomainfrom
add-rv-anchor-provider
Open

Integrate RVCA and enhance AR features with fixes#307
doranteseduardo wants to merge 36 commits intomainfrom
add-rv-anchor-provider

Conversation

@doranteseduardo
Copy link
Member

This pull request introduces several improvements and bug fixes across the AR rendering pipeline, session management, and material handling. The most significant changes enhance AR session initialization safety, improve plane anchor update logic, expand AR platform support, add new rendering capabilities for scene depth, and refine material emission defaults.

AR Platform & Session Management Improvements:

  • Added support for ReactVision as a backend for both cloud and geospatial anchors via new enum values in VROCloudAnchorProvider and VROGeospatialAnchorProvider. [1] [2]
  • Improved safety of AR session initialization in VROARScene: both initDeclarativeSession and initImperativeSession now guard against double-initialization and log warnings instead of crashing. [1] [2]
  • Default anchor detection types in VROARScene now include both horizontal and vertical planes.

AR Plane Anchor Update & Throttling:

  • Refined plane anchor update logic: now uses a clear separation between absolute (1cm) and relative (percentage) extent change thresholds, treating any 1cm change as significant and only applying percentage checks for larger planes.
  • Updated plane anchor update throttling: the first 20 updates are now allowed at ~30fps (33ms interval), then throttled to ~15fps (66ms), improving responsiveness for new planes. [1] [2]

Scene Depth Rendering Enhancements:

  • Added a dedicated depth-only render target (_sceneDepthTarget) to VROChoreographer, capturing scene depth after each base render pass for use in the next frame, enabling advanced effects that require previous frame depth sampling. [1] [2] [3] [4] [5] [6] [7]

Camera and Geospatial Data Access:

  • Introduced getCameraImageY method to VROARFrame for direct access to the tightly-packed Y (luma) plane of the camera image, improving low-level camera data handling.
  • Added headingAccuracy to VROGeospatialPose for more precise geospatial pose confidence reporting. [1] [2] [3]

Material & Rendering Pipeline Fixes:

  • Set the default emission color of VROMaterial to black, ensuring no emission unless explicitly set.
  • Fixed setShaderUniform in VROMaterial to call updateSubstrateTextures() instead of updateSubstrate(), preventing unnecessary shader binding recreation.
  • Minor reordering of uniform initialization in VROMaterialShaderBinding for consistency. [1] [2]

Other Notable Cleanups:

  • Removed verbose debug logging from VROARScene methods for cleaner production logs. [1] [2] [3]
  • Added a new DepthOnly occlusion mode for AR rendering, enabling depth sensing without visual occlusion.

These changes collectively improve the reliability, performance, and extensibility of the AR rendering and session management subsystems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants