Show a laser-beam pointer while aiming at the menu/keyboard
build / build (push) Successful in 1m40s
build / build (push) Successful in 1m40s
The flat cross-shaped reticle used while aiming at the game quad is drawn directly into the game quad's own texture, so it only ever made sense there - while the menu launcher or keyboard was open, there was no visual feedback at all until the ray was precisely on target, making both panels hard to aim at. Add a second, thin XrCompositionLayerQuad per hand: a billboarded "laser beam" ribbon from the controller to wherever that hand's ray currently crosses the plane of whichever overlay (keyboard, then menu) claims it that frame, oriented via a view-space head pose so it reads as a line from the viewer's eye regardless of angle, colored per hand (cyan left, amber right) and clamped to 2m so grazing angles don't produce an absurdly long beam. Built from data xr_input.c's existing per-hand hit-testing already computes; the game-quad reticle itself is untouched.
This commit is contained in:
@@ -184,10 +184,15 @@ set only on the keyboard's layer - the menu launcher stays fully opaque)
|
||||
so whatever's behind it - the game quad, mid-play - stays visible while
|
||||
it's up.
|
||||
|
||||
The laser
|
||||
pointer/cursor is currently only visible while
|
||||
actually aiming at the game or menu quad respectively - there's no visual
|
||||
feedback yet while aiming at empty space between them. (Only tested on
|
||||
While the menu launcher or keyboard is open, each hand also gets a thin,
|
||||
colored laser-beam quad (cyan left, amber right) from the controller to
|
||||
wherever its ray currently crosses that panel's plane - a second,
|
||||
billboarded `XrCompositionLayerQuad` per hand (`xr_input_build_beam()` in
|
||||
`xr_input.c`), oriented so it reads as a line from the viewer's eye
|
||||
regardless of angle, since the flat cross-shaped reticle used while
|
||||
aiming at the game quad is drawn directly into the game quad's own
|
||||
texture and can't represent a ray traversing real 3D space. Aiming at the
|
||||
game quad itself still uses that flat reticle, unchanged. (Only tested on
|
||||
Meta Quest so far -
|
||||
the steps below use Quest-specific tool names where relevant, but the
|
||||
same `adb install` flow applies to any Android headset with USB
|
||||
|
||||
Reference in New Issue
Block a user