← 03 实验索引

顶点颜色怎么插值

三个顶点三种颜色,中间的过渡由光栅化插值得到。把鼠标放到三角形上(或点「自动巡游」),看同一个点上 GPU 实际算出的颜色和按重心坐标预测的颜色对不对得上。

正在启动 WebGPU…

探针读数

画布位置—
NDC 坐标—
重心权重 w₀ / w₁ / w₂—
GPU 算出的颜色—
按权重预测的颜色—

三个顶点:w₀ 顶部 · w₁ 左下 · w₂ 右下。 权重由 JavaScript 按重心坐标算;颜色是把这一帧读回来的真实像素。

当前跑的着色器


    

切换上面的下拉框,这段代码会跟着变,页面也会用新代码重建管线。 顶点输出与片段输入的插值写法必须一致,所以这里把同一个结构体同时用在两个阶段。

规范怎么说

默认值不写 @interpolate 时,浮点型的用户自定义 IO 按 @interpolate(perspective, center) 处理
flat值不插值(Values are not interpolated),整个图元取 provoking vertex 的值;采样只能是 first 或 either,不写则按 first
either取第一个还是最后一个顶点由实现决定
整数类型阶段间传整数(i32/u32)必须写 flat
放哪儿@interpolate 只能加在带 @location 的声明上

出处:W3C WGSL 规范 #interpolation 一节(本页说明抄自规范源文件 wgsl/index.bs)。