The GPUTextureView
interface of the WebGPU API represents a view into a subset of the texture resources defined by a particular GPUTexture
.
A GPUTextureView
object instance is created using the GPUTexture.createView()
method.
In the WebGPU Samples Cubemap demo, you will see multiple examples of how GPUTextureView
s (created by GPUTexture.createView()
calls) are used, both as a resource
in a GPUDevice.createBindGroup()
call, and as a provided view
in the depthStencilAttachment
object of a GPUCommandEncoder.beginRenderPass()
descriptor.
const uniformBindGroup = device.createBindGroup({
layout: pipeline.getBindGroupLayout(0),
entries: [
{
binding: 0,
resource: {
buffer: uniformBuffer,
offset: 0,
size: uniformBufferSize,
},
},
{
binding: 1,
resource: sampler,
},
{
binding: 2,
resource: cubemapTexture.createView({
dimension: "cube",
}),
},
],
});
const renderPassDescriptor: GPURenderPassDescriptor = {
colorAttachments: [
{
view: undefined,
loadOp: "clear",
storeOp: "store",
},
],
depthStencilAttachment: {
view: depthTexture.createView(),
depthClearValue: 1.0,
depthLoadOp: "clear",
depthStoreOp: "store",
},
};
const commandEncoder = device.createCommandEncoder();
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);