GPURenderPassEncoder: setScissorRect() 方法

实验性:这是一个实验性技术
在生产环境中使用之前,请仔细查看浏览器兼容性表

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

setScissorRect() 方法是 GPURenderPassEncoder 接口的方法,用于设置光栅化阶段使用的剪裁矩形。在转换为视口坐标后,落在剪裁矩形外的任何片段将被丢弃。

语法

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

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅