CodePlexProject Hosting for Open Source Software

Generates mipmaps for a 3D volume texture from a set of images representing the slices.

**Note:** This generates mipmaps for 3D dimension textures. For 1D and 2D dimension textures, see
GenerateMipMaps.

# Parameters

*baseImages*/*srcImages*: The mipmap chain is created by repeatedly down-sizing the slices of base images. The first level of the resulting mipChain is set to a copy of the input baseImages.

*depth*: The Z dimension of the volume texture which is also the number of slices in the baseImages array.

*filter*: See
Filter Flags. Note that for non-power-of-2 depth volume maps, only TEX_FILTER_TRIANGLE will give the expected results. It therefore defaults to Triangle for non-pow-of-2 volume maps, otherwise it defaults to Fant/Box.

*levels*: Number of mip map levels including base. A value of 0 indicates creating a full mipmap chain down to 1x1x1.

# Example

# Remarks

This function does not operate directly on block compressed images. See
Decompress and
Compress.

This function cannot operate directly on a planar format image. See ConvertToSinglePlane for a method for converting planar data to a format that is supported by this routine.

Each miplevel of a 3D volume texture is half the size in width & height and half the number of slices of the one above to a minimum of 1.

This function does not make use of WIC for resizing since volume textures require 3D filtering methods.

**Note:** All slices in a miplevel must be in contiguous memory for working with Direct3D 11, which is how
*ScratchImage* is implemented.

HRESULT GenerateMipMaps3D( _In_reads_(depth) const Image* baseImages, _In_ size_t depth, _In_ DWORD filter, _In_ size_t levels, _Out_ ScratchImage& mipChain ); HRESULT GenerateMipMaps3D( _In_reads_(nimages) const Image* srcImages, _In_ size_t nimages, _In_ const TexMetadata& metadata, _In_ DWORD filter, _In_ size_t levels, _Out_ ScratchImage& mipChain );

```
ScratchImage baseImages;
...
ScratchImage mipChain;
hr = GenerateMipMaps3D( baseImages.GetImages(), baseImages.GetImageCount(), baseImages.GetMetadata(), TEX_FILTER_DEAFULT, 0, mipChain );
if ( FAILED(hr) )
...
```

This function cannot operate directly on a planar format image. See ConvertToSinglePlane for a method for converting planar data to a format that is supported by this routine.

Each miplevel of a 3D volume texture is half the size in width & height and half the number of slices of the one above to a minimum of 1.

This function does not make use of WIC for resizing since volume textures require 3D filtering methods.

Last edited Jun 22, 2015 at 6:00 AM by walbourn, version 7