GPURenderPipeline

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

GPURenderPipeline 介面是 WebGPU API 的一部分,它代表一個控制頂點和片段著色器階段的管線,可用於 GPURenderPassEncoderGPURenderBundleEncoder

GPURenderPipeline 物件例項可以透過 GPUDevice.createRenderPipeline()GPUDevice.createRenderPipelineAsync() 方法建立。

例項屬性

label

一個字串,提供可用於識別物件的標籤,例如在 GPUError 訊息或控制檯警告中。

例項方法

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

瀏覽器相容性

另見