WebGL2RenderingContext: phương thức drawElementsInstanced()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Note: This feature is available in Web Workers.
Phương thức WebGL2RenderingContext.drawElementsInstanced() của WebGL 2 API kết xuất các hình nguyên từ dữ liệu mảng giống như phương thức gl.drawElements(). Ngoài ra, nó có thể thực thi nhiều phiên bản của một tập hợp phần tử.
Note:
Khi sử dụng WebGL 1, phần mở rộng ANGLE_instanced_arrays cũng có thể cung cấp phương thức này.
Cú pháp
drawElementsInstanced(mode, count, type, offset, instanceCount)
Tham số
mode-
Một
GLenumchỉ định loại hình nguyên sẽ kết xuất. Các giá trị có thể:gl.POINTS: Vẽ một điểm duy nhất.gl.LINE_STRIP: Vẽ một đường thẳng đến đỉnh tiếp theo.gl.LINE_LOOP: Vẽ một đường thẳng đến đỉnh tiếp theo và kết nối đỉnh cuối cùng trở lại đỉnh đầu tiên.gl.LINES: Vẽ một đường giữa một cặp đỉnh.gl.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES: Vẽ một tam giác cho một nhóm ba đỉnh.
count-
Một
GLsizeichỉ định số lượng phần tử sẽ được kết xuất. type-
Một
GLenumchỉ định loại giá trị trong bộ đệm mảng phần tử. Các giá trị có thể:gl.UNSIGNED_BYTEgl.UNSIGNED_SHORTgl.UNSIGNED_INTKhi sử dụng phần mở rộngOES_element_index_uint.
offset-
Một
GLintptrchỉ định một offset trong bộ đệm mảng phần tử. Phải là bội số hợp lệ của kích thước củatypeđã cho. instanceCount-
Một
GLsizeichỉ định số lượng phiên bản của tập hợp phần tử sẽ thực thi.
Giá trị trả về
None (undefined).
Ngoại lệ
- Nếu
modekhông phải là một trong các giá trị được chấp nhận, lỗigl.INVALID_ENUMđược ném. - Nếu
offsetkhông phải là bội số hợp lệ của kích thước của type đã cho, lỗigl.INVALID_OPERATIONđược ném. - Nếu
counthoặcinstanceCountlà số âm, lỗigl.INVALID_VALUEđược ném.
Ví dụ
gl.drawElementsInstanced(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);
Đặc tả kỹ thuật
| Specification |
|---|
| WebGL 2.0 Specification> # 3.7.9> |