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 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |