GPURenderPipeline

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Giao diện GPURenderPipeline của WebGPU API đại diện cho pipeline kiểm soát các giai đoạn vertex và fragment shader và có thể được sử dụng trong GPURenderPassEncoder hoặc GPURenderBundleEncoder.

Phiên bản đối tượng GPURenderPipeline có thể được tạo bằng phương thức GPUDevice.createRenderPipeline() hoặc GPUDevice.createRenderPipelineAsync().

Thuộc tính phiên bản

label

Một chuỗi cung cấp nhãn có thể được sử dụng để xác định đối tượng, ví dụ trong các thông báo GPUError hoặc cảnh báo console.

Phương thức phiên bản

getBindGroupLayout()

Trả về đối tượng GPUBindGroupLayout của pipeline với chỉ mục cho trước (tức là được bao gồm trong bố cục pipeline của lệnh gọi GPUDevice.createRenderPipeline() hoặc GPUDevice.createRenderPipelineAsync() gốc).

Ví dụ

Note: Mẫu WebGPU có nhiều ví dụ hơn.

Ví dụ cơ bản

Demo kết xuất cơ bản của chúng ta cung cấp ví dụ về việc xây dựng đối tượng descriptor pipeline kết xuất hợp lệ, sau đó được sử dụng để tạo GPURenderPipeline qua lệnh gọi createRenderPipeline().

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);

// …

Thông số kỹ thuật

Thông số kỹ thuật
WebGPU
# gpurenderpipeline

Tương thích trình duyệt

Xem thêm