XRWebGLBinding:createProjectionLayer() 方法
XRWebGLBinding 介面的 createProjectionLayer() 方法返回一個 XRProjectionLayer 物件,該物件是一個填充觀察者整個視口的圖層,並以接近裝置的本機幀率進行重新整理。
語法
createProjectionLayer(options)
引數
options-
一個用於配置
XRProjectionLayer的物件。textureType可選-
一個定義圖層紋理型別的字串。可能的值
texture-
XRWebGLSubImage的紋理型別為gl.TEXTURE_2D。 texture-array-
XRWebGLSubImage的紋理型別將是gl.TEXTURE_2D_ARRAY(僅限 WebGL 2 上下文)。預設值為texture。
colorFormat可選-
一個
GLenum,用於定義顏色紋理資料的型別。可能的值:gl.RGBgl.RGBA此外,對於啟用了EXT_sRGB擴充套件的上下文:ext.SRGB_EXText.SRGB_ALPHA_EXT此外,對於WebGL2RenderingContext上下文:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8預設值為gl.RGBA。
depthFormat可選-
一個
GLenum,定義深度紋理資料的型別,或者0表示圖層不應提供深度紋理。(在這種情況下,XRProjectionLayer.ignoreDepthValues將為true。)可能的值在啟用WEBGL_depth_texture擴充套件的WebGLRenderingContext上下文中,或者在WebGL2RenderingContext上下文中(無需擴充套件)gl.DEPTH_COMPONENTgl.DEPTH_STENCIL此外,對於WebGL2RenderingContext上下文:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24預設值為gl.DEPTH_COMPONENT。
scaleFactor可選-
一個浮點值,用於在複合期間縮放圖層。值為
1.0表示幀緩衝區的預設畫素大小。(另請參閱XRWebGLLayer.getNativeFramebufferScaleFactor()。)與其他圖層不同,XRProjectionLayer無法使用顯式的畫素寬度和高度建立,因為其大小由硬體推斷。(投影圖層會填充觀察者的整個視口。)
返回值
一個 XRProjectionLayer 物件。
示例
在 WebGL 2 上下文中建立一個 XRProjectionLayer
textureType 選項允許分配一個紋理陣列,其中每個 XRView 都將渲染到陣列的一個獨立級別中。這允許進行一些渲染最佳化,例如使用 WebGL 2 上下文中可用的 OVR_multiview2 擴充套件。
function onXRSessionStarted(xrSession) {
const glCanvas = document.createElement("canvas");
const gl = glCanvas.getContext("webgl2", { xrCompatible: true });
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const projectionLayer = xrGlBinding.createProjectionLayer({
textureType: "texture-array",
});
xrSession.updateRenderState({
layers: [projectionLayer],
});
}
規範
| 規範 |
|---|
| WebXR Layers API Level 1 # dom-xrwebglbinding-createprojectionlayer |
瀏覽器相容性
載入中…