XRLightProbe

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Giao diện XRLightProbe của WebXR Device API chứa thông tin ánh sáng tại một điểm nhất định trong môi trường của người dùng. Bạn có thể lấy một đối tượng XRLighting bằng cách sử dụng phương thức XRSession.requestLightProbe().

Đối tượng này tự nó không chứa các giá trị ánh sáng, nhưng được sử dụng để thu thập trạng thái ánh sáng cho mỗi XRFrame. Xem XRLightEstimate để biết các giá trị ánh sáng ước tính cho một XRLightProbe.

EventTarget XRLightProbe

Thuộc tính phiên bản

XRLightProbe.onreflectionchange

Thuộc tính xử lý sự kiện cho sự kiện reflectionchange.

XRLightProbe.probeSpace Read only Experimental

Một XRSpace theo dõi vị trí và hướng mà các ước tính ánh sáng có liên quan đến.

Phương thức phiên bản

Không có.

Sự kiện

reflectionchange Experimental

Được kích hoạt mỗi khi bản đồ khối phản chiếu ước tính thay đổi. (Điều này xảy ra khi người dùng di chuyển xung quanh và ánh sáng của môi trường thay đổi.)

Ví dụ

Lấy đối tượng XRLightProbe cho một phiên

Sử dụng phương thức XRSession.requestLightProbe() để lấy một light probe.

js
const lightProbe = await xrSession.requestLightProbe();

Lấy tư thế probe trong một XRFrame

Truyền probeSpace của light probe vào XRFrame.getPose() để lấy một light probe cho một tư thế.

js
const probePose = xrFrame.getPose(lightProbe.probeSpace, xrReferenceSpace);

Sử dụng sự kiện reflectionchange

Truyền XRLightProbe để lấy một bản đồ khối phản chiếu bất cứ khi nào sự kiện reflectionchange kích hoạt. Xem thêm XRWebGLBinding.getReflectionCubeMap().

js
const glBinding = new XRWebGLBinding(xrSession, gl);
const lightProbe = await xrSession.requestLightProbe();
let glCubeMap = glBinding.getReflectionCubeMap(lightProbe);

lightProbe.addEventListener("reflectionchange", () => {
  glCubeMap = glBinding.getReflectionCubeMap(lightProbe);
});

Thông số kỹ thuật

Specification
WebXR Lighting Estimation API Level 1
# xrlightprobe-interface

Tương thích trình duyệt

Xem thêm