SuperAPI AI 工具集

webgpu-wgsl-vertex-shaders

写作与研究

查看项目

更新于 10-15 22:18

技能介绍

用途:指导编写 WebGPU 的 WGSL @vertex 入口点,读取顶点属性、生成正确的裁剪空间位置,并把阶段间 varying 传给片元阶段,避免管线或着色器创建错误。

主要能力:说明顶点着色器 IO(@location 属性、@builtin(vertex_index)、@builtin(instance_index)、必填的 @builtin(position): vec4f、varying、clip_distances);给出两种入口点形式(单返回值与结构体输出);提供 @interpolate 速查(perspective/linear/flat 及采样方式);用决策树区分顶点缓冲与顶点拉取两种数据来源;列出核心模式,如必须输出 vec4f 裁剪空间位置、@location(n) 必须与宿主 shaderLocation 一致、整数 varying 必须 @interpolate(flat)、用 vertex_index/instance_index 做顶点拉取、多趟深度用 @invariant、不要套用 WebGL 裁剪空间约定。

使用方式:按资料中的 WGSL 代码形式声明 @vertex 函数;宿主侧 GPUVertexBufferLayout(arrayStride、offset、stepMode、format)在 webgpu-syntax-render-pipeline 中定义,此处只需保证 shaderLocation 编号与格式一致。参考文件包括 references/methods.md、references/examples.md、references/anti-patterns.md。

适用场景:编写或调试 WebGPU 顶点着色器、处理顶点属性绑定、varying 插值、顶点拉取与多趟深度一致性时。

限制:WebGPU 裁剪空间 Z 范围为 0 到 1、Y 向上,与 WebGL 的 -1 到 1 不同;@vertex 中不得调用 discard、textureSample、dpdx、dpdy,应改用 textureSampleLevel 或 textureLoad;同一成员或参数不得同时使用 @location 与 @builtin。资料未提供具体收费、平台与效果信息。