XRWebGLLayerInit - 表示在创建新的 XRWebGLLayer 对象时提供配置选项的字典
XRWebGLLayerInit
是 WebXR 设备 API 的接口,表示在使用 XRWebGLLayer()
构造函数创建新的 XRWebGLLayer
对象时提供配置选项的字典。构造函数的可选 layerInit
参数必须采用一个符合此字典的对象。
属性
alpha
可选
一个布尔值,如果为 true
,则将使用 alpha 通道建立帧缓冲区的颜色缓冲区。否则,颜色缓冲区将没有 Alpha 通道。默认值为 true
。
antialias
可选
一个布尔值,如果在上下文中渲染时要使用抗锯齿,则为 true
。否则为 false
。浏览器会选择要使用的抗锯齿方法;目前尚不支持请求特定模式。默认值为 true
。
depth
可选
一个布尔值,如果为 true
,则请求新层具有深度缓冲区;否则,不分配深度层。默认为 true
。
framebufferScaleFactor
可选
一个浮点值,用于在合成过程中缩放图像,值为 1.0
表示帧缓冲区的默认像素大小。XRWebGLLayer
的静态函数 XRWebGLLayer.getNativeFramebufferScaleFactor()
返回比例为 1:
的像素比例,从而确保是设备的原始分辨率。默认值为 1.0
。
ignoreDepthValues
可选
一个布尔值,指示在合成场景时是否忽略深度缓冲区的内容。默认值为 false
。
stencil
可选
一个布尔值,如果为 true
,则请求新层包括模板缓冲区。否则,将不分配模板缓冲区。默认值为 false
。
实例
此代码段使用给定的 XRSession
的 xrSession
对象和 WebGL 渲染上下文的 gl
对象,设置了会话的渲染层,并指定了 ignoreDepthValues
选项,指示深度缓冲区应不能使用(或根本不存在),并且任何给定点的距离信息的唯一来源是其相对于观看者的位置。
const layerOptions = {
ignoreDepthValues: true
};
xrSession.updateRenderState({
baseLayer: new XRWebGLLayer(xrSession, gl, layerOptions);
});
规范
规范 | 状态 | 备注 |
---|---|---|
WebXR Device API XRWebGLLayerInit 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
alpha | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
antialias | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
depth | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
framebufferScaleFactor | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
ignoreDepthValues | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
stencil | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
alpha | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
antialias | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
depth | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
framebufferScaleFactor | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
ignoreDepthValues | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
stencil | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |