Skip to content

Texture

Introduction

vtkTexture is an image algorithm that handles loading and binding of texture maps. It obtains its data from an input image data dataset type. Thus you can create visualization pipelines to read, process, and construct textures. Note that textures will only work if texture coordinates are also defined, and if the rendering system supports texture.

This class is used in both WebGL and WebGPU rendering backends, but the implementation details may vary. In WebGL, it uses HTMLImageElement and HTMLCanvasElement for textures, while in WebGPU, it uses HTMLImageElement, HTMLCanvasElement, and ImageBitmap.

Methods

extend

Method use to decorate a given object (publicAPI+model) with vtkTexture characteristics.

ArgumentTypeRequiredDescription
publicAPIYesobject on which methods will be bounds (public)
modelYesobject on which data structure will be bounds (protected)
initialValuesITextureInitialValuesNo(default: {})

generateMipmaps

Generates mipmaps for a given GPU texture using a compute shader.

This function iteratively generates each mip level for the provided texture, using a bilinear downsampling compute shader implemented in WGSL. It creates the necessary pipeline, bind groups, and dispatches compute passes for each mip level.

ArgumentTypeRequiredDescription
deviceGPUDeviceYes- The WebGPU device used to create resources and submit commands.
textureGPUTextureYes- The GPU texture for which mipmaps will be generated.
mipLevelCountnumberYes- The total number of mip levels to generate (including the base level).

getCanvas

Returns the canvas used by the texture.

getEdgeClamp

Returns true if the texture is set to clamp at the edges.

getImage

Returns the image used by the texture.

getImageBitmap

Returns an ImageBitmap object.

getImageLoaded

Returns true if the image is loaded.

getInputAsJsImageData

Returns the input image data object.

getInterpolate

Returns true if the texture is set to interpolate between texels.

getMipLevel

Returns the current mip level of the texture.

getRepeat

Returns true if the texture is set to repeat at the edges.

getResizable

Returns true if the texture can be resized at run time. This is useful for dynamic textures that may change size based on user interaction or other factors.

newInstance

Method use to create a new instance of vtkTexture.

ArgumentTypeRequiredDescription
initialValuesITextureInitialValuesNofor pre-setting some of its content

setCanvas

Returns the canvas used by the texture.

setEdgeClamp

Sets the texture to clamp at the edges.

ArgumentTypeRequiredDescription
edgeClampYes

setImage

Sets the image used by the texture.

ArgumentTypeRequiredDescription
imageYes

setImageBitmap

Sets the image as an ImageBitmap object. Supported in WebGPU only.

ArgumentTypeRequiredDescription
imageBitmapYes

setInterpolate

Sets the texture to interpolate between texels.

ArgumentTypeRequiredDescription
interpolateYes

setJsImageData

Sets the input image data as a JavaScript ImageData object.

ArgumentTypeRequiredDescription
imageDataYes

setMipLevel

Sets the current mip level of the texture.

ArgumentTypeRequiredDescription
levelYes

setRepeat

Sets the texture to repeat at the edges.

ArgumentTypeRequiredDescription
repeatYes