GPURenderPassEncoder: setScissorRect() 方法
注意:此功能在 Web Workers 中可用。
GPURenderPassEncoder 接口的 setScissorRect() 方法用于设置光栅化阶段使用的剪裁矩形。转换成视口坐标后,落入剪裁矩形外的任何片段都将被丢弃。
语法
js
setScissorRect(x, y, width, height)
参数
x-
一个数字,表示剪裁矩形的最小 X 值(以像素为单位)。
y-
一个数字,表示剪裁矩形的最小 Y 值(以像素为单位)。
width-
一个数字,表示剪裁矩形的宽度(以像素为单位)。
height-
一个数字,表示剪裁矩形的高度(以像素为单位)。
注意: 如果没有调用 setScissorRect(),则每个渲染通道的默认值为 (0, 0, attachment width, attachment height)。
返回值
无 (Undefined)。
验证
调用 setViewport() 时必须满足以下标准,否则会生成 GPUValidationError,并且 GPURenderPassEncoder 会失效
x+width小于或等于渲染通道的渲染附件的宽度(见下文说明)。y+height小于或等于渲染通道的渲染附件的高度(见下文说明)。
注意: 请参阅 GPUCommandEncoder.beginRenderPass() 描述符中指定的颜色和深度/模板附件;宽度和高度基于它们 view 源自的 GPUTexture 的宽度和高度。
示例
基本代码片段
在典型的画布渲染中,以下代码可用于丢弃画布左上角四分之一区域之外的任何渲染
js
passEncoder.setScissorRect(0, 0, canvas.width / 2, canvas.height / 2);
规范
| 规范 |
|---|
| WebGPU # dom-gpurenderpassencoder-setscissorrect |
浏览器兼容性
加载中…