Skip to content

Class: VolumeTexture3D ​

Defined in: textures/VolumeTexture3D.ts:37

Wrapper for uploading volumetric data to GPU as a 3D texture.

WebGL2 only.

Constructors ​

Constructor ​

ts
new VolumeTexture3D(
   data, 
   nx, 
   ny, 
   nz, 
   options?
): VolumeTexture3D;

Defined in: textures/VolumeTexture3D.ts:49

Parameters ​

data ​

Float32Array<ArrayBufferLike> | ArrayLike<number>

nx ​

number

ny ​

number

nz ​

number

options? ​

VolumeTexture3DOptions = {}

Returns ​

VolumeTexture3D

Properties ​

dims ​

ts
readonly dims: Vector3;

Defined in: textures/VolumeTexture3D.ts:38


texture ​

ts
readonly texture: Data3DTexture;

Defined in: textures/VolumeTexture3D.ts:39

Methods ​

getFilter() ​

ts
getFilter(): VolumeTextureFilter;

Defined in: textures/VolumeTexture3D.ts:90

The requested sampling between voxel centres.

Returns ​

VolumeTextureFilter


getEffectiveFilter() ​

ts
getEffectiveFilter(): VolumeTextureFilter;

Defined in: textures/VolumeTexture3D.ts:98

The sampling the texture actually uses: the requested filter, or 'nearest' after prepareForRenderer found linear unsupported.

Returns ​

VolumeTextureFilter


setFilter() ​

ts
setFilter(filter): void;

Defined in: textures/VolumeTexture3D.ts:105

Set sampling between voxel centres. Changing it re-uploads the texture.

Parameters ​

filter ​

VolumeTextureFilter

Returns ​

void


prepareForRenderer() ​

ts
prepareForRenderer(renderer): void;

Defined in: textures/VolumeTexture3D.ts:120

Make the texture complete on renderer: a linearly filtered float 3D texture without OES_texture_float_linear samples as black, so linear is replaced by nearest there (and restored on a renderer that supports it). Cheap enough to call before every draw; GPU materials do so.

Parameters ​

renderer ​

WebGLRenderer

Returns ​

void


supportsLinearFiltering() ​

ts
static supportsLinearFiltering(renderer, options?): boolean;

Defined in: textures/VolumeTexture3D.ts:138

Whether renderer can linearly filter this kind of volume texture. WebGL2 filters half-float textures natively; float textures need OES_texture_float_linear.

Parameters ​

renderer ​

WebGLRenderer

options? ​
useHalfFloat? ​

boolean

Returns ​

boolean


updateData() ​

ts
updateData(data): void;

Defined in: textures/VolumeTexture3D.ts:171

Update the underlying GPU texture data (e.g., for a 4D timepoint change).

Parameters ​

data ​

Float32Array<ArrayBufferLike> | ArrayLike<number>

Returns ​

void


isSupported() ​

ts
static isSupported(renderer, options?): boolean;

Defined in: textures/VolumeTexture3D.ts:197

WebGL2 support check. If you require smooth sampling (LinearFilter) for float/half-float, also require the corresponding linear-filtering extension.

Parameters ​

renderer ​

WebGLRenderer

options? ​
requireLinearFiltering? ​

boolean

useHalfFloat? ​

boolean

Returns ​

boolean


dispose() ​

ts
dispose(): void;

Defined in: textures/VolumeTexture3D.ts:211

Returns ​

void

Released under the MIT License.