GPURenderPipeline
WebGPU API 的 GPURenderPipeline
接口表示一个控制顶点和片段着色器阶段的管道,可用于 GPURenderPassEncoder
或 GPURenderBundleEncoder
。
可以使用 GPUDevice.createRenderPipeline()
或 GPUDevice.createRenderPipelineAsync()
方法创建 GPURenderPipeline
对象实例。
实例属性
实例方法
getBindGroupLayout()
实验性-
返回管道具有给定索引的
GPUBindGroupLayout
对象(即包含在源GPUDevice.createRenderPipeline()
或GPUDevice.createRenderPipelineAsync()
调用管道布局中)。
示例
注意:WebGPU 示例 提供了更多示例。
基本示例
我们的 基本渲染演示 提供了一个关于有效的渲染管道描述符对象构造的简单示例,然后通过 createRenderPipeline()
调用使用该对象创建 GPURenderPipeline
。
js
// ...
const vertexBuffers = [
{
attributes: [
{
shaderLocation: 0, // position
offset: 0,
format: "float32x4",
},
{
shaderLocation: 1, // color
offset: 16,
format: "float32x4",
},
],
arrayStride: 32,
stepMode: "vertex",
},
];
const pipelineDescriptor = {
vertex: {
module: shaderModule,
entryPoint: "vertex_main",
buffers: vertexBuffers,
},
fragment: {
module: shaderModule,
entryPoint: "fragment_main",
targets: [
{
format: navigator.gpu.getPreferredCanvasFormat(),
},
],
},
primitive: {
topology: "triangle-list",
},
layout: "auto",
};
const renderPipeline = device.createRenderPipeline(pipelineDescriptor);
// ...
规范
规范 |
---|
WebGPU # gpurenderpipeline |
浏览器兼容性
BCD 表格仅在浏览器中加载