XRWebGLBinding: phương thức createProjectionLayer()
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 createProjectionLayer() của giao diện XRWebGLBinding trả về đối tượng XRProjectionLayer, là một lớp lấp đầy toàn bộ tầm nhìn của người quan sát và được làm mới gần với tốc độ khung gốc của thiết bị.
Cú pháp
createProjectionLayer(options)
Tham số
options-
Đối tượng để cấu hình
XRProjectionLayer.textureTypeOptional-
Chuỗi xác định loại kết cấu mà lớp sẽ có. Các giá trị có thể:
texture-
Các kết cấu của
XRWebGLSubImagesẽ có kiểugl.TEXTURE_2D. texture-array-
Các kết cấu của
XRWebGLSubImagesẽ có kiểugl.TEXTURE_2D_ARRAY(chỉ dành cho ngữ cảnh WebGL 2). Giá trị mặc định làtexture.
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.RGBANgoà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_ALPHA8Giá trị mặc định làgl.RGBA.
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ể trong các ngữ cảnhWebGLRenderingContextcó phần mở rộngWEBGL_depth_textuređược kích hoạt, hoặc trong các ngữ cảnhWebGL2RenderingContext(không cần phần mở rộng):gl.DEPTH_COMPONENTgl.DEPTH_STENCILNgoài ra, cho các ngữ cảnhWebGL2RenderingContext:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24Giá trị mặc định làgl.DEPTH_COMPONENT.
scaleFactorOptional-
Giá trị dấu phẩy động được sử dụng để chia tỷ lệ lớp trong quá trình ghép hình. Giá trị
1.0đại diện cho kích thước pixel mặc định của bộ đệm khung. (Xem thêmXRWebGLLayer.getNativeFramebufferScaleFactor().) Không giống các lớp khác,XRProjectionLayerkhông thể được tạo với chiều rộng và chiều cao pixel rõ ràng, vì kích thước được suy ra bởi phần cứng. (Các lớp chiếu lấp đầy toàn bộ tầm nhìn của người quan sát.)
Giá trị trả về
Đối tượng XRProjectionLayer.
Ví dụ
>Tạo một XRProjectionLayer trong ngữ cảnh WebGL 2
Tùy chọn textureType cho phép phân bổ một mảng kết cấu thay thế, trong đó mỗi XRView sẽ được kết xuất vào một cấp riêng biệt của mảng. Điều này cho phép một số tối ưu hóa kết xuất, chẳng hạn như việc sử dụng phần mở rộng OVR_multiview2 có sẵn trong các ngữ cảnh WebGL 2.
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],
});
}
Thông số kỹ thuật
| Specification |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-createprojectionlayer> |