Skip to content

Commit ea8c35a

Browse files
authored
Add access to WebXR depth texture + add example (#1018)
* Add access to depth texture * Update three.js * Ignore example * Format
1 parent 41e78fc commit ea8c35a

File tree

4 files changed

+37
-24
lines changed

4 files changed

+37
-24
lines changed

examples-testing/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ const exceptionList = [
113113
'webxr_xr_ballshooter',
114114
'webxr_xr_cubes',
115115
'webxr_xr_dragging',
116+
'webxr_xr_dragging_custom_depth',
116117
'webxr_xr_haptics',
117118
'webxr_xr_paint',
118119
'webxr_xr_sculpt',

types/three/src/renderers/webxr/WebXRDepthSensing.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,6 @@ export class WebXRDepthSensing {
2424
getMesh(cameraXR: WebXRArrayCamera): Mesh | null;
2525

2626
reset(): void;
27+
28+
getDepthTexture(): Texture | null;
2729
}

types/three/src/renderers/webxr/WebXRManager.d.ts

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { ArrayCamera } from "../../cameras/ArrayCamera.js";
66
import { PerspectiveCamera } from "../../cameras/PerspectiveCamera.js";
77
import { EventDispatcher } from "../../core/EventDispatcher.js";
88
import { Vector4 } from "../../math/Vector4.js";
9+
import { Mesh } from "../../objects/Mesh.js";
10+
import { Texture } from "../../textures/Texture.js";
911
import { WebGLRenderer } from "../WebGLRenderer.js";
1012
import { XRGripSpace, XRHandSpace, XRTargetRaySpace } from "./WebXRController.js";
1113

@@ -22,7 +24,10 @@ export interface WebXRManagerEventMap {
2224
}
2325

2426
export class WebXRManager extends EventDispatcher<WebXRManagerEventMap> {
25-
constructor(renderer: WebGLRenderer, gl: WebGLRenderingContext);
27+
/**
28+
* @default true
29+
*/
30+
cameraAutoUpdate: boolean;
2631

2732
/**
2833
* @default false
@@ -34,44 +39,49 @@ export class WebXRManager extends EventDispatcher<WebXRManagerEventMap> {
3439
*/
3540
isPresenting: boolean;
3641

37-
/**
38-
* @default true
39-
*/
40-
cameraAutoUpdate: boolean;
42+
constructor(renderer: WebGLRenderer, gl: WebGLRenderingContext);
43+
44+
getController: (index: number) => XRTargetRaySpace;
45+
46+
getControllerGrip: (index: number) => XRGripSpace;
47+
48+
getHand: (index: number) => XRHandSpace;
49+
50+
setFramebufferScaleFactor: (value: number) => void;
4151

42-
getController(index: number): XRTargetRaySpace;
52+
setReferenceSpaceType: (value: XRReferenceSpaceType) => void;
4353

44-
getControllerGrip(index: number): XRGripSpace;
54+
getReferenceSpace: () => XRReferenceSpace | null;
4555

46-
getHand(index: number): XRHandSpace;
56+
setReferenceSpace: (value: XRReferenceSpace) => void;
4757

48-
setFramebufferScaleFactor(value: number): void;
58+
getBaseLayer: () => XRWebGLLayer | XRProjectionLayer;
4959

50-
setReferenceSpaceType(value: XRReferenceSpaceType): void;
60+
getBinding: () => XRWebGLBinding;
5161

52-
getReferenceSpace(): XRReferenceSpace | null;
62+
getFrame: () => XRFrame;
5363

54-
setReferenceSpace(value: XRReferenceSpace): void;
64+
getSession: () => XRSession | null;
5565

56-
getBaseLayer(): XRWebGLLayer | XRProjectionLayer;
66+
setSession: (value: XRSession | null) => Promise<void>;
5767

58-
getBinding(): XRWebGLBinding;
68+
getEnvironmentBlendMode: () => XREnvironmentBlendMode | undefined;
5969

60-
getFrame(): XRFrame;
70+
getDepthTexture: () => Texture | null;
6171

62-
getSession(): XRSession | null;
72+
updateCamera: (camera: PerspectiveCamera) => void;
6373

64-
setSession(value: XRSession | null): Promise<void>;
74+
getCamera: () => WebXRArrayCamera;
6575

66-
getCamera(): WebXRArrayCamera;
76+
getFoveation: () => number | undefined;
6777

68-
updateCamera(camera: PerspectiveCamera): void;
78+
setFoveation: (value: number) => void;
6979

70-
setAnimationLoop(callback: XRFrameRequestCallback | null): void;
80+
hasDepthSensing: () => boolean;
7181

72-
getFoveation(): number | undefined;
82+
getDepthSensingMesh: () => Mesh | null;
7383

74-
setFoveation(value: number): void;
84+
setAnimationLoop: (callback: XRFrameRequestCallback | null) => void;
7585

76-
dispose(): void;
86+
dispose: () => void;
7787
}

0 commit comments

Comments
 (0)