WebGLRenderingContext: stencilOp() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
TOK1_
Phương thức WebGLRenderingContext.stencilOp() của WebGL API đặt ra cả hành động kiểm tra stencil mặt trước và mặt sau.
Cú pháp
stencilOp(fail, zfail, zpass)
Thông số
fail-
GLenumchỉ định chức năng sẽ sử dụng khi kiểm tra stencil không thành công. Giá trị mặc định làgl.KEEP. zfail-
A
GLenumchỉ định chức năng sẽ sử dụng khi vượt qua bài kiểm tra stencil, nhưng bài kiểm tra độ sâu không thành công. Giá trị mặc định làgl.KEEP. zpass-
A
GLenumchỉ định chức năng sẽ sử dụng khi kiểm tra cả stencil và vượt qua bài kiểm tra độ sâu hoặc khi bài kiểm tra stencil đạt và không có bộ đệm độ sâu hoặc kiểm tra độ sâu bị vô hiệu hóa. Giá trị mặc định làgl.KEEP.
Giá trị trả về
Không có (undefined).
Hằng số
gl.KEEP-
Giữ giá trị hiện tại.
gl.ZERO-
Đặt giá trị bộ đệm stencil thành 0.
gl.REPLACE-
Đặt giá trị bộ đệm stencil thành giá trị tham chiếu như được chỉ định bởi
WebGLRenderingContext.stencilFunc(). gl.INCR-
Tăng giá trị bộ đệm stencil hiện tại. Kẹp đến mức tối đa có thể thể hiện được giá trị không dấu.
gl.INCR_WRAP-
Tăng giá trị bộ đệm stencil hiện tại. Bao bọc giá trị bộ đệm stencil về 0 khi tăng giá trị không dấu tối đa có thể biểu thị.
gl.DECR-
Giảm giá trị bộ đệm stencil hiện tại. Kẹp về 0.
gl.DECR_WRAP-
Giảm giá trị bộ đệm stencil hiện tại. Bao bọc giá trị bộ đệm stencil vào giá trị không dấu có thể biểu thị tối đa khi giảm giá trị bộ đệm stencil bằng 0.
gl.INVERT-
Đảo ngược giá trị bộ đệm stencil hiện tại theo bit.
Ví dụ
Việc kiểm tra stencil bị tắt theo mặc định. Để bật hoặc tắt kiểm tra stencil, hãy sử dụng phương thức enable() và disable() với đối số gl.STENCIL_TEST.
gl.enable(gl.STENCIL_TEST);
gl.stencilOp(gl.INCR, gl.DECR, gl.INVERT);
Để có được thông tin hiện tại về stencil và độ sâu đạt hoặc không đạt, hãy truy vấn các hằng số sau bằng getParameter().
gl.getParameter(gl.STENCIL_FAIL);
gl.getParameter(gl.STENCIL_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BACK_FAIL);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BITS);
Thông số kỹ thuật
| Specification |
|---|
| WebGL Specification> # 5.14.3> |