Generates mipmaps for a 3D volume texture from a set of images representing the slices.
This generates mipmaps for 3D dimension textures. For 1D and 2D dimension textures, see
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 );
: 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.
: The Z dimension of the volume texture which is also the number of slices in the baseImages array.
. 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.
: Number of mip map levels including base. A value of 0 indicates creating a full mipmap chain down to 1x1x1.
hr = GenerateMipMaps3D( baseImages.GetImages(), baseImages.GetImageCount(), baseImages.GetMetadata(), TEX_FILTER_DEAFULT, 0, mipChain );
if ( FAILED(hr) )
This function does not operate directly on block compressed images. See
This function cannot operate directly on a planar format image. See
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.
All slices in a miplevel must be in contiguous memory for working with Direct3D 11, which is how