XRMediaBinding: createEquirectLayer() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

XRMediaBinding 介面的 createEquirectLayer() 方法返回一個 XREquirectLayer 物件,該物件是一個將等距柱狀編碼資料對映到球體內部的圖層。

語法

js
createEquirectLayer(video, options)

引數

video

要顯示的 HTMLVideoElement

options

用於配置 XREquirectLayer 的物件。該物件可以具有以下屬性,並且 space 是必需的。

centralHorizontalAngle 可選

一個數字,表示球體的中心水平角度(以弧度為單位)。預設值:6.28318 (2π)。

invertStereo 可選

一個布林值,指定影片中每個檢視的自然位置是否應被反轉。預設為 false

layout 可選

一個字串,指示影片的佈局。可能的值:

default

該圖層支援會話的所有檢視。

mono

分配一個 XRSubImage 物件,並將其呈現給雙眼。

stereo

使用者代理決定如何分配 XRSubImage(一個或兩個)和佈局(頂部/底部或左/右)。建議為 stereo 佈局使用 texture-array 紋理型別。

stereo-left-right

分配單個 XRSubImage。左眼獲取紋理的左側區域,右眼獲取右側區域。此佈局旨在最大限度地減少對已為立體聲(例如立體聲影片或影像)的內容的繪圖呼叫。

stereo-top-bottom

分配單個 XRSubImage。左眼獲取紋理的頂部區域,右眼獲取底部區域。此佈局旨在最大限度地減少對已為立體聲(例如立體聲影片或影像)的內容的繪圖呼叫。預設值為 mono

lowerVerticalAngle 可選

一個數字,表示球體的較低垂直角度(以弧度為單位)。預設值:-1.570795 (-π/2)。

radius 可選

一個數字,表示球體的半徑。預設值 0.0

space 必需

一個 XRSpace 物件,定義了圖層與使用者物理環境的空間關係。

transform 可選

一個 XRRigidTransform 物件,定義了相對於 space 的偏移和方向。

upperVerticalAngle 可選

一個數字,表示球體的較高垂直角度(以弧度為單位)。預設值:1.570795 (π/2)。

返回值

一個 XREquirectLayer 物件。

示例

建立一個 XREquirectLayer 來顯示影片

建立一個 XRMediaBinding 並使用傳遞給 createEquirectLayer()HTMLVideoElement。使用上面列出的選項配置四邊形圖層,並透過將其新增到 XRSession.updateRenderState()layers 渲染狀態中,將圖層呈現給 XR 裝置。

js
function onXRSessionStarted(xrSession) {
  const xrMediaBinding = new XRMediaBinding(xrSession);
  const video = document.createElement("video");
  video.src = "just-fascination.mp4";

  const videoLayer = xrMediaBinding.createEquirectLayer(video, {
    space: xrReferenceSpace,
  });

  xrSession.updateRenderState({
    layers: [videoLayer],
  });
}

規範

規範
WebXR Layers API Level 1
# dom-xrmediabinding-createequirectlayer

瀏覽器相容性

另見