XRWebGLBinding: phương thức createCubeLayer()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Phương thức createCubeLayer() của giao diện XRWebGLBinding trả về đối tượng XRCubeLayer, là một lớp kết xuất trực tiếp từ cubemap và chiếu nó lên các mặt bên trong của một khối lập phương.
Cú pháp
createCubeLayer(init)
Tham số
init-
Đối tượng để cấu hình
XRCubeLayer. Nó phải có các thuộc tínhspace,viewPixelHeightvàviewPixelWidth.initcó các thuộc tính sau:colorFormatOptional-
GLenumxác định kiểu dữ liệu của dữ liệu kết cấu màu. Các giá trị có thể:gl.RGBgl.RGBA(Mặc định) Ngoài ra, cho các ngữ cảnh với phần mở rộngEXT_sRGBđược kích hoạt:ext.SRGB_EXText.SRGB_ALPHA_EXTNgoài ra, cho các ngữ cảnhWebGL2RenderingContext:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8Ngoài ra, cho các ngữ cảnh với phần mở rộngWEBGL_compressed_texture_etcđược kích hoạt:ext.COMPRESSED_RGB8_ETC2ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2ext.COMPRESSED_RGBA8_ETC2_EACext.COMPRESSED_SRGB8_ETC2ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EACNgoài ra, cho các ngữ cảnh với phần mở rộngWEBGL_compressed_texture_astcđược kích hoạt:- Tất cả các định dạng mà phần mở rộng hỗ trợ.
depthFormatOptional-
GLenumxác định kiểu dữ liệu của dữ liệu kết cấu độ sâu hoặc0cho biết lớp không nên cung cấp kết cấu độ sâu. (Trong trường hợp đóXRProjectionLayer.ignoreDepthValuessẽ làtrue.) Các giá trị có thể cho các ngữ cảnhWebGLRenderingContextcó phần mở rộngWEBGL_depth_textuređược kích hoạt, hoặc cho các ngữ cảnhWebGL2RenderingContext(không cần phần mở rộng):gl.DEPTH_COMPONENT(Mặc định)gl.DEPTH_STENCILNgoài ra, cho các ngữ cảnhWebGL2RenderingContext:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24
isStaticOptional-
Giá trị boolean, nếu là true, cho biết bạn chỉ có thể vẽ vào lớp này khi
needsRedrawlàtrue. Giá trị mặc định làfalse. layout-
Chuỗi cho biết bố cục của lớp. Các giá trị có thể:
default: Lớp chứa tất cả các khung nhìn của phiên.mono: MộtXRSubImageduy nhất được phân bổ và hiển thị cho cả hai mắt.stereo: Tác nhân người dùng quyết định cách phân bổXRSubImage(một hoặc hai) và bố cục (trên/dưới hoặc trái/phải).stereo-left-right: MộtXRSubImageduy nhất được phân bổ. Mắt trái nhận vùng bên trái của kết cấu, mắt phải nhận vùng bên phải.stereo-top-bottom: MộtXRSubImageduy nhất được phân bổ. Mắt trái nhận vùng trên của kết cấu, mắt phải nhận vùng dưới. Giá trị mặc định làmono.
mipLevelsOptional-
Số xác định số mức mip mong muốn. Giá trị mặc định là
1. orientationOptional-
DOMPointReadOnlyxác định hướng tương đối với thuộc tínhspace. spaceBắt buộc-
Đối tượng
XRSpacexác định mối quan hệ không gian của lớp với môi trường vật lý của người dùng. viewPixelHeightBắt buộc-
Số xác định chiều cao pixel của khung nhìn lớp.
viewPixelWidthBắt buộc-
Số xác định chiều rộng pixel của khung nhìn lớp.
Giá trị trả về
Đối tượng XRCubeLayer.
Ví dụ
>Tạo một XRCubeLayer
Cấu hình lớp cube bằng các thuộc tính được liệt kê ở trên trong lần gọi createCubeLayer(). Để hiển thị các lớp trên thiết bị XR, hãy thêm chúng vào trạng thái kết xuất layers bằng XRSession.updateRenderState().
function onXRSessionStarted(xrSession) {
const glCanvas = document.createElement("canvas");
const gl = glCanvas.getContext("webgl2", { xrCompatible: true });
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const cubeLayer = xrGlBinding.createCubeLayer({
space: xrReferenceSpace,
viewPixelHeight: 512,
viewPixelWidth: 512,
});
xrSession.updateRenderState({
layers: [cubeLayer],
});
}
Thông số kỹ thuật
| Specification |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-createcubelayer> |