XREnvironmentBlendMode - 定义了用于标识是否以及如何将渲染的虚拟内容与现实世界混合的字符串
XREnvironmentBlendMode 是 WebXR API 的枚举类型,定义了用于标识是否以及如何将渲染的虚拟内容与现实世界混合的字符串。其值由 XRSession 接口的 environmentBlendMode 属性使用。
值
 opaque
绘制的渲染图像不允许任何直通图像。它主要是由完全浸入式 VR 头戴式耳机使用的,该头戴式耳机完全遮盖了周围的环境,没有向用户显示任何真实世界。XRSession 的 renderState 属性的 baseLayer 字段中指定的 Alpha 值将被忽略,因为渲染图像的 Alpha 值都被视为 1.0(完全不透明)。
 additive
additive 混合模式主要用于带有透明镜片的 AR 设备,这些镜片可以使现实直接传递到用户的眼睛,该模式被设计用于设备无法控制背景及其亮度的情况,因为这些不是数字所能控制的。该设备所能做的就是为图像添加更多的光;它不能使东西变得更暗。因此,黑色将呈现为完全透明,并且无法使像素完全不透明。与不透明设置一样,指定的 Alpha 值将被忽略并视为 1.0。
 alpha-blend
由使用摄像头捕获现实世界并将其数字显示在用于渲染内容以供用户查看的一个或多个屏幕的头戴式眼镜或护目镜使用,它提供了一种使用 VR 设备创建 AR 演示的方法。提供 AR 模式的非穿戴式设备也可以使用 Alpha 混合,例如使用摄像头的手机或平板电脑来捕获现实世界,以供 AR 应用程序使用。由于以数字方式呈现了现实世界,因此可以控制每个像素的亮度,无论是真实的图像还是渲染的 XR 图像,用户的环境都可以与虚拟环境融合在一起,每个像素的颜色和亮度都可以精确控制。
在这种模式下, XRSession 的 renderState.baseLayer 属性在合成过程中提供了人造层的相对权重。alpha 值为 1.0 的像素将完全不透明,从而完全遮盖了现实世界,而 alpha 为 0 的像素则完全透明,从而使周围环境可以显示出来。
规范
| 规范 | 状态 | 备注 | 
|---|---|---|
| WebXR Augmented Reality Module XREnvironmentBlendMode 的定义  | 
编者的草案 | 初始定义。 | 
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | 
|---|---|---|---|---|---|---|
| 基础支持 | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 | 
additive | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 | 
alpha-blend | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 | 
opaque | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 | 
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari | 
|---|---|---|---|---|---|---|---|
| 基础支持 | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 | 
additive | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 | 
alpha-blend | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 | 
opaque | 79 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |